diff --git a/examples/maze/senbon_torii.scad b/examples/maze/senbon_torii.scad index 149c35fe..64863bca 100644 --- a/examples/maze/senbon_torii.scad +++ b/examples/maze/senbon_torii.scad @@ -3,27 +3,26 @@ use ; module senbon_torii(rows, columns, start, width, height) { line = mz_hamiltonian(rows, columns, start); leng = len(line); + min_h = 0.1; // first torii fst = line[0]; snd = line[1]; - translate(fst) + translate([fst[0], fst[1], min_h]) rotate([90, 0, atan2(snd[0] - fst[0], snd[1] - fst[1])]) - translate([0, .175]) children(0); module middle_torii(i) { p1 = line[i]; p2 = line[i + 1]; md = (p1 + p2) / 2; - h = i * height + 0.1; + h = i * height + min_h; a1 = atan2(p2[0] - p1[0], p2[1] - p1[1]); - translate([md[0], md[1], h]) + translate([md[0], md[1], h + height / 2]) rotate([90, 0, a1]) - translate([0, .1]) children(0); // road @@ -33,7 +32,7 @@ module senbon_torii(rows, columns, start, width, height) { square(width, center = true); translate(p2) - linear_extrude((i + 1) * height + 0.1) + linear_extrude((i + 1) * height + min_h) square(width, center = true); } } @@ -50,13 +49,12 @@ module senbon_torii(rows, columns, start, width, height) { p0 = line[i - 1]; p1 = line[i]; p2 = line[i + 1]; - h = i * height + 0.1; + h = i * height + min_h; a1 = atan2(p2[0] - p1[0], p2[1] - p1[1]); a2 = atan2(p1[0] - p0[0], p1[1] - p0[1]); - translate([p1[0], p1[1], h - width * 0.233333]) - rotate([90, 0, a1 + (a1 - a2) / 2]) - translate([0, .2]) + translate([p1[0], p1[1], h]) + rotate([90, 0, a1 + (a1 - a2) / 2]) children(0); } @@ -65,28 +63,42 @@ module senbon_torii(rows, columns, start, width, height) { pre_lst = line[leng - 2]; la = atan2(lst[0] - pre_lst[0], lst[1] - pre_lst[1]); - translate([lst[0], lst[1], (leng - 1) * height]) + translate([lst[0], lst[1], (leng - 1) * height + min_h]) rotate([90, 0, la]) - translate([0, .175]) children(1); } module torii_symbol() { - linear_extrude(.1, center = true) - translate([-0.025, 0.025]) - text("⛩", font = "Segoe UI Emoji", size = 0.5 * 0.7, halign = "center"); + linear_extrude(.1, center = true) + scale(1.25) { + translate([-0.025, 0.10]) + text("⛩", font = "Segoe UI Emoji", size = 0.5 * 0.7, halign = "center"); + + translate([0, 0.3715]) + difference() { + square([0.35, 0.075], center = true); + square([0.35 / 2, 0.075 / 2], center = true); + } + } } module top_symbol() { - translate([-0.005, .05]) - linear_extrude(.3, center = true) - scale([0.9, 1.5]) - text("🏔", font = "Segoe UI Emoji", size = 0.45 * 0.7, halign = "center"); + translate([-0.01295, .13]) + { + linear_extrude(.2, center = true) + scale([0.975, 1.5]) + hull() + text("🏔", font = "Segoe UI Emoji", size = 0.45 * 0.7, halign = "center"); + + scale([0.975, 1.75]) + linear_extrude(.25, center = true) + text("🏔", font = "Segoe UI Emoji", size = 0.45 * 0.7, halign = "center"); + } } senbon_torii( rows = 2, - columns = 3, + columns = 2, start = [0, 0], width = .5, height = .05