peano.cxx
2.16 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
peano(l):={
si (l<10) alors avance(l);
sinon
peano(l/3);
tourne_droite;peano(l/3);
tourne_gauche;peano(l/3);
tourne_gauche;peano(l/3);
tourne_gauche;peano(l/3);
tourne_droite;peano(l/3);
tourne_droite;peano(l/3);
tourne_droite;peano(l/3);
tourne_gauche;peano(l/3);
fsi
};
peanob(l,s):={
si (l<10) alors avance(l);
sinon
tourne_gauche(-90*s);peanob(l/2,-s);
tourne_droite(-90*s);peanob(l/2,s);
peanob(l/2,s);tourne_droite(-90*s);
peanob(l/2,-s);tourne_gauche(-90*s);
fsi
};
peano1(l,s):={
si (s==-1) alors
tourne_droite(45);saute(-l*sqrt(2)/6);rond(round(l*sqrt(2)/6),90);
sinon
si (s==1) alors
tourne_gauche(135);saute(-l*sqrt(2)/6);rond(round(-l*sqrt(2)/6),90);
sinon
tourne_gauche(45);
saute(l*sqrt(2)/6);
fsi;
fsi;
rond(round(l*sqrt(2)/6),90);
rond(round(-l*sqrt(2)/6),270);
rond(round(l*sqrt(2)/6),270);
rond(round(-l*sqrt(2)/6),90);
saute(l*sqrt(2)/6);
tourne_droite(45);
};
peanot(l,s):={
si (l<31) alors
peano1(l,s);
sinon
si (s==-1) alors
peanot(l/3,-1);
sinon
si (s==1) alors
peanot(l/3,1);
sinon
peanot(l/3,0);
fsi;
fsi;
tourne_droite;peanot(l/3,1);
tourne_gauche;peanot(l/3,-1);
tourne_gauche;peanot(l/3,-1);
tourne_gauche;peanot(l/3,-1);
tourne_droite;peanot(l/3,1);
tourne_droite;peanot(l/3,1);
tourne_droite;peanot(l/3,1);
tourne_gauche;peanot(l/3,-1);
fsi;
};
peano2(l,s):={
si (s==-1) alors
rond(round(l/6),90);
sinon
si (s==1) alors
rond(round(-l/6),90);
fsi;
fsi;
rond(round(l/6),90);
rond(round(-l/6),270);
rond(round(l/6),270);
rond(round(-l/6),90);
};
peanot2(l,s,n):={
si (n==1) alors
peano2(l,s);
sinon
si (s==-1) alors
peanot2(l/3,-1,n-1);
sinon
si (s==1) alors
peanot2(l/3,1,n-1);
sinon
peanot2(l/3,0,n-1);
fsi;
fsi;
peanot2(l/3,1,n-1);
peanot2(l/3,-1,n-1);
peanot2(l/3,-1,n-1);
peanot2(l/3,-1,n-1);
peanot2(l/3,1,n-1);
peanot2(l/3,1,n-1);
peanot2(l/3,1,n-1);
peanot2(l/3,-1,n-1);
fsi;
};
peanot1(l,n):={
tourne_gauche 45;
saute(l/2/3^n);
peanot2(l,s,n);
saute(l/2/3^n);
tourne_droite 45;
};