mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-06 06:47:46 +02:00
refactor
This commit is contained in:
@@ -36,17 +36,11 @@ module regular_polygon_to_polygon_wall(radius, length, angle, thickness, sides)
|
|||||||
}
|
}
|
||||||
|
|
||||||
module regular_polygon_maze(radius, cblocks, levels, thickness = 1, sides) {
|
module regular_polygon_maze(radius, cblocks, levels, thickness = 1, sides) {
|
||||||
function replace(v1, v2, vs) =
|
|
||||||
[for(i = [0:len(vs) - 1]) vs[i] == v1 ? v2 : vs[i]];
|
|
||||||
|
|
||||||
arc_angle = 360 / cblocks;
|
arc_angle = 360 / cblocks;
|
||||||
r = radius / (levels + 1);
|
r = radius / (levels + 1);
|
||||||
|
|
||||||
maze = go_maze(1, 1,
|
maze = go_maze(1, 1,
|
||||||
replace(
|
starting_maze(cblocks, levels),
|
||||||
[levels, cblocks - 1, 0, UPPER_RIGHT_WALL], [levels, cblocks - 1, 0, UPPER_WALL],
|
|
||||||
starting_maze(cblocks, levels)
|
|
||||||
),
|
|
||||||
cblocks, levels, y_circular = true
|
cblocks, levels, y_circular = true
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -58,14 +52,13 @@ module regular_polygon_maze(radius, cblocks, levels, thickness = 1, sides) {
|
|||||||
|
|
||||||
|
|
||||||
for(i = [0:len(maze) - 1]) {
|
for(i = [0:len(maze) - 1]) {
|
||||||
cord = maze[i];
|
block = maze[i];
|
||||||
cr = cord[0];
|
cr = block[0];
|
||||||
cc = cord[1] - 1;
|
cc = block[1] - 1;
|
||||||
v = cord[2];
|
|
||||||
|
|
||||||
angle = cc * arc_angle;
|
angle = cc * arc_angle;
|
||||||
|
|
||||||
if(v == 1 || v == 3) {
|
if(upper_wall(block) || upper_right_wall(block)) {
|
||||||
regular_polygon_to_polygon_wall(r * cr, r, cc * arc_angle , thickness, sides);
|
regular_polygon_to_polygon_wall(r * cr, r, cc * arc_angle , thickness, sides);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -77,12 +70,11 @@ module regular_polygon_maze(radius, cblocks, levels, thickness = 1, sides) {
|
|||||||
|
|
||||||
// road to the next level
|
// road to the next level
|
||||||
for(i = [0:len(maze) - 1]) {
|
for(i = [0:len(maze) - 1]) {
|
||||||
cord = maze[i];
|
block = maze[i];
|
||||||
cr = cord[0];
|
cr = block[0];
|
||||||
cc = cord[1] - 1;
|
cc = block[1] - 1;
|
||||||
v = cord[2];
|
|
||||||
|
|
||||||
if(v == 0 || v == 1) {
|
if(no_wall(block) || upper_wall(block)) {
|
||||||
ring_regular_polygon_sector(r * (cr + 1), (cc + 0.5) * arc_angle , thickness, r / 3 , sides);
|
ring_regular_polygon_sector(r * (cr + 1), (cc + 0.5) * arc_angle , thickness, r / 3 , sides);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user