From 12c42fef76a9feafe4ebf393e35f669499fa2ad8 Mon Sep 17 00:00:00 2001 From: alvinpenner Date: Sat, 7 Feb 2009 18:48:06 +0000 Subject: [PATCH] scale the radius and sweep-flag in elliptical arc --- share/extensions/simplepath.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/share/extensions/simplepath.py b/share/extensions/simplepath.py index 8d50429a6..4cfedcac9 100755 --- a/share/extensions/simplepath.py +++ b/share/extensions/simplepath.py @@ -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], [0,0,0,0,0,'x','y']], + 'A':['A', 7, [float, float, float, int, int, float, float], ['r','r',0,0,'s','x','y']], 'Z':['L', 0, [], []] } def parsePath(d): @@ -184,6 +184,11 @@ def scalePath(p, x, y): params[i] *= x elif defs[3][i] == 'y': params[i] *= y + elif defs[3][i] == 'r': # radius parameter + params[i] *= x + elif defs[3][i] == 's': # sweep-flag parameter + if x*y < 0: + params[i] = 1 - params[i] def rotatePath(p, a, cx = 0, cy = 0): if a == 0: -- 2.30.2