Use splitCubicIntoTwo() more

Shaves another 5%.
This commit is contained in:
Behdad Esfahbod 2016-07-24 13:42:21 -04:00
parent dff2cd8669
commit 8a13ef1edf

View File

@ -163,8 +163,11 @@ def cubic_approx_spline(p, n, tolerance):
return quad return quad
spline = [p[0]] spline = [p[0]]
ts = [i / n for i in range(1, n)] if n == 2:
segments = splitCubicAtT(p[0], p[1], p[2], p[3], *ts) segments = splitCubicIntoTwo(p[0], p[1], p[2], p[3])
else:
ts = [i / n for i in range(1, n)]
segments = splitCubicAtT(p[0], p[1], p[2], p[3], *ts)
for i in range(len(segments)): for i in range(len(segments)):
spline.append(cubic_approx_control(segments[i], i / (n - 1))) spline.append(cubic_approx_control(segments[i], i / (n - 1)))
spline.append(p[3]) spline.append(p[3])