mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-18 04:21:16 +02:00
it doesn't require mirror now
This commit is contained in:
@@ -2,6 +2,7 @@ use <util/rand.scad>;
|
||||
use <experimental/pnoise2s.scad>;
|
||||
use <experimental/sf_solidify.scad>;
|
||||
use <experimental/ptf_bend.scad>;
|
||||
use <util/slice.scad>;
|
||||
|
||||
radius = 40;
|
||||
height = 100;
|
||||
@@ -9,8 +10,8 @@ thickness_scale = 1;
|
||||
step = 4;
|
||||
|
||||
module perlin_noise_cylinder(radius, height, thickness_scale, step) {
|
||||
size = [PI * radius, height];
|
||||
|
||||
size = [2 * PI * radius, height];
|
||||
|
||||
surface_inside = [
|
||||
for(y = [0:step:size[1]])
|
||||
concat(
|
||||
@@ -21,11 +22,16 @@ module perlin_noise_cylinder(radius, height, thickness_scale, step) {
|
||||
[[size[0] / 10, y / 10, 0]]
|
||||
)
|
||||
];
|
||||
|
||||
|
||||
seed = rand(0, 256);
|
||||
surface_outside = [
|
||||
for(ri = [0:len(surface_inside) - 1])
|
||||
let(ns = pnoise2s(surface_inside[ri], seed))
|
||||
let(
|
||||
row = surface_inside[ri],
|
||||
leng_row = len(row),
|
||||
row_for_noise = concat(slice(row, 0, leng_row - 1), [[0, row[leng_row - 1][1], 0]]),
|
||||
ns = pnoise2s(row_for_noise, seed)
|
||||
)
|
||||
[
|
||||
for(ci = [0:len(ns) - 1])
|
||||
[surface_inside[ri][ci][0], surface_inside[ri][ci][1], thickness_scale * (ns[ci] + 1)]
|
||||
@@ -37,21 +43,17 @@ module perlin_noise_cylinder(radius, height, thickness_scale, step) {
|
||||
t_surface_outside = [
|
||||
for(row = surface_outside)
|
||||
[for(p = row)
|
||||
ptf_bend(size_div_10, p, radius_div_10, 180)
|
||||
ptf_bend(size_div_10, p, radius_div_10, 360)
|
||||
]
|
||||
];
|
||||
t_surface_insde = [
|
||||
for(row = surface_inside)
|
||||
[for(p = row)
|
||||
ptf_bend(size_div_10, p, radius_div_10, 180)
|
||||
ptf_bend(size_div_10, p, radius_div_10, 360)
|
||||
]
|
||||
];
|
||||
|
||||
scale(10) {
|
||||
sf_solidify(t_surface_outside, t_surface_insde);
|
||||
mirror([0, 1, 0])
|
||||
sf_solidify(t_surface_outside, t_surface_insde);
|
||||
}
|
||||
sf_solidify(t_surface_outside, t_surface_insde);
|
||||
}
|
||||
|
||||
perlin_noise_cylinder(radius, height, thickness_scale, step);
|
Reference in New Issue
Block a user