From 801c6c2d41d8c6124ce95ad4f4f523530c6324ce Mon Sep 17 00:00:00 2001 From: buliabyak Date: Wed, 19 Apr 2006 20:23:30 +0000 Subject: [PATCH] added normal-distributed randomization --- share/extensions/radiusrand.inx | 1 + share/extensions/radiusrand.py | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/share/extensions/radiusrand.inx b/share/extensions/radiusrand.inx index 88bfbe596..d714d2218 100644 --- a/share/extensions/radiusrand.inx +++ b/share/extensions/radiusrand.inx @@ -6,6 +6,7 @@ 100.0 true false + true path diff --git a/share/extensions/radiusrand.py b/share/extensions/radiusrand.py index 97e9aed41..27420a85d 100755 --- a/share/extensions/radiusrand.py +++ b/share/extensions/radiusrand.py @@ -18,8 +18,11 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ''' import random, math, inkex, cubicsuperpath -def randomize((x, y), r): - r = random.uniform(0.0,r) +def randomize((x, y), r, norm): + if norm: + r = abs(random.normalvariate(0.0,0.5*r)) + else: + r = random.uniform(0.0,r) a = random.uniform(0.0,2*math.pi) x += math.cos(a)*r y += math.sin(a)*r @@ -40,6 +43,10 @@ class RadiusRandomize(inkex.Effect): action="store", type="inkbool", dest="end", default=True, help="Randomize nodes") + self.OptionParser.add_option("-n", "--norm", + action="store", type="inkbool", + dest="norm", default=True, + help="Use normal distribution") def effect(self): for id, node in self.selected.iteritems(): if node.tagName == 'path': @@ -48,7 +55,7 @@ class RadiusRandomize(inkex.Effect): for subpath in p: for csp in subpath: if self.options.end: - delta=randomize([0,0], self.options.radius) + delta=randomize([0,0], self.options.radius, self.options.norm) csp[0][0]+=delta[0] csp[0][1]+=delta[1] csp[1][0]+=delta[0] @@ -56,8 +63,8 @@ class RadiusRandomize(inkex.Effect): csp[2][0]+=delta[0] csp[2][1]+=delta[1] if self.options.ctrl: - csp[0]=randomize(csp[0], self.options.radius) - csp[2]=randomize(csp[2], self.options.radius) + csp[0]=randomize(csp[0], self.options.radius, self.options.norm) + csp[2]=randomize(csp[2], self.options.radius, self.options.norm) d.value = cubicsuperpath.formatPath(p) e = RadiusRandomize() -- 2.30.2