Add fixed point move routine and sample

This commit is contained in:
David Schmenk committed 2025-12-21 17:27:53 -08:00
1 parent d6a51f4656
commit e3550d4a83
7 files changed
+46

No files matched your search

Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
View File
@@ -6,6 +6,7 @@ import turtle
predef turn(angle)#0
predef moveTo(x, y)#0
predef move(dist)#0
predef movep4(dist)#0
predef penUp#0
predef penDown#0
end
+12
View File
@@ -137,6 +137,18 @@ export def move(dist)#0
fin
end
export def movep4(distp4)#0
var oldX, oldY
oldX = turtleXp4 >> 4
oldY = turtleYp4 >> 4
turtleXp4 = turtleXp4 + mulcos(distp4, turtleAngle)
turtleYp4 = turtleYp4 + mulsin(distp4, turtleAngle)
if pen
clipLine(turtleXp4 >> 4, turtleYp4 >> 4, oldX, oldY)
fin
end
export def penUp#0
pen = 0
end
+32
View File
@@ -51,4 +51,36 @@ SRC" TURTLE.4TH"
: RESET PENUP 140 80 MOVETO 0 TURNTO PENDOWN ;
1 VARIABLE MAXDEPTH
1 VARIABLE DEPTH
: POW3
1 SWAP 1- ?DUP 0= IF EXIT THEN
0 DO
3 *
LOOP
;
: TRIEDGE
DEPTH @ MAXDEPTH @ = IF
8960 DEPTH @ POW3 / 1 + 1 RSHIFT MOVEP4
ELSE
1 DEPTH +!
RECURSE -60 TURN
RECURSE 120 TURN
RECURSE -60 TURN
RECURSE
-1 DEPTH +!
THEN
;
: SNOWFLAKE MAXDEPTH ! PENUP 0 159 MOVETO 0 TURNTO PENDOWN 1 DEPTH ! TRIEDGE ;
SHOW SPIN RESET SPIRAL RESET ZOOM
0 CLEARTO 3 HGRCOLOR
1 SNOWFLAKE
2 SNOWFLAKE
3 SNOWFLAKE
4 SNOWFLAKE
5 SNOWFLAKE
+1
View File
@@ -9,5 +9,6 @@ LOOKUP TURNTO PLASMA TURNTO
LOOKUP TURN PLASMA TURN
LOOKUP MOVETO PLASMA MOVETO
LOOKUP MOVE PLASMA MOVE
LOOKUP MOVEP4 PLASMA MOVEP4
LOOKUP PENUP PLASMA PENUP
LOOKUP PENDOWN PLASMA PENDOWN