1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-14 10:44:48 +02:00
This commit is contained in:
Justin Lin
2020-02-16 16:25:31 +08:00
parent 1fd45af2fa
commit be7f736f95

View File

@@ -1,6 +1,7 @@
use <line2d.scad>;
use <hollow_out.scad>;
use <square_maze.scad>;
use <experimental/mz_blocks.scad>;
use <experimental/mz_walls.scad>;
// only for creating a small maze
@@ -36,13 +37,28 @@ module regular_polygon_to_polygon_wall(radius, length, angle, thickness, sides)
}
module regular_polygon_maze(radius, cblocks, levels, thickness = 1, sides) {
// NO_WALL = 0;
// UPPER_WALL = 1;
// RIGHT_WALL = 2;
// UPPER_RIGHT_WALL = 3;
function no_wall(block) = get_wall_type(block) == 0;
function upper_wall(block) = get_wall_type(block) == 1;
function right_wall(block) = get_wall_type(block) == 2;
function upper_right_wall(block) = get_wall_type(block) == 3;
function block(x, y, wall_type, visited) = [x, y, wall_type, visited];
function get_x(block) = block[0];
function get_y(block) = block[1];
function get_wall_type(block) = block[2];
arc_angle = 360 / cblocks;
r = radius / (levels + 1);
maze = go_maze(1, 1,
starting_maze(cblocks, levels),
cblocks, levels, y_circular = true
);
maze = mz_blocks(
[1, 1],
cblocks, levels, y_circular = true
);
difference() {
render() union() {