chiark / gitweb /
Revert "RecursiveBezierishCurve: Try it" working.beziers
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 7 Apr 2018 11:00:53 +0000 (12:00 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 7 Apr 2018 11:00:53 +0000 (12:00 +0100)
This reverts commit 9a77b7a72b35200447e25c105ae383a1186a3899.

moebius.py
recursivebezier.py [deleted file]

index 851a8a8029fabbed929648e9089a434fb3af07c9..34111728052e03c6b6dbdcceaf4a88f03d7f0a60 100644 (file)
@@ -5,7 +5,6 @@ import numpy as np
 from numpy import cos, sin
 
 from bezier import BezierSegment
-from recursivebezier import RecursiveBezierishCurve
 from moenp import *
 
 import sys
@@ -82,7 +81,7 @@ class MoebiusHalf:
     m._thetas = [ u * tau for u in np.linspace(0, 1, nu+1) ]
     m._cp2b = BezierSegment([ (c,) for c in [0.33,0.33, 1.50]])
     m._beziers = [ m._bezier(theta) for theta in m._thetas ]
-  def _bezier(m, theta, constructor=RecursiveBezierishCurve):
+  def _bezier(m, theta, constructor=DoubleCubicBezier):
     cp = [None] * 4
     cp[0] =               m.edge   .point(theta)
     cp[3] =               m.midline.point(theta*2)
diff --git a/recursivebezier.py b/recursivebezier.py
deleted file mode 100644 (file)
index 9ec7f27..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-
-from __future__ import print_function
-
-import numpy as np
-
-from bezier import BezierSegment
-from moenp import *
-
-class RecursiveBezierishCurve():
-  def __init__(db, cp, depth=10):
-    single = BezierSegment(cp)
-    midpoint = np.array(single.point_at_t(0.5))
-    mid_dirn = single.point_at_t(0.5 + 0.001) - midpoint
-    mid_dirn /= np.linalg.norm(mid_dirn)
-    ocp_factor = 0.5
-    mid_scale = ocp_factor * 0.5 * (np.linalg.norm(cp[1] - cp[0]) +
-                                    np.linalg.norm(cp[3] - cp[2]))
-    if depth > 0:
-      constructor = lambda ccp: RecursiveBezierishCurve(ccp, depth-1)
-    else:
-      constructor = BezierSegment
-
-    db.b0 = constructor([ cp[0],
-                          cp[1] * ocp_factor + cp[0] * (1-ocp_factor),
-                          midpoint - mid_dirn * mid_scale,
-                          midpoint ])
-    db.b1 = constructor([ midpoint,
-                          midpoint + mid_dirn * mid_scale,
-                          cp[2] * ocp_factor + cp[3] * (1-ocp_factor),
-                          cp[3] ])
-  def point_at_t(db, t):
-    if t < 0.5:
-      return db.b0.point_at_t(t*2)
-    else:
-      return db.b1.point_at_t(t*2 - 1)
-