from moedebug import dbg
from moenp import *
+from math import atan2
+
import symbolic
def augment(v): return np.append(v, 1)
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))
# 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: