From ae9cf21d799c061d193c441299a23ddb82260871 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Thu, 24 Dec 2020 09:58:36 +0800 Subject: [PATCH] add xmas_tree --- examples/xmas_tree.scad | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 examples/xmas_tree.scad diff --git a/examples/xmas_tree.scad b/examples/xmas_tree.scad new file mode 100644 index 00000000..9b381c1d --- /dev/null +++ b/examples/xmas_tree.scad @@ -0,0 +1,40 @@ +use ; +use ; +use ; + +base = 100; +segments = 150; + +xmas_tree(base, segments); + +module xmas_tree(base, segments) { + half_base = base / 2; + height = PI * half_base; + slope = height / half_base; + dx = half_base / segments; + dh = height / segments; + a = dh / (2 * PI * half_base) * 360 * 3; + base_h = dh * 2; + seg_w = base_h * 3; + + for(i = [0:segments]) { + x = i * dx - half_base; + + color(c = [0, rand(), 0]) + rotate(a * i) + translate([0, 0, dx * i * slope + base_h]) + linear_extrude(dh) + line2d([x, 0], [-x, 0], width = seg_w); + } + + color("Sienna") + linear_extrude(base_h) + circle(half_base + base_h + seg_w, $fn = 48); + + color("yellow") + translate([0, 0, height + dh * 6]) + rotate([90, 0, 540]) { + starburst(seg_w * 2.75, seg_w * 1.25, 8, seg_w); + mirror([0, 0, 1]) starburst(seg_w * 2.75, seg_w * 1.25, 8, seg_w); + } +} \ No newline at end of file