Witam
Dzisiaj zajmiemy się modułem graph. Nie opisywałem wszystkich proc. i funkcji ponieważ niektóre z nich nigdy w życiu się nie przydają.
UWAGA zmienna r będzie oznaczała promień koła.

Procedury inicjujące i zamykające tryb graficzny

1.DetectGraph(sterownik,tryb:integer);

Wpisuje do zmiennych sterownik i tryb aktualnie sterownik i tryb graficzny ;)
Najczęściej będą to sterownik = 9, tryb = 2.

2.InitGraph(sterownik,tryb,ścierzka);

Inicjuje tryb graficzny o podanym sterowniku, trybie i dostępie do plików BGI, które są niezbędne do uruchomienia grafiki (u mnie to jest c:\tp\bgi).

3.CloseGraph

Wyłącza tryb graficzny.

np.

program grafika1;
uses crt,graph;
var sterownik,tryb:integer;

begin
detectgraph(sterownik,tryb); 
{można też napisać 
steronikk:=9; tryb:=2;}
initgraph(sterownik,tryb,'c:\tp\bgi\);
closegraph;
end.

Procedury:

1.Arc(x,y,alfa,beta,r);

Rysuje łuk okręgu o środku w punkcie x,y promieniu r. Zmienne alfa i beta to kąty wyrażone w stopniach od jakiego, do jakiego ma być rysowany łuk. Odliczanie stopni odbywa się od najbardziej wysuniętego na prawo punktu okręgu. Mam nadzieję, że to zrozumiecie :)

np. arc(320,240,1,90,100); narysuje 0,25 okręgu

2.Bar(x,y,x2,y2); 

Rysuje wypełniony prostokąt od x,y do x2,y2 o ustawionym kolorze i stylu wypełnienia przez setfillstyle.

3.Bar3D(x,y,x2,y2,gsciana);

Rysuje wypełniony prostopadłościan (setfillstyle). Gsciana jest typu boolean i określa czy ma być widoczna górna ściana. (jeśli nie to możesz ustawiając je na sobie)

4.Circle(x,y,x2,y2,r);
Rysuje okrąg o promieniu r.

5.ClearDevice
Czyści ekran w trybie graficznym.

6.ClearViewPort(x,y,x2,y2,obcięcie)
Procedura ta służy do ustawienia rozmiarów ekranu w trybie graficznym, na którym rysujemy. X,y to współrzędne lewego górnego wierzchołka ekranu a x2,y2 prawego dolnego. Obcięcie jest typu boolean (przyjmuje wartości true/false) i określa czy rysowanie ma być ograniczone do bieżącego okna.

7. DrawPoly(liczba-punktow,wspołrzedne-punktow)
Rysuje liczbę... łamanych. Po prostu łączy wszystkie punkty podane w tabeli.
przykład ten zaczerpnąłem z kursu TP z CDA:

...
const wielokąt:array[1..4] of pointtype=((x:100;y:10),(x:600;y:10),(x:350;y:400),(x:100;y:10));

...
begin
...
drawpoly(4,wielokat);
...
end.

8. Elipse(x,y,alfa,beta,xr,yr)
Rysuje łuk elipsy. Zmienne x, y, alfa, beta działają tak jak w Arc. Xr i Yr to promienie (czyli długości od środka elipsy) w poziomie(xr) i w pionie(yr).
Podobnie jak z Arc aby zrozumieć trzeba poeksperymentować.

9.FillElipse(x,y,xr,yr)
Rysuje elipse. Zmienne działają tak jak w Elipse.

10. FillPoly(liczba-punktów, współrzędne-punktów)
Rysuje wypełnione wielokąty. Zmienne działają tak jak w DrawPoly.

11. FloodFill(x,y,kolor-brzegu);
Służy do wypełniania danym kolorem zamkniętych obszarów. X,y to miejsce od kąt ma być wypełniane a kolor-brzegu to kolor za który jest granicą wypełniania (czyli za nim się już nie da). Kolor i rodzaj jakim wypełniamy ustawiamy w SetFillStyle.

12. GraphDefaults
Po użyciu tej procedury zostaną przywrócone początkowe ustawienia parametrów graficznych.

13. Line(x,y,x2,y2);
Rysuje linię od x,y do x2,y2 o kolorze ustawionym w setcolor.

14. LineRel(deltaX,deltaY);
Rysuje linię od punktu w, którym się znajdujemy (np.x,y) do punktu o przesunięciu deltaX i deltaY. Czyli narysuje linię od x,y do x+deltaX i y+deltaY.

15. LineTo(x,y)
Narysuje linię od miejsca, w którym się znajdujemy do punktu x,y.

16. MoveRel(deltaX,deltaY)
Przeniesiemy się z miejsca, w którym się znajdujemy do punktu o przesunięciu deltaX i deltaY.

17. MoveTo(x,y)
Przeniesiemy się do punktu x,y.

18.OutText('text');
Narysuje na ekranie tekst podany w ' i '.

19. OutTextXY(x,y,'text')
To samo co wyżej tylko, że w punkcie x,y.

20. PieSlice(x,y,alfa,beta,r)
Rysuje w x,y wycinek koła o promieniu r. Alfa i beta działają tak samo jak w Arc.

21. PutImage(x,y,zmienna_dynamiczna_z_obrazem,operacja);
Narysuje na ekranie obrazek zachowany w zmiennej dynamicznej ale wcześniej zastosuje na nim operacje (CopyPut-tylko skopiuje obrazek, OrPut, XorPut, AndPut, NotPut). x,y to lewy, górny róg obrazka.

22. PutPixel(x,y,c)
Hehehe. Postawi na ekranie (oczywiście w x,y) pixel o kolorze c. 

23. Rectangle(x,y,x2,y2)
Rysuje na ekranie prostokąt o lewym, górnym narożniku x,y i prawym, dolnym x2,y2.

cdn.

Heniu