]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Wed, 1 Dec 2010 19:31:14 +0000 (19:31 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Wed, 1 Dec 2010 19:31:14 +0000 (19:31 +0000)
ChangeLog
magick/draw.c

index c0b30ec891a3c0559b459eadc9a79d40d902a1ee..3a06d74d864fed4fb7693da88af96c424ef56594 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-12-01  6.6.6-1 Cristy  <quetzlzacatenango@image...>
+  * Affine multiplication reversed when translating (reference
+    http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=17570).
+
 2010-11-26  6.6.6-2 Glenn Randers-Pehrson <glennrp@image...>
   * Revised the "c7x7b" and "c7x7w" ordered-dither maps to be complementary
     to each other.
index 4093d05e69b0d4a9d989856df99d21769ed989e8..c849141f476c1113ef983cc7399e748559a2ca34 100644 (file)
@@ -2761,14 +2761,14 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info)
     if ((affine.sx != 1.0) || (affine.rx != 0.0) || (affine.ry != 0.0) ||
         (affine.sy != 1.0) || (affine.tx != 0.0) || (affine.ty != 0.0))
       {
-        graphic_context[n]->affine.sx=affine.sx*current.sx+affine.ry*current.rx;
-        graphic_context[n]->affine.rx=affine.rx*current.sx+affine.sy*current.rx;
-        graphic_context[n]->affine.ry=affine.sx*current.ry+affine.ry*current.sy;
-        graphic_context[n]->affine.sy=affine.rx*current.ry+affine.sy*current.sy;
-        graphic_context[n]->affine.tx=affine.sx*current.tx+affine.ry*current.ty+
-          affine.tx;
-        graphic_context[n]->affine.ty=affine.rx*current.tx+affine.sy*current.ty+
-          affine.ty;
+        graphic_context[n]->affine.sx=current.sx*affine.sx+current.ry*affine.rx;
+        graphic_context[n]->affine.rx=current.rx*affine.sx+current.sy*affine.rx;
+        graphic_context[n]->affine.ry=current.sx*affine.ry+current.ry*affine.sy;
+        graphic_context[n]->affine.sy=current.rx*affine.ry+current.sy*affine.sy;
+        graphic_context[n]->affine.tx=current.sx*affine.tx+current.ry*affine.ty+
+          current.tx;
+        graphic_context[n]->affine.ty=current.rx*affine.tx+current.sy*affine.ty+
+          current.ty;
       }
     if (primitive_type == UndefinedPrimitive)
       {
@@ -5153,8 +5153,8 @@ static void TraceEllipse(PrimitiveInfo *primitive_info,const PointInfo start,
     }
   delta=2.0/MagickMax(stop.x,stop.y);
   step=(MagickRealType) (MagickPI/8.0);
-  if ((delta >= 0.0) && (delta < (MagickRealType) (MagickPI/8.0)))
-    step=(MagickRealType) (MagickPI/(4*(MagickPI/delta/2+0.5)));
+  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)