summaryrefslogtreecommitdiffstats
path: root/share/extensions/funcplot.py
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2010-11-25 20:51:17 +0000
committerKrzysztof KosiƄski <tweenk.pl@gmail.com>2010-11-25 20:51:17 +0000
commit0bd9f7e209d522dbcebe0449a91397fdd9e38977 (patch)
tree834c7d02456658b57625ab68cc28f7854a5a85dc /share/extensions/funcplot.py
parentFix handling of x and y attributes of patterns (diff)
parentFix ruler redraw issue on GTK 2.22 (diff)
downloadinkscape-0bd9f7e209d522dbcebe0449a91397fdd9e38977.tar.gz
inkscape-0bd9f7e209d522dbcebe0449a91397fdd9e38977.zip
Merge from trunk
(bzr r9508.1.70)
Diffstat (limited to 'share/extensions/funcplot.py')
-rw-r--r--share/extensions/funcplot.py21
1 files changed, 16 insertions, 5 deletions
diff --git a/share/extensions/funcplot.py b/share/extensions/funcplot.py
index 126429853..0beaf3946 100644
--- a/share/extensions/funcplot.py
+++ b/share/extensions/funcplot.py
@@ -30,7 +30,7 @@ from math import *
from random import *
def drawfunction(xstart, xend, ybottom, ytop, samples, width, height, left, bottom,
- fx = "sin(x)", fpx = "cos(x)", fponum = True, times2pi = False, polar = False, isoscale = True, drawaxis = True):
+ fx = "sin(x)", fpx = "cos(x)", fponum = True, times2pi = False, polar = False, isoscale = True, drawaxis = True, endpts = False):
if times2pi == True:
xstart = 2 * pi * xstart
@@ -122,7 +122,11 @@ def drawfunction(xstart, xend, ybottom, ytop, samples, width, height, left, bott
dy0 = fp(xstart)
# Start curve
- a.append([' M ',[coordx(x0), coordy(y0)]]) # initial moveto
+ if endpts:
+ a.append([' M ',[left, coordy(0)]])
+ a.append([' L ',[coordx(x0), coordy(y0)]])
+ else:
+ a.append([' M ',[coordx(x0), coordy(y0)]]) # initial moveto
for i in range(int(samples-1)):
x1 = (i+1) * step + xstart
@@ -153,7 +157,9 @@ def drawfunction(xstart, xend, ybottom, ytop, samples, width, height, left, bott
x0 = x1 # Next segment's start is this segments end
y0 = y1
dx0 = dx1 # Assume the function is smooth everywhere, so carry over the derivative too
- dy0 = dy1
+ dy0 = dy1
+ if endpts:
+ a.append([' L ',[left + width, coordy(0)]])
return a
class FuncPlot(inkex.Effect):
@@ -211,6 +217,10 @@ class FuncPlot(inkex.Effect):
action="store", type="inkbool",
dest="drawaxis", default=True,
help="If True, axis are drawn")
+ self.OptionParser.add_option("--endpts",
+ action="store", type="inkbool",
+ dest="endpts", default=False,
+ help="If True, end points are added")
self.OptionParser.add_option("--tab",
action="store", type="string",
dest="tab", default="sampling",
@@ -257,7 +267,8 @@ class FuncPlot(inkex.Effect):
self.options.times2pi,
self.options.polar,
self.options.isoscale,
- self.options.drawaxis)))
+ self.options.drawaxis,
+ self.options.endpts)))
newpath.set('title', self.options.fofx)
#newpath.setAttribute('desc', '!func;' + self.options.fofx + ';'
@@ -278,4 +289,4 @@ if __name__ == '__main__':
e.affect()
-# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 encoding=utf-8 textwidth=99
+# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99