coordinates;
clone_info=CloneDrawInfo((ImageInfo *) NULL,draw_info);
- (void) QueryColorCompliance("#0000",AllCompliance,&clone_info->fill,
+ (void) QueryColorCompliance("#000F",AllCompliance,&clone_info->fill,
exception);
resolution.x=DefaultResolution;
resolution.y=DefaultResolution;
const char
*q;
+ double
+ angle,
+ factor,
+ primitive_extent;
+
DrawInfo
**graphic_context;
MagickStatusType
status;
- double
- angle,
- factor,
- primitive_extent;
-
PointInfo
point;
continue;
start_x=(ssize_t) ceil(bounds.x1-0.5);
stop_x=(ssize_t) floor(bounds.x2+0.5);
- q=GetCacheViewAuthenticPixels(image_view,start_x,y,(size_t) (stop_x-start_x+1),1,
- exception);
+ q=GetCacheViewAuthenticPixels(image_view,start_x,y,(size_t) (stop_x-start_x+ 1),1,exception);
if (q == (Quantum *) NULL)
{
status=MagickFalse;
alpha=atan2(points[0].y-center.y,points[0].x-center.x);
theta=atan2(points[1].y-center.y,points[1].x-center.x)-alpha;
if ((theta < 0.0) && (sweep != MagickFalse))
- theta+=(double) (2.0*MagickPI);
+ theta+=2.0*MagickPI;
else
if ((theta > 0.0) && (sweep == MagickFalse))
- theta-=(double) (2.0*MagickPI);
- arc_segments=(size_t) ceil(fabs((double) (theta/(0.5*MagickPI+
- DrawEpsilon))));
+ theta-=2.0*MagickPI;
+ arc_segments=(size_t) ceil(fabs((double) (theta/(0.5*MagickPI+DrawEpsilon))));
p=primitive_info;
for (i=0; i < (ssize_t) arc_segments; i++)
{
return;
}
delta=2.0/MagickMax(stop.x,stop.y);
- step=(double) (MagickPI/8.0);
- if ((delta >= 0.0) && (delta < (double) (MagickPI/8.0)))
- step=(double) (MagickPI/(4*(MagickPI/delta/2+0.5)));
+ step=MagickPI/8.0;
+ if ((delta >= 0.0) && (delta < (MagickPI/8.0)))
+ step=MagickPI/(4*(MagickPI/delta/2+0.5));
angle.x=DegreesToRadians(degrees.x);
y=degrees.y;
while (y < degrees.x)
y+=360.0;
- angle.y=(double) DegreesToRadians(y);
+ 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;
const char
*p;
- int
- attribute,
- last_attribute;
-
double
x,
y;
+ int
+ attribute,
+ last_attribute;
+
PointInfo
end = {0.0, 0.0},
points[4] = { {0.0,0.0}, {0.0,0.0}, {0.0,0.0}, {0.0,0.0} },
case 'a':
case 'A':
{
+ double
+ angle;
+
MagickBooleanType
large_arc,
sweep;
- double
- angle;
-
PointInfo
arc;
q;
} LineSegment;
+ double
+ delta_theta,
+ dot_product,
+ mid,
+ miterlimit;
+
LineSegment
dx,
dy,
MagickBooleanType
closed_path;
- double
- delta_theta,
- dot_product,
- mid,
- miterlimit;
-
PointInfo
box_p[5],
box_q[5],
(void) CopyMagickMemory(polygon_primitive,primitive_info,(size_t)
number_vertices*sizeof(*polygon_primitive));
closed_path=
- (primitive_info[number_vertices-1].point.x == primitive_info[0].point.x) &&
- (primitive_info[number_vertices-1].point.y == primitive_info[0].point.y) ?
+ (fabs(primitive_info[number_vertices-1].point.x-primitive_info[0].point.x) < DrawEpsilon) &&
+ (fabs(primitive_info[number_vertices-1].point.y-primitive_info[0].point.y) < DrawEpsilon) ?
MagickTrue : MagickFalse;
if ((draw_info->linejoin == RoundJoin) ||
((draw_info->linejoin == MiterJoin) && (closed_path != MagickFalse)))
inverse_slope.p=(-1.0/slope.p);
}
mid=ExpandAffine(&draw_info->affine)*draw_info->stroke_width/2.0;
- miterlimit=(double) (draw_info->miterlimit*draw_info->miterlimit*
- mid*mid);
+ miterlimit=(double) (draw_info->miterlimit*draw_info->miterlimit*mid*mid);
if ((draw_info->linecap == SquareCap) && (closed_path == MagickFalse))
TraceSquareLinecap(polygon_primitive,number_vertices,mid);
offset.x=sqrt((double) (mid*mid/(inverse_slope.p*inverse_slope.p+1.0)));
theta.p=atan2(box_q[1].y-center.y,box_q[1].x-center.x);
theta.q=atan2(box_q[2].y-center.y,box_q[2].x-center.x);
if (theta.q < theta.p)
- theta.q+=(double) (2.0*MagickPI);
+ theta.q+=2.0*MagickPI;
arc_segments=(size_t) ceil((double) ((theta.q-theta.p)/
(2.0*sqrt((double) (1.0/mid)))));
path_q[q].x=box_q[1].x;
theta.p=atan2(box_p[1].y-center.y,box_p[1].x-center.x);
theta.q=atan2(box_p[2].y-center.y,box_p[2].x-center.x);
if (theta.p < theta.q)
- theta.p+=(double) (2.0*MagickPI);
+ theta.p+=2.0*MagickPI;
arc_segments=(size_t) ceil((double) ((theta.p-theta.q)/
(2.0*sqrt((double) (1.0/mid)))));
path_p[p++]=box_p[1];