chiark / gitweb /
helixish: attempt at the whole thing
[moebius3.git] / helixish.py
index d583421dc709602c9cba41aabed33ecc5df53d17..2c6043eefc306590146f1a05275dcbd4f47f2f19 100644 (file)
@@ -163,7 +163,7 @@ class HelixishCurve():
           delta = atan2(*(end - C)[0:2]) - atan2(*(start - C)[0:2])
           dbg('railway_ST C', C, 'start', start, 'end', end, 'delta', delta)
           if delta < 0: delta += tau
-          s = delta * railway_r
+          s = delta * abs(railway_r)
           dbg('railway_ST delta', delta, 'r', railway_r, 's', s)
           return s
 
@@ -208,7 +208,7 @@ class HelixishCurve():
       vdbg().arrow(findcurve_basis[0:3,3], findcurve_basis[0:3,ax])
 
     q_findcurve = augmatmultiply(findcurve_into, q)
-    dq_findcurve = augmatmultiply(findcurve_into, dq, augwith=0)
+    dq_findcurve = -augmatmultiply(findcurve_into, dq, augwith=0)
 
     findcurve_target = np.hstack((q_findcurve, dq_findcurve))
     findcurve_start = (sqrt(start_s), sqrt(start_t), start_la,
@@ -242,14 +242,17 @@ class HelixishCurve():
 
     #dbg('>> ' + ' '.join(map(str,findcurve_input)))
 
-    dbg(('RUNNING FINDCURVE' +
-         '                                             ' +
+    dbg(('RUNNING FINDCURVE                                ' +
+         '                                                     ' +
          ' target Q=[%10.7f %10.7f %10.7f] dQ=[%10.7f %10.7f %10.7f]')
         %
         tuple(findcurve_input[0:6]))
     dbg(('%s  initial') % dbg_fmt_params(findcurve_input[6:12]))
 
-    print(*findcurve_input, file=findcurve_subproc.stdin)
+    s = ' '.join(map(str, findcurve_input))
+    dbg(('>> %s' % s))
+
+    print(s, file=findcurve_subproc.stdin)
     findcurve_subproc.stdin.flush()
 
     hc.func = symbolic.get_python()