added vectorized points() method for bezier segments
parent
1f7503aabd
commit
70534a6b6c
|
@ -576,6 +576,10 @@ class Line(object):
|
||||||
distance = self.end - self.start
|
distance = self.end - self.start
|
||||||
return self.start + distance*t
|
return self.start + distance*t
|
||||||
|
|
||||||
|
def points(self, ts):
|
||||||
|
"""Faster than running Path.point many times."""
|
||||||
|
return self.poly(ts)
|
||||||
|
|
||||||
def length(self, t0=0, t1=1, error=None, min_depth=None):
|
def length(self, t0=0, t1=1, error=None, min_depth=None):
|
||||||
"""returns the length of the line segment between t0 and t1."""
|
"""returns the length of the line segment between t0 and t1."""
|
||||||
return abs(self.end - self.start)*(t1-t0)
|
return abs(self.end - self.start)*(t1-t0)
|
||||||
|
@ -815,6 +819,10 @@ class QuadraticBezier(object):
|
||||||
"""returns the coordinates of the Bezier curve evaluated at t."""
|
"""returns the coordinates of the Bezier curve evaluated at t."""
|
||||||
return (1 - t)**2*self.start + 2*(1 - t)*t*self.control + t**2*self.end
|
return (1 - t)**2*self.start + 2*(1 - t)*t*self.control + t**2*self.end
|
||||||
|
|
||||||
|
def points(self, ts):
|
||||||
|
"""Faster than running Path.point many times."""
|
||||||
|
return self.poly(ts)
|
||||||
|
|
||||||
def length(self, t0=0, t1=1, error=None, min_depth=None):
|
def length(self, t0=0, t1=1, error=None, min_depth=None):
|
||||||
if t0 == 1 and t1 == 0:
|
if t0 == 1 and t1 == 0:
|
||||||
if self._length_info['bpoints'] == self.bpoints():
|
if self._length_info['bpoints'] == self.bpoints():
|
||||||
|
@ -1073,6 +1081,10 @@ class CubicBezier(object):
|
||||||
-self.start + 3*(self.control1 - self.control2) + self.end
|
-self.start + 3*(self.control1 - self.control2) + self.end
|
||||||
)))
|
)))
|
||||||
|
|
||||||
|
def points(self, ts):
|
||||||
|
"""Faster than running Path.point many times."""
|
||||||
|
return self.poly(ts)
|
||||||
|
|
||||||
def length(self, t0=0, t1=1, error=LENGTH_ERROR, min_depth=LENGTH_MIN_DEPTH):
|
def length(self, t0=0, t1=1, error=LENGTH_ERROR, min_depth=LENGTH_MIN_DEPTH):
|
||||||
"""Calculate the length of the path up to a certain position"""
|
"""Calculate the length of the path up to a certain position"""
|
||||||
if t0 == 0 and t1 == 1:
|
if t0 == 0 and t1 == 1:
|
||||||
|
|
Loading…
Reference in New Issue