Code

scale x-axis-rotation angle in elliptical arc
authoralvinpenner <alvinpenner@users.sourceforge.net>
Sun, 8 Feb 2009 11:12:51 +0000 (11:12 +0000)
committeralvinpenner <alvinpenner@users.sourceforge.net>
Sun, 8 Feb 2009 11:12:51 +0000 (11:12 +0000)
share/extensions/simplepath.py

index 4cfedcac9fdc742eefb9a6f8579b5abf06470aee..f62b1b4b3ca86dda01ada1594837df78c0020ad5 100755 (executable)
@@ -68,7 +68,7 @@ pathdefs = {
     'S':['S', 4, [float, float, float, float], ['x','y','x','y']], 
     'Q':['Q', 4, [float, float, float, float], ['x','y','x','y']], 
     'T':['T', 2, [float, float], ['x','y']], 
-    'A':['A', 7, [float, float, float, int, int, float, float], ['r','r',0,0,'s','x','y']], 
+    'A':['A', 7, [float, float, float, int, int, float, float], ['r','r','a',0,'s','x','y']], 
     'Z':['L', 0, [], []]
     }
 def parsePath(d):
@@ -189,6 +189,9 @@ def scalePath(p, x, y):
             elif defs[3][i] == 's':         # sweep-flag parameter
                 if x*y < 0:
                     params[i] = 1 - params[i]
+            elif defs[3][i] == 'a':         # x-axis-rotation angle
+                if y < 0:
+                    params[i] = - params[i]
 
 def rotatePath(p, a, cx = 0, cy = 0):
     if a == 0: