MODUŁ+GRA...doc

(48 KB) Pobierz

MODUŁ GRAPH

Inicjowanie trybu graficznego w programie odbywa się w następujący sposób: uses graph;

var

ster, tryb : integer; begin

ster := detect;

initgraph (ster, tryb, 'ścieżka do sterownika karty graficznej');

cleardevice;

closegraph end.

Podczas pracy z modułem graficznym istnieje także możliwość przełączania trybu graficznego na tryb tekstowy i odwrotnie. Służą do tego procedury RestoreCrtMode, SetGraphMode (tryb). Ta ostatnia może być używana do zmiany trybów graficznych pracy ekranu niezależnie od procedury RestoreCrtMode. Ekran w trybie graficznym posiada inny układ współrzędnych niż w trybie tekstowym. Każdy punkt ekranu posiada swoje współrzędne, przy czym punkt znajdujący się w górnym lewym narożniku oznaczany jest jako punkt (O, 0) a w dolnym prawym narożniku jako punkt (639, 349) - są to współrzędne dla karty EGA w trybie wysokiej rozdzielczości.

(0,0)



(639, 479)


Funkcje i procedury organizacyjne

1.              Do obsługi błędów podczas wykonywania operacji graficznych.

                      GraphResult

                      GraphErrorMsg ( kod_błędu )

Np.

blad := GraphResult; if blad <> grOK then begin

Writeln ('Błąd grafiki: ', blad , '-', GraphErrorMsg ( Blad )); Halt (1); end;

2.              Do uzyskania informacji o bieżących parametrach trybu graficznego

                      GetGraphMode              »              GetX

                      GetDriverName              .              GetY

                      GetMaxMode              .              GetPixeł (x, y)

                      GetModeName (numertrybu )              .              GetBkColor

                      GetMaxX              .              GetCołor

                      GetMaxY

Np. x := GetMaxX div 2 y :=GetMaxYdiv2 punkt (x, y ) jest środkiem ekranu

3.              Do ustalenia rozmiarów i usytuowanie bieżącego okna na ekranie

              SetYiewPort ( xl, yl, x2, y2, obcięcie )

gdzie argument - obcięcie jest typu Boolean - ClipOn lub ClipOff

4.              Do pracy z grafiką wielostronicową przy konstrukcji obrazów animowanych

              SetActivePage ( strona )   skierowanie elementu graficznego na określoną

stronę przed jego konstukcją

              SetYisualPage ( strona)   wyświetlenie danej strony na ekranie

5.              Do zainstalowania własnych sterowników kart graficznych

              InstallUserDriver (nazwa sterownika, wskaźnik_autodetekcji)

Np. sterownik := InstallUserDriver ('YESA16.BGI', nil)

6.              Do zainstalowania zbioru z krojem nowego pisma

(kroje o numerach od 5 do 10 nie muszą być instalowane )

              InstallUserFont (nazwa_kroju )

Np. Kroj := InstallUserFont (' EURO.CHR ');

              SetTextStyłe (krój, HorizDir, l );

7.              Do oczyszczania okna graficznego

              ClearDevice oczyszczenie wszystkich stron ekranu i przywrócenie

standardowych wartości

              ClearYiewPort oczyszczanie bieżącego okna graficznego


Procedury ustalające parametry graficzne

1.              Zmiany barw w palecie kolorów

                      SetAllPalette (paleta)

                      SetPalette (numer_koloru, kolor)

                      SetRGBPalette (numer_koloru, czewony, zielony, niebieski)

2.              Ustalenie koloru rysowanych linii i koloru tlą ekranu

                      SetColor (kolor)

                      SetBkColor (kolor)

3.              Ustalenie rodzaju bieżącej linii i jej grubości

              SetLineStyle (rodzaj_linii, wzór, grubość)

wzór = O gdy rodzaj linii (0..3)

wzór podajemy szesnastkowo np. $CCFO gdy rodzaj linii = 4 (UserBitLn)

4.              Ustalenie rodzaju i koloru wypełniania zamkniętych konturów

                      SetFillStyle (wzór, kolor)

                      SetFillPattern (wzór_zdefiniowany, kolor) matryca 8-bitowa

5.              Ustalenie sposobu rysowania linii w procedurach DrawPoly, Linę,

                      LineRel, LineTo, Rectangle

                      SetWriteMode (trybjrysowania)

tryb predefiniowany: CopyPut lub XORPut

6.              Przesunięcie kursora do punktu o współrzędnych (x, y)

                      MoveTo (x, y)

                      MoveRel (Dx,Dy)


Przegląd procedur graficznych;

1.              Rysowanie odcinków prostych

Line(xl.yl,x2,y2) LineRel (Dx, Dy) LineTo (x, y)

2.              Zaznaczenie punktu na ekranie

PutPixel (x, y kolor)

3.              Obraz prostokąta i okręgu w bieżącym oknie narysowany ustalonym
rodzajem linii i kolorem

Rectangle (x l ,y l ,x2 ,y 2) Circle (x,y,r)

4.              Rysowanie wielokątów

DrawPoly (liczba_punktów, wspólrzędne_punktów)

Np. DrawPoly (4,trojkat) gdzie const

trójkąt :array [1..4] of PointType =((x:10;y:10),(x:15; y: 100),

(x:150;y:50),(x:10;y:10));

5.              Rysowanie łuków okręgów i elips
Arc (x, y, a, b, r)

Ellipse (x, y, a,b, xr, yr) Np.

Arc (150,100,0,90,50) - łuk okręgu o śr.w pkcie (150,100) i pr. 50 od kąta wodzącego O do 90

Ellipse (150,100, O, 360, 40, 50)-elipsa o śr. w pcie jak wyżej, osi poziomej 40 i osi pionowej 50

 


6. Rysowanie odpowiedniej figury z wypełnieniem jej aktualnie obowiązującym znakiem wypełniającym i kolorem

• Bar (xl, yl, x2, y2) - prostokąt wypełniony

Bar3d (xl,yl,x2,y2, głębokość, wierzchołek) TopOn-true, TopOff -false

FillPoly (liczba_punktów, współrzędne_punktów) - wielokąt wypehiiony

PieSlice (x, y, a, b, r) - wycinek koła

FillEllipse (x, y, półoś-x, półoś-y)

Sector (x, y, a, b, r, półoś-x, półoś-y) - wycinek elipsy

7. Wypełnienie dowolnego zamkniętego konturu

• FloodFill (x, y, brzeg) - punkt (x, y) określa który kontur ma być wypełniony

Np.

SetColor (red);

Arc(160, 100, 0,180, 50);

Line (l 10, 100, 210,100); SetFillStyle (SolidFill, Yellow); FloodFill (160,101,red)


Funkcje i procedury tekstowe

1. Określenie rodzaju kroju pisma, kierunku wyprowadzania (poziomo lub pionowo) oraz rozmiaru

• SetTextStyle (krój, kierunek, rozmiar)...

Zgłoś jeśli naruszono regulamin