src/lib/CDRParser.cpp | 13 +++++++------ src/lib/CDRTransforms.cpp | 6 +++++- 2 files changed, 12 insertions(+), 7 deletions(-)
New commits: commit 2fd1c6c2939533ab3bf366c113b35d1a038e0e06 Author: Fridrich Å trba <fridrich.st...@bluewin.ch> Date: Tue Feb 26 18:47:05 2013 +0100 Trying to fix some issues with circles diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp index a76a0a6..8ba5d0b 100644 --- a/src/lib/CDRParser.cpp +++ b/src/lib/CDRParser.cpp @@ -1219,15 +1219,16 @@ void libcdr::CDRParser::readEllipse(WPXInputStream *input) } else { - double x0 = cx + rx; - double y0 = cy; + angle2 += M_PI/2.0; + double x0 = cx + rx*cos(angle1); + double y0 = cy - ry*sin(angle1); - double x1 = cx; - double y1 = cy - ry; + double x1 = cx + rx*cos(angle2); + double y1 = cy - ry*sin(angle2); m_collector->collectMoveTo(x0, y0); - m_collector->collectArcTo(rx, ry, false, true, x1, y1); - m_collector->collectArcTo(rx, ry, true, true, x0, y0); + m_collector->collectArcTo(rx, ry, false, false, x1, y1); + m_collector->collectArcTo(rx, ry, true, false, x0, y0); m_collector->collectClosePath(); } } diff --git a/src/lib/CDRTransforms.cpp b/src/lib/CDRTransforms.cpp index 6b6f27b..9a76a21 100644 --- a/src/lib/CDRTransforms.cpp +++ b/src/lib/CDRTransforms.cpp @@ -116,7 +116,11 @@ void libcdr::CDRTransform::applyToArc(double &rx, double &ry, double &rotation, } // sweep is inversed each time the arc is flipped - sweep = (m_v0*m_v4 < m_v3*m_v1); + if (v0 < 0) + sweep = !sweep; + if (v4 < 0) + sweep = !sweep; + } double libcdr::CDRTransform::_getScaleX() const
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits