Code

Fix for imprecise ellipse drawing by Alvin Penner.
authortweenk <tweenk@users.sourceforge.net>
Tue, 24 Feb 2009 22:35:23 +0000 (22:35 +0000)
committertweenk <tweenk@users.sourceforge.net>
Tue, 24 Feb 2009 22:35:23 +0000 (22:35 +0000)
src/sp-ellipse.cpp

index 97656375428a9f4eef0251254888b93cc9f322c9..8022be5603e9ddf02daa8e945613fbc4b5963913 100644 (file)
@@ -180,9 +180,6 @@ sp_genericellipse_update_patheffect(SPLPEItem *lpeitem, bool write)
     ((SPObject *)shape)->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
 }
 
-
-#define C1 0.552
-
 /* fixme: Think (Lauris) */
 /* Can't we use arcto in this method? */
 static void sp_genericellipse_set_shape(SPShape *shape)
@@ -220,7 +217,7 @@ static void sp_genericellipse_set_shape(SPShape *shape)
         e = s + M_PI_2;
         if (e > ellipse->end)
             e = ellipse->end;
-        len = C1 * (e - s) / M_PI_2;
+        len = 4*tan((e - s)/4)/3;
         x0 = cos(s);
         y0 = sin(s);
         x1 = x0 + len * cos(s + M_PI_2);