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-03-23 21:00:42 +08:00
parent 5d39610f11
commit 8326dcc38f
2 changed files with 11 additions and 13 deletions

View File

@@ -19,8 +19,8 @@ function _neighbors(fcord, seed, grid_w) =
function _nz_worley2_classic(p, nbrs, dist) = function _nz_worley2_classic(p, nbrs, dist) =
let( let(
cells = [ cells = [
for(nbr = nbrs) for(nbr = nbrs)
[nbr[0], nbr[1], _distance(nbr, p, dist)] [each nbr, _distance(nbr, p, dist)]
], ],
sorted = sort(cells, by = "idx", idx = 2) sorted = sort(cells, by = "idx", idx = 2)
) )
@@ -30,18 +30,17 @@ function _nz_worley2_border(p, nbrs) =
let( let(
cells = [ cells = [
for(nbr = nbrs) for(nbr = nbrs)
[nbr[0], nbr[1], norm(nbr - p)] [each nbr, norm(nbr - p)]
], ],
sorted = sort(cells, by = "z"), sorted = sort(cells, by = "z"),
a = [sorted[0][0], sorted[0][1]], a = [sorted[0].x, sorted[0].y],
b = [sorted[1][0], sorted[1][1]], m = (a + [sorted[1].x, sorted[1].y]) / 2
m = (a + b) / 2
) )
[a[0], a[1], (p - m) * (a - m)]; [a[0], a[1], (p - m) * (a - m)];
function _nz_worley2(p, seed, grid_w, dist) = function _nz_worley2(p, seed, grid_w, dist) =
let( let(
fcord = [floor(p[0] / grid_w), floor(p[1] / grid_w)], fcord = [floor(p.x / grid_w), floor(p.y / grid_w)],
nbrs = _neighbors(fcord, seed, grid_w) nbrs = _neighbors(fcord, seed, grid_w)
) )
dist == "border" ? _nz_worley2_border(p, nbrs) : dist == "border" ? _nz_worley2_border(p, nbrs) :

View File

@@ -22,7 +22,7 @@ function _nz_worley3_classic(p, nbrs, dist) =
let( let(
cells = [ cells = [
for(nbr = nbrs) for(nbr = nbrs)
[nbr[0], nbr[1], nbr[2], _distance(nbr, p, dist)] [each nbr, _distance(nbr, p, dist)]
], ],
sorted = sort(cells, by = "idx", idx = 3) sorted = sort(cells, by = "idx", idx = 3)
) )
@@ -32,18 +32,17 @@ function _nz_worley3_border(p, nbrs) =
let( let(
cells = [ cells = [
for(nbr = nbrs) for(nbr = nbrs)
[nbr[0], nbr[1], nbr[2], norm(nbr - p)] [each nbr, norm(nbr - p)]
], ],
sorted = sort(cells, by = "idx", idx = 3), sorted = sort(cells, by = "idx", idx = 3),
a = [sorted[0][0], sorted[0][1], sorted[0][2]], a = [sorted[0].x, sorted[0].y, sorted[0].z],
b = [sorted[1][0], sorted[1][1], sorted[1][2]], m = (a + [sorted[1].x, sorted[1].y, sorted[1].z]) / 2
m = (a + b) / 2
) )
[a[0], a[1], a[2], (p - m) * (a - m)]; [a[0], a[1], a[2], (p - m) * (a - m)];
function _nz_worley3(p, seed, grid_w, dist) = function _nz_worley3(p, seed, grid_w, dist) =
let( let(
fcord = [floor(p[0] / grid_w), floor(p[1] / grid_w), floor(p[2] / grid_w)], fcord = [floor(p.x / grid_w), floor(p.y / grid_w), floor(p.z / grid_w)],
nbrs = _neighbors(fcord, seed, grid_w) nbrs = _neighbors(fcord, seed, grid_w)
) )
dist == "border" ? _nz_worley3_border(p, nbrs) : dist == "border" ? _nz_worley3_border(p, nbrs) :