m.midline = Twirler(-unit_z, unit_z, unit_y, -0.5, 0)
m.nu = nu
m._thetas = [ u * tau for u in np.linspace(0, 1, nu+1) ]
+ m._cp2b = BezierSegment([ (c,) for c in [0.33,0.33, 1.50]])
m._beziers = [ m._bezier(theta) for theta in m._thetas ]
def _bezier(m, theta):
cp = [None] * 4
cp[3] = m.midline.point(theta*2)
ncp3 = np.linalg.norm(cp[3])
cpt = ncp3 * ncp3 / 4
- cp2scale = 1.50 * cpt + 0.33 * (1-cpt)
+ cp2scale = m._cp2b.point_at_t(ncp3/2)
cp1scale = 0.75 * cpt + 0.33 * (1-cpt)
#print('u=%d ncp3=%f cp2scale=%f' % (u, ncp3, cp2scale),
# file=sys.stderr)