GRAFIKA TURBO PASCALA

           

            Moduł  graph  zawiera obszerną biblioteką procedur graficznych. Wykonanie programu odwołującego się do modułu graph wymaga wystąpienia w środowisku  tego programu zawierającego sterownik graficzny odpowiadający użytej karcie graficznej oraz pliku zawierającego  definicje czcionek kreskowych. Załadowanie sterownika do pamięci operacyjnej wywołuje procedura Initgraph. Jeśli procedura jest wywołana z pierwszym argumentem detect, to rozpoznanie środowiska graficznego będzie automatyczne. optymalny dobór tych numerów zapewnia procedura DetectGraph. Po wykonaniu procedury Initgraph system znajduje się w trybie graficznym. Powrót do trybu tekstowego zapewnia procedura CloseGraph

 

INICJOWANIE TRYBU GRAFICZNEGO

 

program grafika;

uses graph;

var ster,tryb:integer;

begin

ster:=detect;

initgraph(ster,tryb,'c:\tp\bgi');  {zainicjowanie trybu graficznego z automatycznym wykryciem sterowników i trybów; wpisujemy ścieżkę dostępu do katalogu bgi}

readln;

closegraph; {zakończenie trybu graficznego}

end.

 

Podstawowe odwołania do elementów grafiki  TP    kliknij tutaj

 

PROGRAM Kwadraty_i_prostopadlosciany;

USES graph;

VAR gd, gm:integer;

BEGIN

 gd:=Detect;

 InitGraph(gd,gm,'d:\TP\bgi');

  Rectangle(100,100,300,200);

  Bar(100,300,300,400);

  Bar3D(350,100,550,200,25,TopOn);

  Bar3D(350,300,550,400,40,TopOff);

readln;

CloseGraph

END.

 

 

 

 

PROGRAM Kwadraty_i_prostopadlosciany;

USES graph;

VAR gd, gm:integer;

BEGIN

 gd:=Detect;

 InitGraph(gd,gm,'d:\TP\bgi');

  Rectangle(100,100,300,200);

  Bar(100,300,300,400);

  Bar3D(350,100,550,200,25,TopOn);

  Bar3D(350,300,550,400,40,TopOff);

readln;

CloseGraph

END.

 

 

program balwan;

 uses crt,graph;

  var ster,tryb : integer;

 procedure trybw;

 {var ster,tryb : integer;}

 begin

     ster:=detect;

     Initgraph(ster,tryb,'c:\tp\bgi');

  end;

 

program prostokat_kolorowy;

{Program rysujący prostokąt w miejscu, w którym chce tego użytkownik}

uses graph,crt;

var ster,tryb,x1,y1,x,y:integer;

    kolor:integer;

begin

     clrscr;

     writeln ('Podaj współrzędne lewego górnego wierzchołka prostokąta');

     Readln (x,y);

     Writeln ('Podaj współrzędne prawego dolnego wierzchołka prostokąta');

     readln (x1,y1);

     writeln ('Wybierz jeden kolor (w tym kolorze będzie prostokąt)');

     Writeln ('1 -biały 2-niebieski 3-czerwony 4-zielony');

     Writeln ('5-biaty 6-brązowy');

     Readln (color);

     Steer: =detect;

     Initgraph (ster, tryb,'d:\tp\bgi');

     Case (color) of

     1:setcolor (white);

     2:setcolor(blue);

     3:setcolor(red);

     4:setcolor(green);

     5:setcolor(yellow);

     6:setcolor(brown);

     end;

     rectangle (x,y,x1,y1);   {prostokĄt,1 i 2 wartość to współrzędne x i y lewego górnego wierzchołka prostokątna}

     {3 i 4 wartości to współrzędne x i y prawego dolnego wierzchołka}

     readln;

     CloseGraph;

end.

 

 

program napis;

{Program wyświetlający tekst w różnych miejscach ekranu}

uses graph,crt;

var ster,tryb,x,y:integer;

begin

     randomize;

     ster:=detect;

     initgraph(ster,tryb,'d:\tp\bgi');

     repeat

     x:=random(500);

     y:=random(300);

     setcolor(random(15));

     outtextxy (x,y,'Witam'); {wyświetlenie tekstu Witam w punkcie o współrzędnych. x i y}

     delay(2000);

     setcolor (black);

     outtextxy (x,y,'Witam');

     until keypressed;     {dopóki nie naciśnięty dowolny klawisz}

     closegraph;

end.

program linie;

uses graph;

var ster,tryb:integer;

begin

     ster:=detect;

     InitGraph(ster,tryb,'d:\tp\bgi');

     line (100,100,150,100);{linia 1 i 2 lewy górny wierzch.,3 i 4 prawy dolny wierzch.}

     setcolor (red);

     moveto (100,150); {przesunięcie głównego punktu do współrzędnych. xi y}

     lineto (150,150); {rysuje linie od move to do współrzędnych. tu wpisanych}

     setcolor (yellow);

     linerel (10,0); {rysuje od ostatniego punktu lini  do współrzędnych u podanych}

     readln;

     closegraph;

end.

 

 

program pixel;

uses graph;

var ster,tryb:integer;

begin

     ster:=detect;

     initgraph(ster,tryb,'d:\tp\bgi');

     putpixel (getmaxx div 2,getmaxy div 2,lightgreen);{punkt(x,y,kolor}

     readln;

     closegraph;

end.

PROGRAM ruch; {Punkt przesuwający się lewej strony ekranu na prawą }

 

uses Crt, Graph;

 

const Sciezka_dostepu_do_sterownika: string ='d:\tp\bgi';

 

var  SterGr, ModGr, Blad : Integer;

     X, Y                : Integer; { współrzędne tu }

 

begin

 SterGr := Detect;

 InitGraph(SterGr, ModGr, Sciezka_dostepu_do_sterownika);

 Blad := GraphResult;

 if Blad <> grOk then

   begin

    Writeln('Bladrafiki: ', GraphErrorMsg(Blad));

    Halt(1);

   end;

 

 X:=0;

 Y:=GetMaxY div 2;  { współrzędna y - w połowie ekranu }

 repeat

  PutPixel(X,Y,GetBkColor);       { narysuj punkt w kolorze tła, czyli zgaś go }

  inc(X); if X=GetMaxX then X:=0; { wybierz nowe położenie }

  PutPixel(X,Y,GetMaxColor);      { pokaż punkt w kolorze maksymalnym dla danej

                                    palety - zapal go}

  Delay(10);       { czekaj 10 ms, aby punkt nie przesuwa się zbyt szybko }

 until KeyPressed; { naciśnięcie klawisza kończy ruch punktu }

 

 CloseGraph

end

 

 

 

 

 procedure balwanek;

 begin

  ellipse(320,350,0,359,75,60);

  ellipse(320,245,0,359,60,45);      {kołeczki}

  ellipse(320,170,0,359,40,30);

 

  line(280,140,360,140);             {kapelusz}

  rectangle(295,100,345,140);

 

  circle(305,160,4);

  putpixel(305,160,white);           {oczy}

  circle(335,160,4);

  putpixel(335,160,white);

 

  circle(305,180,1);

  circle(311,184,1);

  circle(317,188,1);                 {usteczka}

  circle(323,188,1);

  circle(329,188,1);

  circle(335,184,1);

  circle(341,180,1);

 

  line(320,165,335,175);

  line(335,175,320,170);            {nos}

  line(320,170,320,165);

 

  circle(320,220,3);

  circle(320,250,3);                {guziki}

  circle(320,320,3);

  circle(320,350,3);

  circle(320,380,3);

 

  line(355,315,420,190);

  line(420,190,410,160);

  line(420,190,425,155);

  line(420,190,435,160);             {miotła}

  line(420,190,445,165);

  line(420,190,450,175);

  line(420,190,455,180);

 

 end;                           

 

 

 begin

  clrscr;

  trybw;

  balwanek;

  readln;

 end.