GRAFIKA W TURBO PASCALU
Inicjalizacja trybu graficznego InitGraph (Sterownik: Integer, Tryb: Integer, Ścieżka: String); sterownik – identyfikator karty sterownika graficznego; tryb – tryb graficzny (rozdzielczość, ilość kolorów); ścieżka – katalog, w którym znajduje się sterownik *.bgi
Zakończenie trybu graficznego Inicjalizacja trybu graficznego cd… DetectGraph(sterownik,tryb); sterownik:=VGA; tryb:= VGAHi; Zakończenie trybu graficznego CloseGraph; Wyłącza tryb graficzny i wraca do poprzedniego trybu tekstowego.
PROSTY KOD - GRAFIKA program Grafika; uses Crt,Graph; var sterownik,tryb:integer; begin DetectGraph(sterownik,tryb); {sterownik:=VGA; tryb:= VGAHi;} InitGraph(sterownik,tryb,'C:/BP/BGI'); Line(10,10,100,100); <-rysowanie repeat until keypressed; CloseGraph; end.
Operacje trybu graficznego Po włączeniu trybu graficznego mamy szereg procedur graficznych. Procedury zwracają na ekran graficzny wynik swej pracy: np. rysunek linii , czy koła. Nasz tryb graficzny to VGA o rozdzielczości 640-480 i 16 kolorów. RYSOWANIE PUNKTU NA EKRANIE (PIXEL) PutPixel (X, Y: Integer; Pixel: Word); X- położenie w osi x (0-639) Y – położenie w osi y (0-479) Pixel – 0-15 kolor , Word – 0-256 liczby Przykład for i:=0 to 15 do begin PutPixel(100+i,100+i,i); end; Program narysuje 15 pikseli w różnych kolorach
Operacje trybu graficznego SetBkColor (ColorNum: Word); - ustawia kolor tła ekranu SetColor (Color: Word); - ustawia kolor np. podczas rysowania linii , czy koła Przykładowe kolory: 0- czarny 1- niebieski 4 - czerwony 15 - biały RYSOWANIE LINI NA EKRANIE (np. czerwonej) Line (x1, y1, x2, y2: Integer); rysuje linię prostą Przykład SetBkColor (0); - czarne tło SetColor (4); - kolor czerwony Line(200,200,400,200); - od x,y do x,y – rysowanie linii na ukranie
Rysowanie figur Rectangle (x1, y1, x2, y2: Integer); - rysuje prostokąt Rectangle(100,100,300,300); (kwadrat) Circle (X,Y: Integer; Radius: Word); - rysuje okrąg Gdzie X,Y – środek koła, Radius – długość promienia circle(100,100,70); Arc (X,Y; Integer; StAngle, EndAngle, Radius; Word); łuk, wycinek okręgu (gdzie x,y – początek rysowania, kąt początkowy, kat końcowy, długość promienia) arc(100,100,0,90,80);
Wypełnienie obszaru oznaczonego kolorem Ellipse(X, Y: Integer; StAngle, EndAngle: Word; XRadius, YRadius: Word); - rysuje elipsę Przykład: ellipse(320,240,0,360,100,50); - x,y – środek elpisy, kąty rysowania, np. 100 – długosć osi poziomej, 50 długosćosi pionowej Wypełnienie obszaru oznaczonego kolorem FloodFill (X, Y: Integer; Border: Word); wypełnia zamknięty (ograniczony liniami o innym kolorze) region ekranu wcześniej trzeba wypełnić kolor i wzór „wypełniacza” SetFillStyle (Pattern: Word; Color: Word); ustawia rodzaj „wypełniacza”
PRZYKŁAD Narysuj na ekranie okrąg np. czerwony a potem wypełnij go w środku na niebiesko SetBkColor (0); <-kolor tła czarne SetColor (4); <- kolor pisaka czerwony circle(320,240,100); <- rysowanie okręgu SetFillStyle(1,4); - wybieranie rodzaju i obwódki do jakiej będziemy wypełniać FloodFill(320,240,4); - wypełnienie okręgu na niebiesko
Napisy w trybie graficznym MoveTo (X, Y: Integer); - przesuwa kursor graficzny do wskazanego punktu OutText (TextString: string); - wyprowadza tekst OutTextXY (X,Y: Integer; TextString: string); - wyprowadza teks począwszy od punktu o zadanych współrzędnych X i Y napis:='Ala ma kota'; OutTextXY(200,200,napis); Przykład: wcześniej ( var napis:string;)
SetTextStyle (Font, Direction: Word; CharSize: Word); ustawia styl tekstu SetColor(4); SetTextStyle(4,0,4); napis:='To jest napis'; OutTextXY(200,200,napis); SetLineStyle (LineStyle: Word; Pattern: Word; Thickness: Word); ustawia rodzaj linii (ciągła, przerywana, gruba itp.) SetLineStyle(1,0,3); Line(100,100,300,300); Parametr 1 - (0-ciągła linia,1,2,3-przerywana) Parametr 3 – (1- cienka linia, 3 – pogrubiona linia)
ClearDevice – czyszenie urządzenia graficznego (ekranu) SŁUPKI DO WTKRESÓW SetColor(4); SetFillStyle(2,4); Bar(10,100,11,20); <- słupek zwyczajny Bar3D(50,50,290,230,50,true); <- słupek 3 wymiarowy