[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 : Line in direction version                  ³
       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ *)

    {
        This program draw the Line in direction version. In this version do not
     exist line, wich can be not writed how function. If a=0 (line direction)
     then it is line paraller with x-coordination. This program can not draw
     (the direction version) the line paraller with y-coordination. This know
     graph05.pas. This version will be if a come to infinity.
         How work this program ? Active coordinate system. Then init the
     parameters for function relation : y=a*x+b (or y=k*x+q)

     If a=0 and b=0  then line = x-coordination
     If a=0 and b<>0 then line is paraller with x-coordination
     If a<>0 and b=0 then point [0,0] is in line
     If a<>0 and b<>0 then line have not [0,0]

     IF b=0 or b<>0 is not a problem and don't make some problems.
     If a=0 then it is so problem, because for extreme points (y=-240, y=240)
     in relation :    240 + b    (and for a=0 it is infinity)
                    - -------
                         a

     If a>0 then the line is increasive
     If a<0 then the line is decreasive

     b is just the move of line : b>0 up
                                  b<0 down

      If sometimes is message Division by zero - it is problem with relation :
                 -50+random(100)
                 ---------------
                 -50+random(100)

     If random=50 in denominator then -50+50=0 and this make this message.
    }

    Uses Okor;

    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 Analytical_line=Object(kor)
                         a,b:real;
                         Procedure Init(a1,b1:real);
                         Procedure Draw_line;
                         End;

    Procedure Analytical_line.Init;
    Begin
    a:=a1;
    b:=b1;
    If a<>0 Then kor.Init( (-240-b1)/a1,-240,0)
            Else kor.Init(-320,b1,0);
    End;

    Procedure Analytical_line.Draw_line;
    Begin
    If a<>0 Then ZmenXY((240-b)/a,240)
            Else ZmenXY(320,b);
    End;

    Var Mg:MyGraph;
        Al:Analytical_line;
        I:integer;
    Begin

    With Mg do Begin
               Init;
               Coordinate_system;
               End;
    Randomize;
    With Al Do
               For i:=1 to 10 do Begin
                                 init((-50+random(100))/(-50+random(100)),
                                       -100+random(200));
                                 ZmenFp(1+ i mod 14);
                                 Draw_line;
               CakajKlaves;
               Koniec;
               End;

    End.

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