maze3d_sphere.scad
1 use <maze/mz_cube.scad> 2 use <maze/mz_cube_initialize.scad> 3 use <maze3d.scad> 4 5 radius = 6; 6 cell_width = 15; 7 road_width = 6; 8 $fn = 4; // [4, 8, 12] 9 10 maze3d_sphere(); 11 12 module maze3d_sphere() { 13 function mask_sphere(radius) = 14 let(range = [-radius: radius - 1]) 15 [ 16 for(z = range) 17 [ 18 for(y = range) 19 [ 20 for(x = range) 21 let(v = [x, y, z]) 22 if(v * v < radius ^ 2) 1 23 else 0 24 ] 25 ] 26 27 ]; 28 29 mz = mz_cube_initialize(mask = mask_sphere(radius)); 30 cells = mz_cube(start = [radius, radius, radius] / 2, init_cells = mz); 31 draw_3dmaze(cells, cell_width, road_width); 32 }