Podstawy programowania Wykład VII PASCAL - grafika; 1
Procedura InitGraph() InitGraph ( var sterownik,tryb:integer; katalog:string ); biblioteka: GRAPH Służy do włączenia trybu graficznego. Możliwe sterowniki (czyli rodzaje karty graficznej) to : 1 = CGA 2 = MCGA 3 = EGA 4 = EGA64 5 = EGAMono 6 = IBM8514 7 = HercMono 8 = ATT400 9 = VGA 10 = PC3270 2
Tryby: 3
Inicjalizacja grafiki Uses GRAPH; {1} Var karta,tryb:integer; Begin karta:=vga; tryb:=vgahi; {2} InitGraph(karta, tryb, 'C:\TP\BGI' ); {3} End. {1} Zadeklarowałem do używania bibliotekę GRAPH ( to w niej właśnie są procedury i funkcje do obsługi grafiki ) {2} Nadałem zmiennym wartości: VGA (9) i VGAHi (2) {3} Uruchomiłem tryb graficzny. 'C:\BP\BGI' - jest to moja ścieżka do plików *.BGI ( konkretnie do pliku EGAVGA.BGI ) możesz mieć inne więc zmień to u siebie) 4
Procedura CloseGraph CloseGraph; biblioteka: GRAPH Wyłącza tryb graficzny i wraca do poprzedniego trybu tekstowego. 5
Procedura ClearDevice ClearDevice; biblioteka: GRAPH Procedura czyści ekran graficzny. Niestety działa bardzo wolno unikamy stosowania w animacjach. 6
Procedura PutPixel PutPixel ( X,Y:integer; Kolor:word ); biblioteka: GRAPH Procedura wyświetla na ekranie jeden punkt o kolorze "Kolor. 7
Procedura PutPixel 8
Procedura SetColor i SetBkColor SetColor ( kolor:word ); biblioteka: GRAPH Zmienia kolor w TRYBIE GRAFICZNYM ( TextColor w graficznym nie działa) jakim zostaną wyświetlane np. kółka, linie czy prostokąty. SetBkColor ( kolor:word ); biblioteka: GRAPH Zmienia kolor tła w TRYBIE GRAFICZNYM ( TextBackGround w graficznym nie działa) 9
Procedura SetLineStyle SetLineStyle (RodzLin, Wzor, Grubosc:word); biblioteka: GRAPH Zmienia rodzaj linii oraz jej grubość używanej przy procedurach Line, Circle, Bar3D itd. 10
Procedura SetLineStyle Rodzaje linii to: Wzór - jest to zdefiniowane przez użytkownika kolejne 16 pikseli nowej nietypowej linii ( rodzlin=4 ). Jeżeli rodzaj linii jest różny od 4 to pod wzór możemy wstawić jakąkolwiek liczbę gdyż nie będzie ona brana pod uwagę. Rodzaje grubości to: 11
Procedura SetFillStyle SetFillStyle( nrwzorca,kolor:word ); biblioteka: GRAPH Zmienia rodzaj i kolor wypełnienia konturów wykorzystywanych przez niektóre procedury np. przez Bar, Bar3D itp. 12
Procedura SetFillStyle Domyślne ustawienia początkowe to wzorzec wypełniania ciągłego i numer koloru będący maksymalnym kolorem aktualnego trybu graficznego. Rodzaje wzorca to: 13
Procedura Line Line ( X1,Y1,X2,Y2:integer ); biblioteka: GRAPH Procedura rysuje linię zaczynającą się w punkcie X1,Y1 a kończącą się w X2,Y2 kolorem określonym przez procedurę SetColor 14
Procedura Line - przykład 15
Procedura Circle Circle ( X,Y:integer; R:word ); biblioteka: GRAPH Procedura rysuje koło o środku umieszczonym o współrzędnych X,Y, promieniu R i kolorze określonym przez procedurę SetColor. 16
Procedura Rectangle Rectangle ( X1,Y1,X2,Y2:integer ); biblioteka: GRAPH Procedura rysuje prostokąt. X1,Y1 to współrzędne lewego górnego rogu, a X2,Y2 to współrzędne lewego dolnego rogu ( są to przeciwległe wierzchołki ) 17
Procedura Rectangle Rectangle ( X1,Y1,X2,Y2:integer ); biblioteka: GRAPH Procedura rysuje prostokąt. X1,Y1 to współrzędne lewego górnego rogu, a X2,Y2 to współrzędne lewego dolnego rogu ( są to przeciwległe wierzchołki ) 18
Procedura FloodFill FloodFill (X,Y:integer; kolorgranicy:word); biblioteka: GRAPH Procedura wypełnia aktualnym kolorem i wzorem (SetFillStyle) obszar ograniczony brzegiem o kolorze "kolorgranicy" tzn. Jeżeli przy wypełnianiu danego obszaru procedura napotka na jakąś np. linię wykonaną kolorem "kolorgranicy" to zachowuje się jakby to był dla niej mur nie do przejścia i zostawia i jego i to co się za nim znajduje w spokoju) Punkt X,Y jest miejscem od którego procedura zaczyna wypełniać obszar. 19
Procedura FloodFill Program wypełnia obszar który jest wspólny dla obu prostokątów. 20
Procedura OutTextXY OutTextXY (X,Y:integer; S:string); biblioteka: GRAPH Procedura wyświetla na ekranie tekst określony przez zmienną "S" rozpoczynając od współrzędnych X,Y i w aktualnym kolorze ( SetColor ) i stylu SetTextStyle(l,m,n); gdzie l rodzaj czcionki (0-10); m kierunek (0;1;2); n wielkość (0-9) 21
Literatura: W prezentacji użyto fragmentów kursu: Robert Wróbel, Kurs Turbo Pascala dla początkujących, http://www.pascal.eu.org/index2.htm 22 dr Artur Bartoszewski - Nowoczesne technologie informatyczne - WYKŁAD