1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-01-17 14:18:13 +01:00
dotSCAD/docs/lib3x-footprints2.md
2022-02-27 22:32:57 +08:00

1.1 KiB

footprints2

Drive a turtle with ["forward", length] or ["turn", angle]. This function is intended to use a turtle to imitate freehand drawing.

Since: 2.4

Parameters

  • cmds : A list of ["forward", length]s and ["turn", angle]s.
  • start : Set the start point of the turtle. Default to [0, 0].

Examples

use <polyline_join.scad>;
use <turtle/footprints2.scad>;

function arc_cmds(radius, angle, steps) = 
	let(
		fa = angle / steps,
		ta = fa / 2,
		leng = sin(ta) * radius * 2
	)
    [
        ["turn", ta],
        each [
			for(i = [0:steps - 2])
			each [["forward", leng], ["turn", fa]]
		],
        ["forward", leng], 
        ["turn", ta]
    ];
	
poly = footprints2(
    [
        ["forward", 10],
	    ["turn", 90],
		["forward", 10],
        each arc_cmds(5, 180, 12),
        ["turn", -90],
        ["forward", 10],
        ["turn", 90],
        ["forward", 10],
        ["turn", 90],
        ["forward", 10]
    ]
);

polyline_join(poly)
    circle(.5);

footprints2