]> granicus.if.org Git - imagemagick/commitdiff
...
authorCristy <urban-warrior@imagemagick.org>
Sun, 22 Apr 2018 22:41:50 +0000 (18:41 -0400)
committerCristy <urban-warrior@imagemagick.org>
Sun, 22 Apr 2018 22:41:50 +0000 (18:41 -0400)
MagickCore/draw.c

index ec347a6240ede6a7d5eb115887b4fc08ef3c31b5..0063fde9ed0029b44328d673dd4e10ddb9fbed01 100644 (file)
@@ -1674,7 +1674,8 @@ static size_t GetEllipseCoordinates(const PointInfo start,const PointInfo stop,
 {
   double
     delta,
-    step;
+    step,
+    y;
 
   PointInfo
     angle;
@@ -1686,8 +1687,11 @@ static size_t GetEllipseCoordinates(const PointInfo start,const PointInfo stop,
   step=MagickPI/8.0;
   if ((delta >= 0.0) && (delta < (MagickPI/8.0)))
     step=MagickPI/(4.0*(MagickPI*PerceptibleReciprocal(delta)/2.0));
-  angle.x=DegreesToRadians(fmod(degrees.x,360.0));
-  angle.y=DegreesToRadians(fmod(degrees.y,360.0));
+  angle.x=DegreesToRadians(degrees.x);
+  y=degrees.y;
+  while (y < degrees.x)
+    y+=360.0;
+  angle.y=DegreesToRadians(y);
   return((size_t) floor((angle.y-angle.x)/step+0.5)+3);
 }
 
@@ -5667,7 +5671,8 @@ static void TraceEllipse(PrimitiveInfo *primitive_info,const PointInfo start,
 {
   double
     delta,
-    step;
+    step,
+    y;
 
   PointInfo
     angle,
@@ -5686,8 +5691,11 @@ static void TraceEllipse(PrimitiveInfo *primitive_info,const PointInfo start,
   step=MagickPI/8.0;
   if ((delta >= 0.0) && (delta < (MagickPI/8.0)))
     step=MagickPI/(4.0*(MagickPI*PerceptibleReciprocal(delta)/2.0));
-  angle.x=DegreesToRadians(fmod(degrees.x,360.0));
-  angle.y=DegreesToRadians(fmod(degrees.y,360.0));
+  angle.x=DegreesToRadians(degrees.x);
+  y=degrees.y;
+  while (y < degrees.x)
+    y+=360.0;
+  angle.y=DegreesToRadians(y);
   for (p=primitive_info; angle.x < angle.y; angle.x+=step)
   {
     point.x=cos(fmod(angle.x,DegreesToRadians(360.0)))*stop.x+start.x;