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,
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: