Repository navigation
Expand file tree
/
Copy pathexamples.tex
More file actions
162 lines (144 loc) · 2.75 KB
/
Copy pathexamples.tex
File metadata and controls
162 lines (144 loc) · 2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
\load[turtle]
%\pdfcompresslevel=0
%\pdfobjcompresslevel=0
\parindent=0pt
\def\repeat#1 #2{\fornum 1..#1 \do{#2}}
\def\turtleline #1{\line{\foreach #1\do ##1,{\bturtle ##1 \eturtle \hfil}}}
Basic sequence of turtle movements
\vskip 110pt
\bturtle
\forward 100
\right 90
\forward 150
\left 45
\back 100
\left 45
\eturtle
\bigskip
Squares and rectangles
\def\squarepiece #1 {%
\forward #1
\right 90
}
\def\square #1 {%
\repeat 4 {%
\squarepiece #1
}}
\def\rectangle #1 #2 {%
\repeat 2 {%
\squarepiece #1
\squarepiece #2
}}
\vskip 110pt
\turtleline{\square 100, \rectangle 100 50,}
\bigskip
Some things
\def\thing {%
\forward 20
\right 90
\forward 20
\right 90
\forward 10
\right 90
\forward 10
\right 90
\forward 20
\right 90
\forward 5
\right 90
\forward 5
\right 90
\forward 10
}
\def\thingone {%
\repeat 4
\thing
}
\def\thingtwo {%
\repeat 9 {%
\thing
\right 10
\forward 10
}}
\def\thingthree {%
\repeat 8 {%
\thing
\left 45
\forward 20
}}
\vskip 50pt
\turtleline{\thing, \thingone, \thingtwo, \thingthree,}
\bigskip
Circles and arcs
\def\arcr #1 #2 {%
\repeat #2 {%
\forward #1
\right 1
}}
\def\arcl #1 #2 {%
\repeat #2 {%
\forward #1
\left 1
}}
\def\circles {%
\repeat 9 {%
\arcr 0.5 360
\right 40
}}
\def\petal #1 {%
\repeat 2 {%
\arcr #1 60
\right 120
}}
\def\flower #1 {%
\repeat 6 {%
\petal #1
\right 60
}}
\def\ray #1 {%
\repeat 2 {%
\arcl #1 90
\arcr #1 90
}}
\def\sun #1 {%
\repeat 9 {%
\ray #1
\right 160
}}
\vskip 70pt
\turtleline{\circles, \flower 1, \sun 0.3,}
\vskip 70pt
\bigskip
Some poligons
\def\polycommon #1 #2 #3 #4 #5 {%
\tmpnum=1
\edef\side{\expr{#1}}%
\edef\angle{\expr{#2}}%
\edef\n{\expr[0]{#5}}%
\def\polyiter {%
\forward {\side}
\right {\angle}
\ifnum\tmpnum<\n
\advance\tmpnum by1
\edef\side{\expr{\side + #3}}%
\edef\angle{\expr{\angle + #4}}%
\ea\polyiter
\fi
}%
\polyiter
}
\def\poly #1 #2 #3 {\polycommon #1 #2 0 0 #3 }
\vskip 70pt
\turtleline{\poly 50 72 5, \poly 30 60 6, \poly 50 144 5, \poly 70 135 8, \poly 60 108 10,}
\vfill\eject
Outward pirals
\def\polyspi #1 #2 #3 {\polycommon #1 #2 #1 0 #3 }
\vskip 50pt
\turtleline{\polyspi 1.5 95 50, \polyspi 2 90 50, \polyspi 4 120 30, \polyspi 2 117 50,}
\bigskip
\vskip 50pt
Inward spirals
\def\inspi #1 #2 #3 #4 {\polycommon #1 #2 0 #3 #4 }
\vskip 50pt
\turtleline{\inspi 4 0 7 540, \inspi 10 40 30 72, \inspi 10 2 20 90, \inspi 7 1 5 720,}
\bye