summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 73c8edc)
raw | patch | inline | side by side (parent: 73c8edc)
author | buliabyak <buliabyak@users.sourceforge.net> | |
Wed, 19 Apr 2006 20:23:30 +0000 (20:23 +0000) | ||
committer | buliabyak <buliabyak@users.sourceforge.net> | |
Wed, 19 Apr 2006 20:23:30 +0000 (20:23 +0000) |
share/extensions/radiusrand.inx | patch | blob | history | |
share/extensions/radiusrand.py | patch | blob | history |
index 88bfbe596c6ba9d423b6c9f886888ae0da47ba7f..d714d2218971db65bb7e0e06174dc0082dbfec3f 100644 (file)
<param name="radius" type="float" min="0.0" max="1000.0" _gui-text="Radius">100.0</param>
<param name="end" type="boolean" _gui-text="Randomize nodes">true</param>
<param name="ctrl" type="boolean" _gui-text="Randomize node handles">false</param>
+ <param name="norm" type="boolean" _gui-text="Use normal distribution">true</param>
<effect>
<object-type>path</object-type>
<effects-menu>
index 97e9aed41f381d25e4842f93bfc3b2dfcc6df324..27420a85d48aa4458e070e3c3556588d3c8424d0 100755 (executable)
'''
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
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':
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]
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()