From 5f717c0ba9740e6b38c2f280c9a2f36ba6e753f9 Mon Sep 17 00:00:00 2001 From: Cristy Date: Sun, 22 Apr 2018 18:41:50 -0400 Subject: [PATCH] ... --- MagickCore/draw.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/MagickCore/draw.c b/MagickCore/draw.c index ec347a624..0063fde9e 100644 --- a/MagickCore/draw.c +++ b/MagickCore/draw.c @@ -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; -- 2.40.0