From b98631f0748281ef6d0d23901b9fe588973a5cc1 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 30 Dec 2017 12:17:01 +0000 Subject: [PATCH] helixish: move so we put the basis stuff for debugging first No functional change. Signed-off-by: Ian Jackson --- helixish.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/helixish.py b/helixish.py index 1d36fae..2bfa494 100644 --- a/helixish.py +++ b/helixish.py @@ -80,15 +80,6 @@ class HelixishCurve(): vdbg_plane.arrow(p_plane_check, dp_plane) vdbg_plane.arrow(q_plane, dq_plane) - # 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:2]) - railway_theta = atan2(*dp_plane[0:2]) - railway_angleoffset - railway_phi = atan2(*dq_plane[0:2]) - railway_angleoffset - railway_cos_theta = cos(railway_theta) - railway_cos_phi = cos(railway_phi) - railway_inplane_basis_x = np.hstack((q_plane[0:2], [0])) railway_inplane_basis = np.column_stack(( railway_inplane_basis_x, @@ -103,6 +94,16 @@ class HelixishCurve(): railway_basis = matmatmultiply(dPQplane_basis, railway_inplane_basis) dbg('railway_basis\n', railway_basis) vdbg().basis(railway_basis, hue=(1,0,1)) + + # 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:2]) + railway_theta = atan2(*dp_plane[0:2]) - railway_angleoffset + railway_phi = atan2(*dq_plane[0:2]) - railway_angleoffset + railway_cos_theta = cos(railway_theta) + railway_cos_phi = cos(railway_phi) + dbg('railway:', railway_theta, railway_phi, railway_angleoffset) if railway_cos_theta**2 + railway_cos_phi**2 > 1E-6: -- 2.30.2