1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-11 17:24:20 +02:00
This commit is contained in:
Justin Lin
2022-03-17 16:39:12 +08:00
parent 4a5c576630
commit 637dcf0840
2 changed files with 3 additions and 10 deletions

View File

@@ -21,13 +21,6 @@ function _mz_hamiltonian_top_right(x, y) =
)
[[nx, ny + 2], [nx + 1, ny + 2], [nx + 2, ny + 2], [nx + 2, ny + 1], [nx + 2, ny]];
function _mz_hamiltonian_mask(x, y) =
let(
nx = x * 2,
ny = y * 2
)
[[nx, ny], [nx, ny + 2], [nx + 1, ny + 2], [nx + 2, ny + 2], [nx + 2, ny + 1], [nx + 2, ny]];
function _mz_hamiltonian_corner_value(dots, x, y) =
let(
c1 = has(dots, [x, y], sorted = true) ? 1 : 0,

View File

@@ -31,13 +31,13 @@ function mz_hamiltonian(rows, columns, start = [0, 0], init_cells, seed) =
let(type = mz_square_get(cell, "t"))
each if(type == "TOP_WALL") _mz_hamiltonian_top(cell.x, cell.y) else
if(type == "RIGHT_WALL") _mz_hamiltonian_right(cell.x, cell.y) else
if(type == "TOP_RIGHT_WALL") _mz_hamiltonian_top_right(cell.x, cell.y) else
if(type == "MASK") _mz_hamiltonian_mask(cell.x, cell.y)
if(type == "TOP_RIGHT_WALL" || type == "MASK") _mz_hamiltonian_top_right(cell.x, cell.y)
],
[for(x = [0:c * 2 - 1]) [x, 0]],
[for(y = [0:r * 2 - 1]) [0, y]]
),
dot_pts = dedup(sort(all, by = "vt"))
dot_pts = dedup(sort(all, by = "vt")),
_ = echo(dot_pts)
)
_mz_hamiltonian_travel(dot_pts, start * 2, r * c * 4);