aboutsummaryrefslogtreecommitdiff
path: root/lib/bezier.scad
diff options
context:
space:
mode:
authorChristian Hodgden <chrhodgden@gmail.com>2024-07-26 16:49:40 -0500
committerChristian Hodgden <chrhodgden@gmail.com>2024-07-26 16:49:40 -0500
commitb7b972cca003f32d1bfb64df5d07911ef09fa195 (patch)
tree77bb88e8c26acafd6d9dfdefecf5f25a3c5c6809 /lib/bezier.scad
parent2f42d5a72ade44c310bb871f0a18eec9691c109c (diff)
moved bezier.scad to lib directory
Diffstat (limited to 'lib/bezier.scad')
-rw-r--r--lib/bezier.scad12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/bezier.scad b/lib/bezier.scad
new file mode 100644
index 0000000..8fb41e9
--- /dev/null
+++ b/lib/bezier.scad
@@ -0,0 +1,12 @@
+
+function de_casteljau(points, t) =
+ len(points) == 1 ?
+ points[0] :
+ de_casteljau(
+ [for (i = [0:len(points)-2]) (1 - t) * points[i] + t * points[i + 1]],
+ t
+ ) ;
+
+function bezier_curve(points, $fn=$fn) =
+ [for (i = [0:$fn]) de_casteljau(points, i / $fn)] ;
+