1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-01-18 22:58:04 +01:00
dotSCAD/docs/lib3x-vrn2_cells_space.md
2021-02-24 21:09:54 +08:00

1.5 KiB

vrn2_cells_space

Create cell shapes of Voronoi in the first quadrant. You specify a space and a grid width. The center of each cell will be distributed in each grid randomly.

Since: 2.4

Parameters

  • size : 2 value array [x, y], rectangle with dimensions x and y.
  • grid_w : The width of each grid. If it can split size equally, the voronoi diagram is seamless at the junction of top-bottom and left-right.
  • seed : Seed value for random number generator for repeatable results.

Examples

use <hull_polyline2d.scad>;
use <voronoi/vrn2_cells_space.scad>;

size = [20, 20];
grid_w = 5;
cells = vrn2_cells_space(size, grid_w);

for(cell = cells) {
    cell_pt = cell[0];
    cell_poly = cell[1];

    linear_extrude(1)
        hull_polyline2d(concat(cell_poly, [cell_poly[0]]), width = 1);
    
    color(rands(0, 1, 3))
    translate(cell_pt)    
    linear_extrude(2, scale = 0.8)
    translate(-cell_pt)    
        polygon(cell_poly);  
}

vrn2_cells_space

use <hull_polyline3d.scad>;
use <ptf/ptf_torus.scad>;
use <voronoi/vrn2_cells_space.scad>;

size = [40, 80];
grid_w = 5;
cells = vrn2_cells_space(size, grid_w);

$fn = 4;

for(cell = cells) {
    cell_poly = [for(p = cell[1]) ptf_torus(size, p, [10, 5], [360, 360])];

    hull_polyline3d(cell_poly, thickness = 1);
}

vrn2_cells_space