1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-22 14:23:23 +02:00
This commit is contained in:
Justin Lin
2022-05-07 17:20:59 +08:00
parent c513d0753c
commit 8bcdb263d3

View File

@@ -2,11 +2,15 @@ use <../bezier_curve.scad>;
function _catmull_rom_spline_4pts(t_step, points, tightness) =
let(
p1x_0tightness = (points[2] - points[0]) / 4 + points[1],
v_p1x = points[1] - p1x_0tightness,
p1x = p1x_0tightness + v_p1x * tightness,
p2x_0tightness = (points[1] - points[3]) / 4 + points[2],
v_p2x = points[2] - p2x_0tightness,
p2x = p2x_0tightness + v_p2x * tightness
p1 = points[1],
p2 = points[2],
t = (tightness - 1) / 4
)
bezier_curve(t_step, [points[1], p1x, p2x, points[2]]);
bezier_curve(t_step,
[
p1,
(points[0] - p2) * t + p1,
(points[3] - p1) * t + p2,
p2
]
);