1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-11 09:14:29 +02:00
This commit is contained in:
Justin Lin
2022-05-01 16:55:53 +08:00
parent 920b09ed07
commit 9aa6bbb5ca

View File

@@ -1,5 +1,6 @@
use <util/rand.scad>; use <util/rand.scad>;
use <noise/nz_worley3s.scad>; use <noise/nz_worley3s.scad>;
use <noise/_impl/_nz_worley3_impl.scad>;
use <polyhedra/geom_icosahedron.scad>; use <polyhedra/geom_icosahedron.scad>;
radius = 30; radius = 30;
@@ -11,22 +12,10 @@ worley_sphere(radius, detail, amplitude, dist);
module worley_sphere(radius, detail, amplitude, dist = "border", grid_w = undef, seed = undef) { module worley_sphere(radius, detail, amplitude, dist = "border", grid_w = undef, seed = undef) {
gw = is_undef(grid_w) ? radius : grid_w; gw = is_undef(grid_w) ? radius : grid_w;
points_faces = geom_icosahedron(1, detail); points_faces = geom_icosahedron(1, detail);
points = points_faces[0]; sd = is_undef(seed) ? floor(rand(0, 256)) : seed % 256;
faces = points_faces[1]; polyhedron(
[for(p = points_faces[0]) p * (radius + _nz_worley3(p * radius, sd, gw, dist)[3] * amplitude)],
sd = is_undef(seed) ? rand() * 1000: seed; points_faces[1]
noisy = nz_worley3s(points * radius, sd, gw, dist); );
noisy_points = [
for(i = [0:len(points) - 1])
let(
p = points[i],
nz = noisy[i][3]
)
p * (radius + nz * amplitude)
];
polyhedron(noisy_points, faces);
} }