1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-01-17 14:18:13 +01:00
This commit is contained in:
Justin Lin 2020-12-15 10:08:10 +08:00
parent ca11fbe0f9
commit 4f117a2946
5 changed files with 64 additions and 1 deletions

View File

@ -237,7 +237,7 @@ These examples incubate dotSCAD and dotSCAD refactors these examples. See [examp
- [curve](https://openhome.cc/eGossip/OpenSCAD/lib2x-curve.html)
- [bauer_spiral](https://openhome.cc/eGossip/OpenSCAD/lib2x-bauer_spiral.html)
- fibonacci_lattice
- [fibonacci_lattice](https://openhome.cc/eGossip/OpenSCAD/lib2x-fibonacci_lattice.html)
### Voxel

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View File

@ -0,0 +1,53 @@
# fibonacci_lattice
Creates visually even spacing of n points on the surface of the sphere. Nearest-neighbor points will all be approximately the same distance apart. There're 10 spirals on the sphere.
(It's called "visually even spacing" because only the vertices of the 5 [Platonic solids](https://en.wikipedia.org/wiki/Platonic_solid) can be said to be truly evenly spaced around the surface of a sphere.)
## Parameters
- `n` : The number of points.
- `radius` : The sphere radius. Default to 1.
- `rt_dir` : `"CT_CLK"` for counterclockwise. `"CLK"` for clockwise. The default value is `"CT_CLK"`.
## Examples
use <fibonacci_lattice.scad>;
n = 200;
radius = 20;
pts = fibonacci_lattice(n, radius);
for(p = pts) {
translate(p)
sphere(1);
}
sphere(radius);
![fibonacci_lattice](images/lib2x-fibonacci_lattice-1.JPG)
use <fibonacci_lattice.scad>;
use <hull_polyline3d.scad>;
n = 200;
radius = 20;
pts = fibonacci_lattice(n, radius);
for(p = pts) {
translate(p)
sphere(1);
}
sphere(radius);
spirals = [for(j = [0:9])
[for(i = j; i < len(pts); i = i + 8) pts[i]]
];
for(spiral = spirals) {
hull_polyline3d(spiral, 1);
}
![fibonacci_lattice](images/lib2x-fibonacci_lattice-2.JPG)

View File

@ -1,3 +1,13 @@
/**
* fibonacci_lattice.scad
*
* @copyright Justin Lin, 2020
* @license https://opensource.org/licenses/lgpl-3.0.html
*
* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-fibonacci_lattice.html
*
**/
function fibonacci_lattice(n, radius = 1, dir = "CT_CLK") =
let(
toDegrees = 180 / PI,