1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-01-17 22:28:16 +01:00
dotSCAD/examples/voronoi/ripples.scad
2022-06-06 13:11:46 +08:00

34 lines
657 B
OpenSCAD

use <noise/nz_worley2.scad>
use <noise/nz_perlin2.scad>
use <surface/sf_thicken.scad>
size = [30, 30];
grid_w = 15;
amplitude = 1;
mesh_w = 0.2;
wave_smoothness = 20;
thickness = 0.5;
dist = "euclidean"; // [euclidean, manhattan, chebyshev, border]
seed = 51;
ripples();
module ripples() {
point_size = size / mesh_w;
sf = [
for(y = [0:point_size.y - 1])
[
for(x = [0:point_size.x - 1])
let(
px = x * mesh_w,
py = y * mesh_w,
nz = nz_worley2(px, py, seed, grid_w, dist)[2],
n = amplitude * nz_perlin2(nz + px / wave_smoothness, nz + py / wave_smoothness, seed)
)
[px, py, n]
]
];
sf_thicken(sf, thickness);
}