mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-14 02:34:12 +02:00
simplify param
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
include <line2d.scad>;
|
||||
include <polyline2d.scad>;
|
||||
include <turtle/turtle2d.scad>;
|
||||
include <turtle/t2d.scad>;
|
||||
|
||||
side_leng = 100;
|
||||
@@ -14,7 +13,7 @@ sierpinski_triangle(
|
||||
|
||||
module triangle(t, side_leng, thickness) {
|
||||
t2 = t2d(t, "forward", leng = side_leng);
|
||||
t3 = t2d(t2, cmds = [
|
||||
t3 = t2d(t2, [
|
||||
["turn", 120],
|
||||
["forward", side_leng]
|
||||
]);
|
||||
@@ -33,7 +32,7 @@ module sierpinski_triangle(t, side_leng, min_leng, thickness) {
|
||||
if(side_leng >= min_leng) {
|
||||
half_leng = side_leng / 2;
|
||||
t2 = t2d(t, "forward", leng = half_leng);
|
||||
t3 = t2d(t, cmds = [
|
||||
t3 = t2d(t, [
|
||||
["turn", 60],
|
||||
["forward", half_leng],
|
||||
["turn", -60]
|
||||
|
@@ -57,6 +57,15 @@ function _t2d_set(t, point, angle, x, y) =
|
||||
!is_undef(y) ? _t2d_set_y(t, y) :
|
||||
assert(false, "no target to set");
|
||||
|
||||
function _t2d_cmd(t, cmd, point, angle, x, y, leng) =
|
||||
cmd == "set" ? _t2d_set(t, point, angle, x, y) :
|
||||
cmd == "forward" ? _t2d_forward(t, leng) :
|
||||
cmd == "turn" ? _t2d_turn(t, angle) :
|
||||
cmd == "point" ? _t2d_get_pt(t) :
|
||||
cmd == "angle" ? _t2d_get_angle(t) :
|
||||
cmd == "x" ? _t2d_get_x(t) :
|
||||
cmd == "y" ? _t2d_get_y(t) : assert(false, "unknown command");
|
||||
|
||||
function _t2d_cmds(t, cmds, i = 0) =
|
||||
i == len(cmds) ? t :
|
||||
let(
|
||||
@@ -65,14 +74,7 @@ function _t2d_cmds(t, cmds, i = 0) =
|
||||
)
|
||||
_t2d_cmds(_t2d_cmdline(cmd, t, arg), cmds, i + 1);
|
||||
|
||||
function t2d(t, cmd, cmds, point, angle, x, y, leng) =
|
||||
function t2d(t, cmd, point, angle, x, y, leng) =
|
||||
is_undef(t) ? _t2d_turtle(point, angle) :
|
||||
cmd == "set" ? _t2d_set(t, point, angle, x, y) :
|
||||
cmd == "forward" ? _t2d_forward(t, leng) :
|
||||
cmd == "turn" ? _t2d_turn(t, angle) :
|
||||
cmd == "point" ? _t2d_get_pt(t) :
|
||||
cmd == "angle" ? _t2d_get_angle(t) :
|
||||
cmd == "x" ? _t2d_get_x(t) :
|
||||
cmd == "y" ? _t2d_get_y(t) :
|
||||
!is_undef(cmds) ? _t2d_cmds(t, cmds) :
|
||||
assert(false, "unknown command");
|
||||
is_string(cmd) ? _t2d_cmd(t, cmd, point, angle, x, y, leng) :
|
||||
_t2d_cmds(t, cmd) ;
|
Reference in New Issue
Block a user