[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 : Draw point if you turn mouse               ³
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ *)

    {
         This program modify graph02.pas. In this version are points drawing to
      coordinate system if you turn the mouse. All metods are how in graph02.pas.
      Program make reaction if you have not initialized mouse driver.
    }

    Uses Okor,mys;

    Type Mygraph=Object(kor)
                 Procedure Init;
                 Procedure Coordinate_system;
                 End;

    Procedure Mygraph.Init;
    Begin
    kor.init(0,0,0);
    End;

    Procedure Mygraph.Coordinate_system;
    Var i:integer;
    Begin
    ZmenFp(15);
    PresunXY(-320,0);
    ZmenXY(320,0);
    PresunXY(315,5);
    ZmenXY(320,0);
    ZmenXY(315,-5);
    PresunXY(310,-10);
    Pis('x');

    PresunXY(0,-240);;
    ZmenXY(0,240);
    PresunXY(-5,235);
    ZmenXY(0,240);
    ZmenXY(5,235);
    PresunXY(8,230);
    Pis('y');

    For i:=0 to 32 do Begin
                      PresunXY(-320+20*i,-3);
                      ZmenXY(-320+20*i,3);
                      End;

    For i:=0 to 23 do Begin
                      PresunXY(-3,-240+20*i);
                      ZmenXY(3,-240+20*i);
                      End;

    End;

    Type Point=Object(kor)
               x,y:real;
               ch:char;
               Procedure Init(x1,y1:real; ch1:char);
               Procedure Draw_lines;
               End;

    Procedure Point.Init(x1,y1:real; ch1:char);
    Begin
    x:=x1;
    y:=y1;
    ch:=ch1;
    kor.init(x1,y1,0);
    End;

    Procedure Point.Draw_lines;
    Var i:integer;
        xp,yp:real;
    Begin
    If y>=0 Then Vlavo(180);
    For i:=1 to round(abs(y)/20)-1 do Begin
                                     Pd;
                                     Dopredu(15);
                                     Ph;
                                     Dopredu(5);
                                     End;
    Pd;
    Dopredu(abs(ysur-1));
    Ph;
    Domov;

    If x>0 Then Vlavo(90)
           Else Vpravo(90);

    For i:=1 to round(abs(x)/20)-1 do Begin
                                     Pd;
                                     Dopredu(15);
                                     Ph;
                                     Dopredu(5);
                                     End;
    Pd;
    Dopredu(abs(xsur-1));
    Ph;
    Domov;

    If x>=0 Then if y>=0 Then PresunXY(x+8,y+8)
                         Else PresunXY(x+8,y-8)
            Else if y>=0 Then PresunXY(x-8,y+8)
                         Else PresunXY(x-8,y-8);

    Pis(ch);
        End;

    Var
        Mg:Mygraph;
         P:Point;
         i:integer;
         MouseHere:Boolean;

    Begin
    MouseHere:=InicMys;
    If not MouseHere Then Begin
                          P.init(0,0,'A');
                          P.pis('Problem with mouse driver.');
                          Writeln(^g);
                          CakajKlaves;
                          Halt;
                          End
                     Else Begin
                          Randomize;
                          With Mg do Begin
                                     Init;
                                     Coordinate_system;
                                     End;

           UkazMys;
           With p do Begin
           While Stavmysi<>2 do
              If (stavmysi=1) Then
                If i<26 then Begin
                             SkryMys;
                             Init(MysX-320,240-MysY,chr(65+i));
                             ZmenFp(1+i mod 14);
                             Draw_lines;
                             UkazMys;
                             Inc(i);
                             While stavmysi=1 do;
                             End
                              Else Write(#7);
                     Koniec;
                        End;
                          End;

    End.

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