Ignore:
Timestamp:
Jun 28, 2014, 9:27:57 AM (9 years ago)
Author:
roman
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Utilities/DirectionControl/MainDialog.h

    r294 r299  
    122122                CPoint Value;
    123123                const DOUBLE S = sin(fAngle), C = cos(fAngle);
    124                 Value.x = (LONG) Round(fX * C + fY * S);
    125                 Value.y = (LONG) Round(fX * S - fY * C);
     124                // NOTE: Clockwise from Right
     125                Value.x = (LONG) Round(+ fX * C + fY * S);
     126                Value.y = (LONG) Round(- fX * S + fY * C);
    126127                Value.Offset(m_CenterPosition);
    127128                return Value;
     
    138139                        return;
    139140                m_nToleranceArrowSize = m_nArrowSize * 3 / 4;
    140                 m_ArrowHandlePosition = Transform(0, m_nArrowSize - 6, m_fAngle);
    141                 m_ToleranceArrowHandlePositionA = Transform(0, m_nToleranceArrowSize - 6, m_fAngle - m_fToleranceAngle / 2);
    142                 m_ToleranceArrowHandlePositionB = Transform(0, m_nToleranceArrowSize - 6, m_fAngle + m_fToleranceAngle / 2);
     141                m_ArrowHandlePosition = Transform(m_nArrowSize - 6, 0, m_fAngle);
     142                m_ToleranceArrowHandlePositionA = Transform(m_nToleranceArrowSize - 6, 0, m_fAngle - m_fToleranceAngle / 2);
     143                m_ToleranceArrowHandlePositionB = Transform(m_nToleranceArrowSize - 6, 0, m_fAngle + m_fToleranceAngle / 2);
    143144        }
    144145        VOID EraseBackground(CDCHandle Dc)
     
    168169                                {
    169170                                        Dc.MoveTo(m_CenterPosition.x, m_CenterPosition.y);
    170                                         Dc.AngleArc(m_CenterPosition.x, m_CenterPosition.y, 2 * m_nToleranceArrowSize / 3, 90.f - (FLOAT) ((m_fAngle - m_fToleranceAngle / 2) * 180 / M_PI), (FLOAT) (-m_fToleranceAngle * 180 / M_PI));
     171                                        Dc.AngleArc(m_CenterPosition.x, m_CenterPosition.y, 2 * m_nToleranceArrowSize / 3, (FLOAT) ((m_fAngle - m_fToleranceAngle / 2) * 180 / M_PI), (FLOAT) (m_fToleranceAngle * 180 / M_PI));
    171172                                        static const LONG A = 3;
    172173                                        static const LONG B = 7;
     
    176177                                                const DOUBLE fAngle = m_fAngle - m_fToleranceAngle / 2;
    177178                                                POINT pArrowPoints[] = {
    178                                                         Transform(-A, 0, fAngle),
    179                                                         Transform(-A, m_nToleranceArrowSize - C, fAngle),
    180                                                         Transform(-B, m_nToleranceArrowSize - D, fAngle),
    181                                                         Transform( 0, m_nToleranceArrowSize,    fAngle),
    182                                                         Transform(+B, m_nToleranceArrowSize - D, fAngle),
    183                                                         Transform(+A, m_nToleranceArrowSize - C, fAngle),
    184                                                         Transform(+A, 0, fAngle),
     179                                                        Transform(                        0, -A, fAngle),
     180                                                        Transform(m_nToleranceArrowSize - C, -A, fAngle),
     181                                                        Transform(m_nToleranceArrowSize - D, -B, fAngle),
     182                                                        Transform(m_nToleranceArrowSize,      0, fAngle),
     183                                                        Transform(m_nToleranceArrowSize - D, +B, fAngle),
     184                                                        Transform(m_nToleranceArrowSize - C, +A, fAngle),
     185                                                        Transform(                        0, +A, fAngle),
    185186                                                };
    186187                                                Dc.Polygon(pArrowPoints, DIM(pArrowPoints));
     
    189190                                                const DOUBLE fAngle = m_fAngle + m_fToleranceAngle / 2;
    190191                                                POINT pArrowPoints[] = {
    191                                                         Transform(-A, 0, fAngle),
    192                                                         Transform(-A, m_nToleranceArrowSize - C, fAngle),
    193                                                         Transform(-B, m_nToleranceArrowSize - D, fAngle),
    194                                                         Transform( 0, m_nToleranceArrowSize,    fAngle),
    195                                                         Transform(+B, m_nToleranceArrowSize - D, fAngle),
    196                                                         Transform(+A, m_nToleranceArrowSize - C, fAngle),
    197                                                         Transform(+A, 0, fAngle),
     192                                                        Transform(                        0, -A, fAngle),
     193                                                        Transform(m_nToleranceArrowSize - C, -A, fAngle),
     194                                                        Transform(m_nToleranceArrowSize - D, -B, fAngle),
     195                                                        Transform(m_nToleranceArrowSize,      0, fAngle),
     196                                                        Transform(m_nToleranceArrowSize - D, +B, fAngle),
     197                                                        Transform(m_nToleranceArrowSize - C, +A, fAngle),
     198                                                        Transform(                        0, +A, fAngle),
    198199                                                };
    199200                                                Dc.Polygon(pArrowPoints, DIM(pArrowPoints));
     
    209210                        static const LONG D = 14;
    210211                        POINT pArrowPoints[] = {
    211                                 Transform(-A, 0, m_fAngle),
    212                                 Transform(-A, m_nArrowSize - C, m_fAngle),
    213                                 Transform(-B, m_nArrowSize - D, m_fAngle),
    214                                 Transform( 0, m_nArrowSize,    m_fAngle),
    215                                 Transform(+B, m_nArrowSize - D, m_fAngle),
    216                                 Transform(+A, m_nArrowSize - C, m_fAngle),
    217                                 Transform(+A, 0, m_fAngle),
     212                                Transform(               0, -A, m_fAngle),
     213                                Transform(m_nArrowSize - C, -A, m_fAngle),
     214                                Transform(m_nArrowSize - D, -B, m_fAngle),
     215                                Transform(m_nArrowSize,      0, m_fAngle),
     216                                Transform(m_nArrowSize - D, +B, m_fAngle),
     217                                Transform(m_nArrowSize - C, +A, m_fAngle),
     218                                Transform(               0, +A, m_fAngle),
    218219                        };
    219220                        Dc.Polygon(pArrowPoints, DIM(pArrowPoints));
     
    387388                        {
    388389                                CPoint AlignPosition = Position - m_DragRelativeButtonDownPosition;
    389                                 const DOUBLE fAngle = atan2((DOUBLE) (Position.y - m_CenterPosition.y), (DOUBLE) (Position.x - m_CenterPosition.x)) + M_PI / 2;
     390                                const DOUBLE fAngle = atan2(- (DOUBLE) (Position.y - m_CenterPosition.y), (DOUBLE) (Position.x - m_CenterPosition.x));
    390391                                m_fAngle = fAngle;
    391392                                m_nVersion++;
     
    395396                        {
    396397                                CPoint AlignPosition = Position - m_DragRelativeButtonDownPosition;
    397                                 const DOUBLE fAngle = atan2((DOUBLE) (Position.y - m_CenterPosition.y), (DOUBLE) (Position.x - m_CenterPosition.x)) + M_PI / 2;
     398                                const DOUBLE fAngle = atan2(- (DOUBLE) (Position.y - m_CenterPosition.y), (DOUBLE) (Position.x - m_CenterPosition.x));
    398399                                DOUBLE fToleranceAngle = abs(fAngle - m_fAngle);
    399400                                if(fToleranceAngle > M_PI)
     
    407408                        {
    408409                                CPoint AlignPosition = Position - m_DragRelativeButtonDownPosition;
    409                                 const DOUBLE fAngle = atan2((DOUBLE) (Position.y - m_CenterPosition.y), (DOUBLE) (Position.x - m_CenterPosition.x)) + M_PI / 2;
     410                                const DOUBLE fAngle = atan2(- (DOUBLE) (Position.y - m_CenterPosition.y), (DOUBLE) (Position.x - m_CenterPosition.x));
    410411                                DOUBLE fToleranceAngle = abs(fAngle - m_fAngle);
    411412                                if(fToleranceAngle > M_PI)
Note: See TracChangeset for help on using the changeset viewer.