chiark / gitweb /
helixish: convert r from polynomial back to our unscaled plane coordinates
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 30 Dec 2017 13:51:01 +0000 (13:51 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 30 Dec 2017 13:51:21 +0000 (13:51 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
helixish.py

index cdf79ce75444a74bab0fd6f9078a43abdbe09999..971c896266b9bd1290002ca1279132cbdf9bf284 100644 (file)
@@ -124,8 +124,15 @@ class HelixishCurve():
         ]
       railway_roots = np.roots(railway_polynomial)
       dbg('railway poly, roots:', railway_polynomial, railway_roots)
-      for railway_r in railway_roots:
-        dbg(' twoarcs root r=',railway_r)
+      for railway_r_pq1 in railway_roots:
+        # roots for r are calculated based on coordinates where
+        # Q is at (1,0) but our PQ distance is different
+        railway_r = railway_r_pq1 * dist_pq_plane
+        dbg(' twoarcs root r_pq1=', railway_r_pq1, 'r=',railway_r,
+            railway_polynomial[0] * railway_r_pq1 * railway_r_pq1 +
+            railway_polynomial[1] * railway_r_pq1                 +
+            railway_polynomial[2]
+        )
 
         def railway_CPQ(pq, dpq, railway_r):
           CPQ = pq + railway_r * np.array([-dpq[1], dpq[0]])