Lekcja 6 - Podstawy obsługi grafiki
Procedura: InitGraph, CloseGraph
Procedura: InitGraph służy do włączania trybu graficznego. Przykład w postaci programu:
program grafika;
uses GRAPH;
var sterownik, tryb : integer;
begin
karta:=0;
tryb:=0;
InitGraph(sterownik, tryb, 'C:\tp\Bgi');
end.
W sekcji uses deklarujemy moduł Graph, czyli moduł graficzny, oraz 2 zmienne: sterownik karty graficznej i tryb.
Na początku prgramu 2 zmiennym przypisujemy wartość = 0. Dzięki temu Pascal sam rozpozna typ naszej karty itp.
W poleceniu InitGraph po 2 zmiennych wpisujemy ścieżkę do zbioru Bgi, czyli twoją ścieżkę do katalogu z Pascalem i do katalogu Bgi.
U mnie jest to: C:\tp\Bgi
Procedura: CloseGraph zamyka tryb graficzny.
program grafika;
uses GRAPH;
var sterownik, tryb : integer;
begin
karta:=0; {zamiast przypisywać zmiennym (karta, tryb) wartości 0 możesz również napisać: DetectGraph(karta, tryb);}
tryb:=0;
InitGraph(sterownik, tryb, 'C:\tp\Bgi');
CloseGraph;
end.
Ten program otwiera i zamyka tryb graficzny.
Procedura: SetColor, SetBkColor, SetFillStyle
Musisz zauważyć, że w module graficznym nie działają polecenia takie jak: Writeln, instrukcje warunkowe itp.
Moduł graficzny ma swoje oddzielne instrukcje, jedną z niech jest instrukcja SetColor .
Zmienia kolor w trybie graficznym (procedura: TextColor w trybie graficznym nie działa!)Kolorem który podamy w tej procedurze zostaną wyświetlone np. kółka, linie czy kwadraty.
Procedura SetBkColor zmienia kolor tła w trybie graficznym. Po prostu piszesz: SetBkColor i w nawiasie numer lub nazwę koloru.
Teraz procedura: Procedura SetFillStyle .
Zmienia ona rodzaj i kolor wypełnienia konturów wykorzystywanych przez niektóre procedury. 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:
EmptyFill = 0 > wypełnienie kolorem tła
SolidFill = 1 > wypełnienie ciągłe
LineFill = 2 > wypełnienie pogrubionymi liniami poziomymi
LtSlashFill = 3 > wypełnienie liniami pochyłymi w prawo
SlashFill = 4 > wypełnienie pogrubionymi liniami pochyłymi w prawo
BkSlashFill = 5 > wypełnienie pogrubionymi liniami pochyłymi w lewo
LtBkSlashFill = 6 > wypełnienie liniami pochyłymi w lewo
HatchFill = 7 > wypełnienie siatką pionową
xHatchFill = 8 > wypełnienie siatką ukośną
InteerleaveFill = 9 > wypełnienie liniami splecionymi
VideDotFill = 10 > wypełnienie kropkami
CloseDotFill = 11 > wypełnienie zagęszczonymi kropkami
UserFill = 12 > wypełnienie wzorem zdefiniowanym przez użytkownika
procedurą SetFillPattern
Procedura: SetLineStyle, Line, Circle, Rectangle, FloodFill
Procedura SetLineStyle zmienia rodzaj i grubość linii używane przy procedurach: Bar3D, Line, Circle. Dostępne rodzaje to:
SolidLn = 0 - ciągła
DottedLn = 1 - kropkowana
CenterLn = 2 - symetryczna
DashedLn = 3 - przerywana
UserBitLn = 4 - o wzorze zdefiniowanym przez użytkownika
Rodzaje grubości linii to:
NormWidth = 1 - linia normalna
ThickWidth = 3 - linia pogrubiona
Więcej o tej procedurze dowiesz się w praktyce :)
Procedura Line :
Składnia: Line(X1, Y1, X2, Y2 : integer);
Rysuje linię, która zaczyna się w punkcie X1, Y1 a kończy się w punkcie X2, Y2.
Kolor tej linii możemy określić przy pomocy procedury SetColor.
Teraz czas na przykład w postaci programu:
program Modul_graph;
uses graph, crt;
Var sterownik, tryb : integer;
begin
sterownik:=0;
tryb:=0;
InitGraph(sterownik, tryb, 'C:\tp\Bgi');
Line(100, 100, 600, 600);
Repeat Until Keypressed;
CloseGraph;
end.
Efektem wykonania programu będzie narysowanie linii o początku w punkcie 100, 100 i końcu w punkcie: 600, 600
Pamiętaj aby polecenie Repeat Until Keypressed wpisać przed zamknięciem ekranu graficznego,
ponieważ nie zobaczysz efektu wykonania programu, jeżeli procedurę tą napiszesz po słowach: CloseGrahp
wtedy ekran graficzny zostanie zamknięty i ujżysz czysty ekran tekstowy.
Procedura: Circle
Rysuje koło o środku o współrzędnych X, Y, promieniu R i kolorze określonym przez procedurę SetColor.
Oto przykład:
program kolo;
uses Graph, Crt;
var tryb, karta : Integer;
begin
karta:=0;
tryb:=0;
InitGraph(tryb, karta, 'C:\tp\Bgi')
SetColor(14);
Circle(250, 250, 100);
repeat until keypressed;
CloseGraph;
end.
Efektem wykoniania programu będzie narysowanie koła o środku o współrzędnych 250, 250 i promieniu: 100.
Procedura: Rectangle
Procedura ta rysuje prostokąt. Jej składnia to:
Rectangle (X1, Y1, X2, Y2 : Integer); gdzie X1, Y1 to współrzędne lewego górnego rogu a X2 i Y2 to współrzędne prawego dolnego rogu.
Przykład:
program prostokat;
uses Graph, Crt;
var tryb, karta : Integer;
begin
karta:=0;
tryb:=0;
InitGraph(tryb, karta, 'C:\tp\Bgi')
SetColor(4);
Rectangle(100, 100, 500, 250);
repeat until keypressed;
CloseGraph;
end.
Na pewno wiesz o co chodzi :)
Procedura: FloodFill
Składnia tej procedury jest taka: FloodFill(X, Y : Integer; kolorgranicy : Word);
Procedura wypełania kolorem i wzorem podanym w procedurze SetFillStyle obszar o "kolorzegranicy"
(patrz składnia). Jeżeli przy wypełanianiu napotka linię, np. linię wykonaną kolorem granicy to zatrzymuje proces wypełaniania
Punkt X, Y jest miejscem od którego procedura zaczyna wypełnianie.
Oto przykład:
program floodfill;
uses graph, Crt;
var
tryb, karta : Integer;
begin
tryb:=0;
karta:=0;
InitGraph(karta, tryb, 'C:\tp\Bgi');
SetColor(green);
Rectangle(50, 50, 120, 120);
Rectangle(10, 10, 100, 100);
SetFillStyle(XHatchFill, GetMaxColor);
FloodFill(50, 50, Green);
Repeat Until Keypressed;
CloseGraph;
end.
Myślę, że jeden program Ci nie wystarczy, dlatego pobaw się tą procedurą ay ją lepiej zrozumieć.
Procedura: Bar, Bar3D, PutPixel, OutTextXY, ClearDevice
Procedura: Bar rysuje wypełniony prostokąt. Jej składnia to: Bar(X1, Y1, X2, Y2), gdzie X1,Y1 to współrzędne lewego górnego rogu, a X2,Y2 to współrzędne prawego dolnego rogu.
Kolor ramki jest określany przez procedurę SetColor, a kolor wypełnienia przez procedurę SetFillStyle.
Procedura: Bar3D rysuje trójwymiarowy prostokąt wypełniony. Jej składnia to: Bar3D(X1, Y1, X2, Y2; B; TOP)
X1,Y1 to współrzędne lewego górnego rogu przedniej ścianki, X2,Y2 to współrzędne lewego dolnego rogu
przedniej ścianki, zmienna B jest to głębokość naszego prostopadłościanu, zmienna TOP określa czy
górna powierzchnia jest widoczna TRUE czy niewidoczna FALSE
Procedura: PutPixel wyświatla jeden punkt o podanych współrzędnych (X, Y)i podanym kolorze. Jej składnia to: PutPixel (X, Y; Kolor)
Teraz procedura: OutTextXY , wyświetla ona na ekranie monitora tekst określony przez zmienną S rozpoczynając od współrzędnych X, Y. Kolor tekstu podawany jest przez procedurę SetColor.
np. aby wypisać tekst na ekranie robimy tak:
- uruchamiamy moduł graficzny
- wpisujemy: OutTextXY(200,100,'Cześć to ja - Jerzy!');
Efektem programu będzie wypisanie tekstu: Cześć to ja - Jerzy! o początku w punkcie 200 i 100.
Tekst zostanie wypisany w kolorze określonym przez procedurę SetColor
Procedura: ClearDevice - procedura ta czyści ekran graficzny. Jak coś już narysujemy to nie możemy wyczyścić tego procedurą: ClrScr tylko ClearDevice
No to na razie cześć!
Wróć do strony głównej kursu
Darmowy hosting zapewnia PRV.PL