mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-07-31 20:10:36 +02:00
add doc
This commit is contained in:
@@ -200,7 +200,7 @@ See [examples](examples).
|
||||
- [noise/nz_worley2s](https://openhome.cc/eGossip/OpenSCAD/lib2x-nz_worley2s.html)
|
||||
- [noise/nz_worley3](https://openhome.cc/eGossip/OpenSCAD/lib2x-nz_worley3.html)
|
||||
- [noise/nz_worley3s](https://openhome.cc/eGossip/OpenSCAD/lib2x-nz_worley3s.html)
|
||||
- noise/nz_cell
|
||||
- [noise/nz_cell](https://openhome.cc/eGossip/OpenSCAD/lib2x-nz_cell.html)
|
||||
|
||||
## Bugs and Feedback
|
||||
|
||||
|
BIN
docs/images/lib2x-nz_cell-1.JPG
Normal file
BIN
docs/images/lib2x-nz_cell-1.JPG
Normal file
Binary file not shown.
After Width: | Height: | Size: 60 KiB |
BIN
docs/images/lib2x-nz_cell-2.JPG
Normal file
BIN
docs/images/lib2x-nz_cell-2.JPG
Normal file
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
48
docs/lib2x-nz_cell.md
Normal file
48
docs/lib2x-nz_cell.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# nz_cell
|
||||
|
||||
It's an implementation of [Worley noise](https://en.wikipedia.org/wiki/Worley_noise). The feature points can be customized. The function returns `[cell_x, cell_y(, cell_z), noise]` value at the (x, y(,z)) coordinate.
|
||||
|
||||
**Since:** 2.3
|
||||
|
||||
## Parameters
|
||||
points, p, dist
|
||||
- `points` : The feature points, can be 2D or 3D.
|
||||
- `p` : The pixel or voxel coordinate.
|
||||
- `dist` : The noise value of each point is based on its distance to other cells. Different distance strategies make different noises. The `dist` parameter accepts `"euclidean"`, `"manhattan"`, `"chebyshev"` or `"border"`.
|
||||
|
||||
## Examples
|
||||
|
||||
use <noise/nz_cell.scad>;
|
||||
use <golden_spiral.scad>;
|
||||
|
||||
size = [100, 50];
|
||||
half_size = size / 2;
|
||||
|
||||
pts_angles = golden_spiral(
|
||||
from = 3,
|
||||
to = 10,
|
||||
point_distance = 3
|
||||
);
|
||||
|
||||
feature_points = [for(pt_angle = pts_angles) pt_angle[0] + half_size];
|
||||
noised = [
|
||||
for(y = [0:size[1] - 1])
|
||||
for(x = [0:size[0] - 1])
|
||||
[x, y, nz_cell(feature_points, [x, y])]
|
||||
];
|
||||
|
||||
max_dist = max([for(n = noised) n[2]]);
|
||||
|
||||
for(n = noised) {
|
||||
c = abs(n[2] / max_dist);
|
||||
color([c, c, c])
|
||||
linear_extrude(n[2] + 0.1)
|
||||
translate([n[0], n[1]])
|
||||
square(1);
|
||||
}
|
||||
|
||||

|
||||
|
||||
You can build a model such as:
|
||||
|
||||

|
@@ -1,28 +0,0 @@
|
||||
use <noise/nz_cell.scad>;
|
||||
use <golden_spiral.scad>;
|
||||
|
||||
size = [100, 50];
|
||||
half_size = size / 2;
|
||||
|
||||
pts_angles = golden_spiral(
|
||||
from = 3,
|
||||
to = 10,
|
||||
point_distance = 3
|
||||
);
|
||||
|
||||
feature_points = [for(pt_angle = pts_angles) pt_angle[0] + half_size];
|
||||
noised = [
|
||||
for(y = [0:size[1] - 1])
|
||||
for(x = [0:size[0] - 1])
|
||||
[x, y, nz_cell(feature_points, [x, y])]
|
||||
];
|
||||
|
||||
max_dist = max([for(n = noised) n[2]]);
|
||||
|
||||
for(n = noised) {
|
||||
c = abs(n[2] / max_dist);
|
||||
color([c, c, c])
|
||||
linear_extrude(n[2] + 0.1)
|
||||
translate([n[0], n[1]])
|
||||
square(1);
|
||||
}
|
@@ -1,3 +1,13 @@
|
||||
/**
|
||||
* nz_cell.scad
|
||||
*
|
||||
* @copyright Justin Lin, 2020
|
||||
* @license https://opensource.org/licenses/lgpl-3.0.html
|
||||
*
|
||||
* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-nz_cell.html
|
||||
*
|
||||
**/
|
||||
|
||||
use <noise/_impl/_nz_cell_impl.scad>;
|
||||
|
||||
function nz_cell(points, p, dist = "euclidean") =
|
||||
|
Reference in New Issue
Block a user