1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-11 01:04:07 +02:00
This commit is contained in:
Justin Lin
2021-10-14 18:25:10 +08:00
parent a8ae7c18e4
commit 6d6f62c77f
3 changed files with 6 additions and 25 deletions

View File

@@ -1,16 +1,16 @@
use <util/rand.scad>;
use <noise/nz_perlin3s.scad>;
use <experimental/geom_icosahedron.scad>;
use <polyhedra/geom_icosahedron.scad>;
// radius = 30;
// detail = 4;
// detail = 10;
// amplitude = 10;
// period = 20;
// perlin_sphere(radius, detail, amplitude, period);
module perlin_sphere(radius, detail, amplitude, period = 10, seed = undef) {
points_faces = geom_icosahedron(radius, detail, quick_mode = false);
points_faces = geom_icosahedron(radius, detail);
points = points_faces[0];
faces = points_faces[1];

View File

@@ -1,19 +0,0 @@
function _tri_subdivide(points) =
let(
p0 = points[0],
p1 = points[1],
p2 = points[2],
m0 = (p0 + p1) / 2,
m1 = (p1 + p2) / 2,
m2 = (p2 + p0) / 2
)
[
[p0, m0, m2],
[m0, p1, m1],
[m1, p2, m2],
[m0, m1, m2]
];
function tri_subdivide(points, n = 1) =
n == 1 ? _tri_subdivide(points) :
[for(tri = tri_subdivide(points, n - 1)) each _tri_subdivide(tri)];

View File

@@ -1,9 +1,9 @@
use <util/rand.scad>;
use <noise/nz_worley3s.scad>;
use <experimental/geom_icosahedron.scad>;
use <polyhedra/geom_icosahedron.scad>;
// radius = 30;
// detail = 3;
// detail = 10;
// amplitude = .05;
// dist = "border"; // [euclidean, manhattan, chebyshev, border]
@@ -12,7 +12,7 @@ use <experimental/geom_icosahedron.scad>;
module worley_sphere(radius, detail, amplitude, dist = "border", grid_w = undef, seed = undef) {
gw = is_undef(grid_w) ? radius : grid_w;
points_faces = geom_icosahedron(radius, detail, quick_mode = false);
points_faces = geom_icosahedron(radius, detail);
points = points_faces[0];
faces = points_faces[1];