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.