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