[Back to TURTLE SWAG index] [Back to Main SWAG index] [Original]
(* ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Programated by Vladimir Zahoransky ³
³ Vladko software ³
³ Contact : zahoran@cezap.ii.fmph.uniba.sk ³
³ Program tema : Spirals ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ *)
{ This program draw spirals. One Nerekusive version and two rekusive
version. In this program have one Constant Distance. This is Distance
between two spiral levels. /-/ (- this is distance) First rekusion
draw spirale from trm the centre.
First rekusion : 1 part - primitive part - Nathing
2 part - Vlavo(60); Dopredu(s); Spirala(s+distance);
60 degrees = 360/6 (Level 6 of spiral)
Dopredu(s); Draw the line.
Rekusive command : Increment s with distance
Secend rekusion : draw rekusion from end to start.
1 part - primitive part - Nathing
2 part - Dopredu(s); Vlavo(60); Spirala_rek1(s-Distance);
60 degrees = 360/6 (Level 6 of spiral)
Dopredu(s); Draw the line.
Rekusive command : Decrement s with distance
This algorithm must before rekusion rotate turtle
about 120 degress left. (I to / position)
Nerekusive version : Just with cycle with repeat until. It is easy to
work this with Ostack.pas. }
Uses Okor,Ostack;
Const Distance=3;
Type Mykor=Object(Kor)
Procedure Spirala_No_rek(s:Real);
Procedure Spirala_rek(s:Real);
Procedure Spirala_rek1(s:Real);
End;
Procedure Mykor.Spirala_No_rek(s:Real);
Var i:integer;
Begin
Repeat
ZmenFp(random(7)+9);
dopredu(s);
Vlavo(60);
s:=s+distance;
Until s>247;
End;
Procedure Mykor.Spirala_rek(s:Real);
Var i:integer;
Begin
If s>247 Then
Else Begin
ZmenFp(random(7)+9);
Vlavo(60);
Dopredu(s);
Spirala_rek(s+Distance);
End;
End;
Procedure Mykor.Spirala_rek1(s:Real);
Var i:integer;
Begin
If s<Distance Then
Else Begin
ZmenFp(random(7)+9);
Dopredu(s);
Vlavo(60);
Spirala_rek1(s-Distance);
End;
End;
Var M:MyKor;
Begin
With M do Begin
Init(-320,230,0);
Pis('Rekusion version of spirala 1.');
PresunXY(0,0);
Spirala_rek(1);
CakajKlaves;
Zmaz1;
Init(-320,230,0);
Pis('Rekusion version of spirala 2.');
PresunXY(0,240);
Vlavo(120);
Spirala_rek1(240);
CakajKlaves;
Zmaz1;
Init(-320,230,0);
Pis('Norekusion version of spirala.');
PresunXY(0,0);
Spirala_No_rek(1);
CakajKlaves;
Koniec;
End;
End.
[Back to TURTLE SWAG index] [Back to Main SWAG index] [Original]