------------------------------------------------------------------------
| 85 | |
| 86 | //------------------------------------------------------------------------ |
| 87 | void arc::normalize(double a1, double a2, bool ccw) |
| 88 | { |
| 89 | double ra = (std::fabs(m_rx) + std::fabs(m_ry)) / 2; |
| 90 | m_da = std::acos(ra / (ra + 0.125 / m_scale)) * 2; |
| 91 | if(ccw) |
| 92 | { |
| 93 | while(a2 < a1) a2 += pi * 2.0; |
| 94 | } |
| 95 | else |
| 96 | { |
| 97 | while(a1 < a2) a1 += pi * 2.0; |
| 98 | m_da = -m_da; |
| 99 | } |
| 100 | m_ccw = ccw; |
| 101 | m_start = a1; |
| 102 | m_end = a2; |
| 103 | m_initialized = true; |
| 104 | } |
| 105 | |
| 106 | } |