chiark / gitweb /
tuning
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 5 Nov 2017 01:10:43 +0000 (01:10 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 5 Nov 2017 01:10:43 +0000 (01:10 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
genscad
moebius.py

diff --git a/genscad b/genscad
index 26a21e7720baf6484c2dd29f28d8f951e1fefe23..bb9f7fea57e964daf32d5174fe8ca950f7335ea9 100755 (executable)
--- a/genscad
+++ b/genscad
@@ -10,8 +10,8 @@ from moebius import *
 nomsize = 20
 thick = 2.5
 
-nv = 40
-nw = 40
+nv = 80
+nw = 80
 
 m = Moebius(nv, nw)
 
index f2a29da2f7350991a6e0f4ea79a24b5572bae4cf..668d78ce8e1d6c58ed41776e524461b360ed5b9e 100644 (file)
@@ -62,6 +62,7 @@ class MoebiusHalf:
     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
@@ -69,7 +70,7 @@ class MoebiusHalf:
     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)