chiark / gitweb /
helixish: bugfixes
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 26 Nov 2017 16:24:48 +0000 (16:24 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 26 Nov 2017 16:24:48 +0000 (16:24 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
helixish.py

index d1f9ff6f0fb4cd0a9d15308bbc4611c32ac4b3e6..c5c30d785408b1bf2ab771d48d7a3a6b0035316e 100644 (file)
@@ -8,6 +8,8 @@ import sys
 from moedebug import dbg
 from moenp import *
 
+from math import atan2
+
 import symbolic
 
 def augment(v): return np.append(v, 1)
@@ -43,11 +45,11 @@ class HelixishCurve():
       dPQplane_normal += [0, 0, 1E5]
     dPQplane_normal = unit_v(dPQplane_normal)
 
-    dPQplane_basis = np.column_stack(np.cross(dp, dPQplane_normal),
-                                     dp,
-                                     dPQplane_normal,
-                                     p);
-    dPQplane_basis = np.vstack(dPQplane_basis, [0,0,0,1])
+    dPQplane_basis = np.column_stack((np.cross(dp, dPQplane_normal),
+                                      dp,
+                                      dPQplane_normal,
+                                      p));
+    dPQplane_basis = np.vstack((dPQplane_basis, [0,0,0,1]))
     dPQplane_into = np.linalg.inv(dPQplane_basis)
 
     dp_plane = unaugment(dPQplane_into * augment0(dp))
@@ -58,9 +60,9 @@ class HelixishCurve():
     # two circular arcs of equal maximum possible radius
     # algorithm courtesy of Simon Tatham (`Railway problem',
     # pers.comm. to ijackson@chiark 23.1.2004)
-    railway_angleoffset = atan2(*q_plane[0:1])
+    railway_angleoffset = atan2(*q_plane[0:2])
     railway_theta =                      tau/4 - railway_angleoffset
-    railway_phi   = atan2(*dq_plane[0:1]) - railway_angleoffset
+    railway_phi   = atan2(*dq_plane[0:2]) - railway_angleoffset
     railway_cos_theta = cos(railway_theta)
     railway_cos_phi   = cos(railway_phi)
     if railway_cos_theta**2 + railway_cos_phi**2 > 1E6: