From 0d91c42c78440fddd81a01edbb68b2541dc4f8b4 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Tue, 25 Apr 2017 20:20:05 +0800 Subject: [PATCH] updated doc --- README.md | 1 + docs/images/lib-golden_spiral-1.JPG | Bin 0 -> 27881 bytes docs/images/lib-golden_spiral-2.JPG | Bin 0 -> 39298 bytes docs/lib-golden_spiral.md | 80 +++++++++++----------------- 4 files changed, 33 insertions(+), 48 deletions(-) create mode 100644 docs/images/lib-golden_spiral-1.JPG create mode 100644 docs/images/lib-golden_spiral-2.JPG diff --git a/README.md b/README.md index 6c446499..a450cf1b 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,7 @@ Some modules may depend on other modules. For example, the `polyline2d` module d - [bezier_curve](https://openhome.cc/eGossip/OpenSCAD/lib-bezier_curve.html) - [bezier_surface](https://openhome.cc/eGossip/OpenSCAD/lib-bezier_surface.html) - [helix](https://openhome.cc/eGossip/OpenSCAD/lib-helix.html) + - [golden_spiral](https://openhome.cc/eGossip/OpenSCAD/lib-golden_spiral.html) - [archimedean_spiral](https://openhome.cc/eGossip/OpenSCAD/lib-archimedean_spiral.html) - [sphere_spiral](https://openhome.cc/eGossip/OpenSCAD/lib-sphere_spiral.html) diff --git a/docs/images/lib-golden_spiral-1.JPG b/docs/images/lib-golden_spiral-1.JPG new file mode 100644 index 0000000000000000000000000000000000000000..62825489c432c3b9fae2d96632f42dc2ea272e87 GIT binary patch literal 27881 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 literal 0 HcmV?d00001 diff --git a/docs/images/lib-golden_spiral-2.JPG b/docs/images/lib-golden_spiral-2.JPG new file mode 100644 index 0000000000000000000000000000000000000000..5a38c08a486c264b7b77b0db24a7a9a673b35b03 GIT binary patch literal 39298 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 e(Vk>}i!n1zj*fJ~8fdQBvb~143ti4gDP;QZ~T= literal 0 HcmV?d00001 diff --git a/docs/lib-golden_spiral.md b/docs/lib-golden_spiral.md index 5539091c..ace07118 100644 --- a/docs/lib-golden_spiral.md +++ b/docs/lib-golden_spiral.md @@ -4,6 +4,8 @@ Gets all points and angles on the path of a golden spiral. The distance between It returns a vector of `[[x, y], angle]`. +Because of depending on `circle_path` and `rotate_p`, remember to include "circle_path.scad" and "rotate_p.scad". + ## Parameters - `from` : The nth Fibonacci number you wanna start from. @@ -13,56 +15,38 @@ It returns a vector of `[[x, y], angle]`. ## Examples - include ; - include ; + include ; + include ; + include ; + + pts_angles = golden_spiral( + from = 3, + to = 10, + point_distance = 1 + ); - points_angles = archimedean_spiral( - arm_distance = 10, - init_angle = 180, - point_distance = 5, - num_of_points = 100 - ); - - points = [for(pa = points_angles) pa[0]]; - - polyline2d(points, width = 1); + for(pt_angle = pts_angles) { + translate(pt_angle[0]) + sphere(0.5); + } - -![archimedean_spiral](images/lib-archimedean_spiral-1.JPG) +![golden_spiral](images/lib-golden_spiral-1.JPG) - include ; - - points_angles = archimedean_spiral( - arm_distance = 10, - init_angle = 180, - point_distance = 5, - num_of_points = 100 - ); - - for(pa = points_angles) { - translate(pa[0]) - circle(2); + include ; + include ; + include ; + + pts_angles = golden_spiral( + from = 5, + to = 11, + point_distance = 4 + ); + + for(pt_angle = pts_angles) { + translate(pt_angle[0]) + rotate([90, 0, pt_angle[1]]) + linear_extrude(1, center = true) + text("A", valign = "center", halign = "center"); } - -![archimedean_spiral](images/lib-archimedean_spiral-2.JPG) - - include ; - t = "3.141592653589793238462643383279502884197169399375105820974944592307816406286"; - - points = archimedean_spiral( - arm_distance = 15, - init_angle = 450, - point_distance = 12, - num_of_points = len(t) - ); - - for(i = [0: len(points) - 1]) { - translate(points[i][0]) - rotate(points[i][1] + 90) - text(t[i], valign = "center", halign = "center"); - } - -![archimedean_spiral](images/lib-archimedean_spiral-3.JPG) - - +![golden_spiral](images/lib-golden_spiral-2.JPG) \ No newline at end of file