[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 : Oscilate the turtles !!!                   ³
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ *)

    {
          This is the modification of lotturp03.pas. Here are all
      turtles oscilate. (draw sinus) They are defined in line and
      all turtles have good coefficient. This program modify
      obrys (OutLine) and Dopredu. Dopredu is virtual metod. We
      muth to modify it, because we want to do with coefficient.
    }

    Uses DynKor, DynVelaKor;

    Type PMyTur=^MyTur;
          MyTur=object(Kor)
                   k:real;
                   Constructor Init(x,y,u:real);
                   Procedure Obrys; virtual;
                   Procedure Koef(kk:real);
                   Procedure Dopredu(d:real); virtual;
                 End;

    Constructor MyTur.Init(x,y,u:real);
    Begin
    Kor.init(x,y,u); k:=1;
    End;

    Procedure MyTur.Koef(kk:real);
    Begin
      k:=kk;
    End;

    Procedure MyTur.Dopredu(d:real);
    Begin
    kor.Dopredu(d*k);
    End;

    Procedure MyTur.Obrys;
    Const dt=10; ut=40; ut0=112;
    Var i:integer;
    Begin
    Krok(180-ut0/2,0);

    For i:=1 to 5 do Begin
                     Krok(180-ut0,dt);
                     Krok(180+ut,dt);
                     End;

    End;

    Const n=60;         {how meny turtles}
          nn=640/n;
          r=20;         {speed of effekt}
          nr=200 div r;

    var v:VelaKor;
        i:integer;

    Begin

      With v do Begin
                init;
                For i:=1 to n do Begin
                                 PridajKor(new(PMyTur,init(nn*i-320,0,0)));
                                 PMyTur(k[pk])^.Koef(sin(nn*rad*i));
                                 End;

        PH;
        Ukaz;

        Repeat
        For i:=1 to nr do Dopredu(r);
        For i:=1 to 2*nr do Dopredu(-r);
        For i:=1 to nr do Dopredu(r);
        Until false;

        Koniec;
        End;

    End.

[Back to TURTLE SWAG index] [Back to Main SWAG index] [Original]