chiark / gitweb /
introduce cp1scale, cp2scale
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 4 Nov 2017 23:46:35 +0000 (23:46 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 4 Nov 2017 23:46:35 +0000 (23:46 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
moebius.py

index 37b7676825d76b5830ad0147e123b37474d57493..0fd9ce3a7e09a529316bd8e6229c31b174399b2c 100644 (file)
@@ -66,9 +66,12 @@ class MoebiusHalf:
     theta = u * tau
     cp = [None] * 4
     cp[0] =               m.edge   .point(theta)
-    cp[1] = cp[0] + 0.75 * m.edge   .dirn (theta)
     cp[3] =               m.midline.point(theta*2)
-    cp[2] = cp[3] + np.linalg.norm(cp[3]) * m.midline.dirn (theta*2)
+    ncp3 = np.linalg.norm(cp[3])
+    cp2scale = ncp3
+    cp1scale = 0.75
+    cp[1] = cp[0] + cp1scale * m.edge   .dirn (theta)
+    cp[2] = cp[3] + cp2scale * m.midline.dirn (theta*2)
     return BezierSegment(cp)
   def point(m, iu, t):
     '''