From fd6fbbc92f9f3ac441b7c93c2b580e4cfca91274 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Mon, 16 Aug 2021 13:13:31 +0800 Subject: [PATCH] add penrose_basket --- examples/tiles/penrose_basket.scad | 48 ++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 examples/tiles/penrose_basket.scad diff --git a/examples/tiles/penrose_basket.scad b/examples/tiles/penrose_basket.scad new file mode 100644 index 00000000..75080776 --- /dev/null +++ b/examples/tiles/penrose_basket.scad @@ -0,0 +1,48 @@ +use ; +use ; +use ; +use ; + +radius = 10; +n = 5; +line_diameter = .5; +$fn = 3; + +penrose_basket(radius, n, line_diameter); + +module penrose_basket(radius, n, line_diameter) { + cos36 = cos(36); + sin36 = sin(36); + + obtuse = [ + [2 * cos36 ^ 2, 2 * cos36 * sin36], + [1, 0], + [0, 0] + ]; + + acute = [ + [4 * cos36 ^ 2 - 1, 0], + [2 * cos36 ^ 2, 2 * cos36 * sin36], + [1, 0] + ]; + + tris = tile_penrose3(n, [ + for(i = [0:4]) + each [ + ["OBTUSE", + [for(p = obtuse) ptf_rotate(p, i * 72)] + ], + ["ACUTE", + [for(p = acute) ptf_rotate(p, i * 72)] + ] + ] + ]); + + r = radius * 2 * cos36; + for(t = tris) { + hull_polyline3d( + [for(p = t[1] * radius) ptf_c2sphere(p, r)], + line_diameter + ); + } +}