From c335111b44b0785ed985fed70c0ebc0d37fe4758 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Sun, 29 Sep 2019 14:09:17 +0800 Subject: [PATCH] add doc --- docs/images/lib2-t2d-1.JPG | Bin 0 -> 29968 bytes docs/images/lib2-t2d-2.JPG | Bin 0 -> 39355 bytes docs/lib2-t2d.md | 92 +++++++++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 docs/images/lib2-t2d-1.JPG create mode 100644 docs/images/lib2-t2d-2.JPG create mode 100644 docs/lib2-t2d.md diff --git a/docs/images/lib2-t2d-1.JPG b/docs/images/lib2-t2d-1.JPG new file mode 100644 index 0000000000000000000000000000000000000000..192240f408587f7e2f64ad6215e3028f6b3cb800 GIT binary patch literal 29968 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 z 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 N_dj*K9{qjle*o@t>#zU- literal 0 HcmV?d00001 diff --git a/docs/images/lib2-t2d-2.JPG b/docs/images/lib2-t2d-2.JPG new file mode 100644 index 0000000000000000000000000000000000000000..d1724f6f0b3f7b8fcc75367a6335f4a9dddee5c9 GIT binary patch literal 39355 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 + include ; + + module turtle_spiral(t, times, side_leng, angle, width) { + $fn = 24; + if(times != 0) { + t1 = t2d(t, "turn", angle = angle); + t2 = t2d(t1, "forward", leng = side_leng); + + line2d( + t2d(t, "point"), + t2d(t2, "point"), + width, + p1Style = "CAP_ROUND", + p2Style = "CAP_ROUND" + ); + + turtle_spiral(t2, times - 1, side_leng, angle, width); + } + + } + + turtle_spiral( + t2d(point = [0, 0], angle = 0), + times = 5, + side_leng = 10, + angle = 144, + width = 1 + ); + +![t2d](images/lib2-t2d-1.JPG) + + include ; + include ; + + side_leng = 100; + min_leng = 4; + thickness = 0.5; + + sierpinski_triangle( + t2d(point = [0, 0], angle = 0), + side_leng, min_leng, thickness, $fn = 3 + ); + + module triangle(t, side_leng, thickness) { + t2 = t2d(t, "forward", leng = side_leng); + t3 = t2d(t2, [ + ["turn", 120], + ["forward", side_leng] + ]); + + hull_polyline2d( + [for(turtle = [t, t2, t3, t]) t2d(turtle, "point")], + thickness + ); + } + + module sierpinski_triangle(t, side_leng, min_leng, thickness) { + triangle(t, side_leng, thickness); + + if(side_leng >= min_leng) { + half_leng = side_leng / 2; + t2 = t2d(t, "forward", leng = half_leng); + t3 = t2d(t, [ + ["turn", 60], + ["forward", half_leng], + ["turn", -60] + ]); + + for(turtle = [t, t2, t3]) { + sierpinski_triangle(turtle, half_leng, min_leng, thickness); + } + } + } + +![t2d](images/lib2-t2d-2.JPG)