Grafika ekranowa zale¿y od rodzaju karty graficznej,
w któr± wyposa¿ony jest komputer, oraz od rodzaju monitora. Dobre
mo¿liwo¶ci (zwi±zane przede wszystkim z liczb± kolorów i rozdzielczo¶ci±
ekranu) daj± szeroko rozpowszechnione w naszym kraju karty VGA,
która pozwala na pracê w trzech trybach graficznych. Ka¿dy program
graficzny powinien zawieraæ procedurê inicjuj±c± tryb graficzny,
która dla karty VGA mo¿e mieæ postaæ:
procedure VGAinit;
var blad, sterownik,tryb : Integer;
begin
sterownik:=VGA;
tryb:=VGAHi;
InitGraph(sterownik,tryb,'');
blad:=GraphResult;
if blad<>0
then begin
Writeln ('B³±d podczas inicjacji trybu graficznego');
Write ('Kod b³êdu: ',blad);
Halt
end
end;
Aby rozpocz±æ pracê nad programem graficznym nale¿y zadeklerowaæ
u¿ycie modu³u Graph (uses graph;)
Nastêpnie nale¿y zainicjowaæ tryb graficzny np. powy¿sz± procedur±.
Po inicjacji trybu graficznego mo¿na wykorzystywaæ procedury
i funkcje opisane w dalszej czê¶ci rozdzia³u
Modu³ Graph
Modu³ zawiera funkcje i procedury obs³ugi grafiki, umo¿liwiaj±ce
jej realizacjê na dowolnych kartach graficznych, stosowanych w
konfiguracjach sprzêtu typu IBM PC. Nale¿y zaznaczyæ, ¿e program
napisany dla jednego typu urz±dzenia graficznego mo¿e byæ uruchamiany
na innych, pod warunkiem operowania w nim wzglêdnymi warto¶ciami
rozdzielczo¶ci ekranu i numerami kolorów, z zastosowaniem odpowiedniego
sterownika ekranu. W niniejszym rozdziale zamieszczono definicje
typów, sta³ych, zmiennych, funkcji i procedur, niezbêdnych przy
tworzeniu programu.
Sta³e
kody b³êdów graficznych (patrz: Komunikaty b³êdów)
grOk = 0;
grNolnitGraph = -1;
grNotDetected = -2;
grFileNotFound = -3;
grlnvalidDriver = -4;
grNoLoadMem = -5;
grNoScanMem = -6;
grNoFloodMem = -7;
grFontNotFound = -8;
grNoFontMem = -9;
grlnvalidMode = -10;
grError = -11;
grIOerror = -12;
grlnvalidFont = -13;
grlnvalidFontNum = -14;
definiuj±ce sterowniki ekranu
CurrentDriver = -128;
Detect = 0;
CGA = 1;
MCGA = 2;
EGA = 3;
EGA64 = 4;
EGAMono = 5;
IBM8514 == 6;
HercMono = 7;
ATT400 = 8;
VGA = 9;
PC3270 =10;
definiuj±ce tryby graficzne
CGACO = 0; 320x200, paleta 0: kolor 10,12,14, 1 strona
CGAC1 = 1; 320x200, paleta 1: kolor 11, 13, 15,1 strona
CGAC2 = 2; 320x200, paleta 2: kolor 2, 4, 6, 1 strona
CGAC3 = 3; 320x200, paleta 3: kolor 3, 5, 7, 1 strona
CGAHi = 4; 640x200,1 kolor, 1 strona
MCGACO = 0; 320x200, paleta 0: kolor 10, 12, 14, 1 strona
MCGAC1 = 1; 320x200, paleta 1: kolor 11,13,15, 1 strona
MCGAC2 = 2; 320x200, paleta 2: kolor 2, 4, 6, 1 strona
MCGAC3 = 3; 320x200, paleta 3: kolor 3, 5, 7, 1 strona
MCGAMed = 4; 640x200, 1 kolor, 1 strona
MCGAHi = 5; 640x480, 1 strona
EGALo = 0; 640x200,16 kolorów, 4 strony
EGAHi = 1; 640x350,16 kolorów, 2 strony
EGA64LO = 0; 640x200,16 kolorów, 1 strona
EGA64HI = 1; 640x350, 4 kolory, 1 strona
EGAMonoHi = 3; 640x350, karty: 64 K - 1 strona, 256 K-2 strony
HercMonoHi = 0; 720x348, 2 strony
ATT400CO = 0; 320x200, paleta O: kolor 10, 12, 14, 1 strona
ATT400C1 = 1; 320x200, paleta 1: kolor 11,13,15, 1 strona
ATT400C2 = 2 ;320x200, paleta 2: kolor 2, 4, 6, 1 strona
ATT400C3 = 3; 320x200, paleta 3: kolor 3, 5, 7, 1 strona
ATT400Med = 4 ;640x200, 1 strona
ATT400HI = 5 ;640x400, 1 strona
VGALo = 0; 640x200, 16 kolorów, 4 strony
VGAMed = 1 ;640x350, 16 kolorów, 2 strony
VGAHi = 2; 640x480, 16 kolorów, 1 strona
PC3270HI = 0; 720x350, 1 strona
IBM8514LO = 0; 640x480, 256 kolorów
IBM8514HI = 1 ;1024x768, 256 kolorów
definiuj±ca maksymaln± liczbê kolorów
MaxColors =15; 16 kolorów (0.. 15)
definiuj±ce kolory
Black = 0; czarny
Blue = 1; niebieski
Black = 0; czarny
Blue = 1; niebieski
Green = 2; zielony
Cyan = 3; turkusowy
Red = 4; czerwony
Magenta = 5; karmazynowy
Brown = 6; br±zowy
LightGray = 7; jasnoszary
DarkGray = 8; ciemnoszary
LightBIue = 9; jasnoniebieski
LightGreen = 10; jasnozielony
LightCyan =11; jasnoturkusowy
LightRed =12; jasnoczerwony
LightMagenta =13; jasnokarmazynowy
Yellow = 14; ¿ó³ty
White = 15; bia³y
definiuj±ce kolory karty EGA na karcie IBM8514
EGABIack = 0; EGADarkgray = 56;
EGABIue = 1; EGALightbIue = 57;
EGAGreen = 2; EGALightgreen = 58;
EGACyan = 3; EGALightcyan = 59;
EGARed = 4; EGALightred = 60;
EGAMagenta = 5; EGALightmagenta = 61;
EGABrown = 20; EGAYellow = 62;
EGALightgray = 7; EGAWhite = 63;
definiuj±ce rodzaje linii
SolidLn = 0; ci±g³a
DottedLn = 1; przerywana kropkowana
CenterLn = 2; przerywana (kreska kropka)
DashedLn = 3; przerywana (kreski)
UserBitLn = 4; definiowana przez u¿ytkownika
NormWidth = 1; normalnej grubo¶ci (jeden punkt)
ThickWidth = 3; pogrubiona (trzy punkty)
definiuj±ce krój pisma
DefaultFont = 0; standardowe (8x8 punktów)
TriplexFont = 1;
SmallFont = 2; pismo techniczne
SansSerifFont = 3; bezszeryfowa
GothicFont = 4; pismo gotyckie
definiuj±ce kierunek wyprowadzania tekstu
HorizDir = 0; od lewej do prawej
VertDir = 1; z do³u do góry (pionowe - odwrócone o 90 stopni
w lewo)
definiuj±ce po³o¿enie tekstu (wyrównywanie) wzglêdem pozycji
kursora graficznego
LeftText = 0; poziomo, wyrównanie od lewej
CenterText = 1; poziomo, wy¶rodkowanie
RightText = 2; poziomo, wyrównanie od prawej
BottomText = 0; pionowo, wyrównanie od do³u
CenterText = 1; pionowo, wycentrowanie
TopText = 2; pionowo, wyrównanie od góry
definiuj±ca wielko¶æ znaków
UserCharSize = 0; wielko¶æ standardowa
definiuj±ce mo¿liwo¶ci rysowania poza oknem graficznym
ClipOn=True; obcinanie linii na obrze¿u
ClipOff=False; rysowanie poza oknem
definiuj±ce wierzcho³ek s³upka trójwymiarowego
TopOn = True; zakoñczony
TopOff = False; niezakoñczony
definiuj±ce wzór do wype³niania konturów
EmptyFill = 0; kolor t³a, wzór pusty
SolidFill = 1; pe³ne wype³nienie
LinePill = 2; kreski poziome
LtSIashFill = 3; kreski prawosko¶ne
SlashFill = 4; kreski prawosko¶ne pogrubione
BkSlashFill = 5; kreski lewosko¶ne
LtBkSlashFill = 6; kreski lewosko¶ne pogrubione
HatchFill = 7; kratka prosta
XHatchFill = 8; kratka uko¶na
lnterleaveFill = 9; punkty zagêszczone
WideDotFill = 10; kropki
CloseDotFill = 11; gêste kropki
UserFill = 12; wzór definiowany przez u¿ytkownika
definiuj±ce rodzaj operacji na bitach pamiêci ekranu oraz bufora
obrazu (Putlmage i SetWriteMode)
NormalPut = 0; MOV
CopyPut = 0; MOV
XORPut = 1; XOR
OrPut = 2; OR
AndPut = 3; AND
NotPut = 4; NOT
typy
charakterystyki palety (najwiêksza liczba kolorów (Size) - 16,
najwiêkszy numer koloru (MaxColors) - 15)
PaletteType = record
Size: Byte; {liczba kolorów w palecie}
Colors: array[0.. MaxColors] of Shortint {kolory}
end;
rodzaju kre¶lonej linii
LineSettingsType = record
LineStyle: Word; {rodzaj linii}
Pattern: Word; {zdefiniowany wzór}
Thickness: Word {grubo¶æ (1 lub 3 punkty)}
end;
sposobu wyprowadzania tekstu
TextSettingsType = record
Font: Word; {numer kroju pisma}
Direction: Word; {kierunek}
CharSize: Word; {powiêkszenie pisma}
Horiz: Word; {poziome justowanie}
Vert: Word {pionowe justowanie}
end;
opisu wzoru stosowanego do wype³niania konturów
FilISettingsType = record
Pattem: Word; {numer wzoru}
Color: Word {kolor}
end;
wzoru wype³niania konturów
FilIPatternType = array[1..8] of Byte;
wspó³rzêdnych punktu
PointType = record
X, Y: Integer
end;
okna graficznego
ViewPortType = record
x1, y1, x2, y2: Integer; {wspó³rzêdne rogów okna}
Clip: Boolean {obcinanie na brzegach}
end;
wspó³rzêdnych ³ukowych
ArcCoordsType = record
X, Y: l nteger; {wspó³rzêd ne ¶ródka ³uku }
Xstart, Ystart: Integer; {wspó³rzêdne pocz±tku ³uku}
Xend, Yend: Integer {wspó³rzêdne koñca ³uku}
end;
GraphResult: Integer-funkcja
wynik: Warto¶æ równa zeru, je¶li ostatnia wykonana operacja graficzna
by³a poprawna; warto¶æ ujemna - b³±d (patrz: Kody b³êdów).
GraphErrorMsg (Kod: Integer): string-funkcja
Kod - numer b³êdu
wynik: Komunikat dotycz±cy b³êdu o podanym numerze.
DetectGraph (var Ster, Tryb: Integer)-procedura
Ster - numer sterownika ekranu
Tryb - tryb graficzny sterownika
wynik: Sprawdzenie zainstalowanego sterownika ekranu.
GetDriverName: string-funkcja
wynik: Nazwa zainstalowanego sterownika ekranu.
GetMaxMode: Integer-funkcja
wynik: Najwiêkszy numer trybu graficznego zainstalowanego sterownika
ekranu.
GetModeName (Tryb: Integer): string-funkcja
Tryb - numer trybu graficznego
wynik: Nazwa wyró¿nionego trybu graficznego zainstalowanego sterownika
ekranu.
GetModeRange (Ster: Integer; var Nisryb, WysTryb: Integer)-procedura
Ster - numer sterownika ekranu
NisTryb - najmniejsza warto¶æ numeru trybu graficznego
WysTryb - najwiêksza warto¶æ numeru trybu graficznego
wynik: Najmniejszy i najwiêkszy numer trybu graficznego danego
sterownika ekranu.
InitGraph (var Ster, Tryb: Integer; Dostêp: string)-procedura
Ster - numer sterownika ekranu
Tryb - numer trybu graficznego
Dostêp - ¶cie¿ka dostêpu do pliku dyskowego sterownika
wynik: Zainicjowanie modu³u Graph.
SetGraphMode (Tryb: Integer)-procedura
Tryb - numer trybu graficznego
wynik: Przej¶cie do zadanego trybu graficznego. Procedurê tê
nale¿y wywo³aæ bezpo¶rednio po wywo³aniu InitGraph. W ten sposób
mo¿na przej¶æ od trybu znakowego do graficznego lub zmieniæ standardowy
tryb graficzny.
GetGraphMode: Integer-funkcja
wynik: Numer bie¿±cego trybu graficznego.
RestoreCRTMode-procedura
wynik: Prze³±czenie na tryb znakowy, do momentu wywo³ania procedury
SetGraphMode.
CloseGraph-procedura
Wynik: Zakoñczenie trybu graficznego.
RegisterBGIFont (Znak: Pointer): Integer-funkcja
Znak - wska¼nik obszaru pamiêci zajmowanej przez wzorce pisma
wynik: Warto¶æ równa numerowi kroju pisma. Warto¶æ ujemna oznacza
b³±d.
RegisterBGIDriver (Ster: Pointer): Integer-funkcja
Ster - wska¼nik obszaru pamiêci zajmowanej przez program sterownika
ekranu
wynik: Warto¶æ równa numerowi zainstalowanego sterownika ekranu.
Warto¶æ ujemna oznacza b³±d.
lnstallUserDriver (SterNaz: string; Wsk: Pointer): Integer-funkcja
SterNaz - nazwa niestandardowego sterownika ekranu
Wsk - zmienna typu wska¼nikowego (adres sterownika)
wynik: Zainstalowanie sterownika ekranu o nazwie Sternaz.
InstallUserFont (ZnNaz: string): Integer-funkcja
ZnNaz - nazwa pliku dyskowego, zawieraj±cego czcionki o niestandardowym
kroju
wynik: Zainstalowanie niestandardowego kroju czcionek w pamiêci
komputera. Zwrócony zostaje numer tego kroju. W przypadku wyst±pienia
b³êdu - warto¶æ zero.
SetGraphBufSize (BufRoz: Word)-procedura
BufRoz - rozmiar bufora pamiêci
wynik: Zmiana standardowego rozmiaru bufora graficznego u¿ywanego
przy wype³nianiu konturów (standardowo 4 KB).
GraphDefaults-procedura
wynik: Odtworzenie standardowych warto¶ci parametrów wszystkich
operacji graficznych.
GetX: Integer-funkcja
wynik: Warto¶æ wspó³rzêdnej x pozycji kursora graficznego.
GetY: Integer-funkcja
wynik: Warto¶æ wspó³rzêdnej y pozycji kursora graficznego.
GetMaxX: Integer-funkcja
wynik: Najwiêksza warto¶æ wspó³rzêdnej x ekranu (wspó³rzêdna
x prawego dolnego rogu).
GetMaxY: Integer-funkcja
wynik: Najwiêksza warto¶æ wspó³rzêdnej y ekranu (wspó³rzêdna
y lewego górnego rogu).
ClearDevice-procedura
wynik: Oczyszczenie okna graficznego i przywrócenie wszystkich
standardowych warto¶ci (definicje palet, linii itd.).
SetViewPort (x1, y1, x2, y2: Integer; Clip: Boolean)-procedura
x1, y1 - wspó³rzêdne lewego górnego rogu okna
x2, y2 - wspó³rzêdne prawego dolnego rogu okna
Clip = True, je¶li rysunki maj± byæ obcinane do rozmiarów okna;
w przeciwnym przypadku - False.
wynik: Uaktywnienie okna graficznego okre¶lonego przez wspó³rzêdne
jego rogów i ustawienie kursora graficznego w punkcie (O, 0),
czyli (x1, y1), w lewym górnym rogu
GetViewSettings (var Okno: ViewPortType)-procedura
Okno - rekord okna graficznego
wynik: Parametry bie¿±cego okna graficznego.
ClearViewPort-procedura wynik: Oczyszczenie bie¿±cego okna graficznego.
SetVisualPage (Strona: Word)-procedura
Strona - numer strony wy¶wietlanej przez sterownik
wynik: Zmiana strony graficznej na ekranie.
SetActivePage (Strona: Word)-procedura
Strona - numer strony graficznej, na której odbywa siê rysowanie.
wynik: Wykonywanie wszystkich operacji graficznych na stronie
o podanym numerze.
PutPixel (x, y: Integer; Kol: Word)-procedura
x, y - wspó³rzêdne punktu
Kol - numer koloru
wynik: Wy¶wietlanie (rysowanie) w zadanym kolorze punktu o okre¶lonych
wspó³rzêdnych.
GetPixel (x, y: Integer): Word-funkcja
x, y - wspó³rzêdne punktu
wynik: Numer koloru punktu o okre¶lonych wspó³rzêdnych. Warto¶æ
zero oznacza kolor t³a.
SetWriteMode (Tryb: Integer)-procedura
Tryb - rodzaj operacji na bitach
wynik: Wybór rodzaju operacji na bitach pamiêci ekranu (patrz:
Sta³e).
LineTo (x, y: Integer)-procedura
x, y - wspó³rzêdne punktu bêd±cego koñcem rysowanego odcinka
wynik: Rysowanie odcinka od pozycji kursora graficznego do punktu
okre¶lonego wspó³rzêdnymi.
LineRel (dx, dy: Integer)-procedura
dx, dy - przesuniêcie we wspó³rzêdnych ekranu
wynik: Rysowanie odcinka od pozycji kursora graficznego do punktu
odleg³ego od niego o dx w kierunku poziomym i dy w kierunku pionowym.
MoveTo (x, y: Integer)-procedura
x, y - wspó³rzêdne punktu okna
wynik: Przemieszczenie kursora graficznego do punktu o podanych
wspó³rzêdnych (rysunek na ekranie nie ulega zmianie).
MoveRel (dx, dy: Integer)-procedura
dx, dy - przesuniêcie we wspó³rzêdnych ekranu
wynik: Przemieszczenie kursora graficznego do punktu odleg³ego
od jego pozycji wyj¶ciowej o dx w kierunku poziomym i dy w kierunku
pionowym.
Line (x1, y1, x2, y2: Integer)-procedura
x1, y1, x2, y2 - wspó³rzêdne pocz±tku i koñca odcinka
wynik: Rysowanie odcinka ³±cz±cego punkty o podanych wspó³rzêdnych.
GetLineSettings (Info: LineSettingsType)-procedura
Info - rekord kre¶lonych linii
wynik: Rekord okre¶laj±cy rodzaj rysowanej linii.
SetLineStyle (Rodz, Wzór, Grub: Word)-procedura
Rodz- rodzaj linii (0-4)
Wzór - wzór linii definiowanej przez u¿ytkownika
Grub - grubo¶æ rysowanej linii (1 lub 3)
wynik: Wybór linii do rysowania
Rectangle (x1, y1, x2, y2: Integer)-procedura
x1, y1 - wspó³rzêdne lewego górnego rogu
x2, y2 - wspó³rzêdne prawego dolnego rogu
wynik: Rysowanie prostok±ta, którego przeciwleg³e wierzcho³ki
to punkty o podanych wspó³rzêdnych.
Bar (x1, y1, x2, y2: Integer)-procedura
x1, y1 - wspó³rzêdne lewego górnego rogu
x2, y2 - wspó³rzêdne prawego dolnego rogu
wynik: Wype³nianie prostok±ta, którego przeciwleg³e wierzcho³ki
maj± zadane wspó³rzêdne. Kontury prostok±ta nie s± rysowane.
Bar3D (x1, y1. x2, y2: Integer; G³, Szczyt: Boolean)-procedura
x1, y1 - wspó³rzêdne lewego górnego rogu przedniej ¶ciany prostopad³o¶cianu
x2, y2 - wspó³rzêdne prawego dolnego rogu przedniej ¶ciany prostopad³o¶cianu
G³ - d³ugo¶æ prostopad³o¶cianu (g³êboko¶æ rzutu)
Szczyt = True oznacza, ¿e górna ¶ciana prostopad³o¶cianu nie
bêdzie rysowana
wynik: Rysowanie prostopad³o¶cianu, którego przednia ¶ciana jest
okre¶lona wspó³rzêdnymi przeciwleg³ych rogów. G³êboko¶æ rzutu
jest liczona w punktach ekranu. Ostatni parametr okre¶la, czy
górna ¶ciana prostopad³o¶cianu ma byæ widoczna czy te¿ nie.
DrawPoly (IIPkt: Word; var TabPkt)-procedura
IIPkt - liczba punktów wyznaczaj±cych ³aman±
TabPkt - tablica rekordów wspó³rzêdnych punktów
wynik: Rysowanie ³amanej okre¶lonej przez kolejne punkty o podanych
wspó³rzêdnych.
FilIPoly (lIPkt: Word; var TabPkt)-procedura
IIPkt - liczba wierzcho³ków wieloboku
TabPkt - tablica rekordów wspó³rzêdnych wierzcho³ków
wynik: Rysowanie wieloboku okre¶lonego przez kolejne punkty o
podanych wspó³rzêdnych i wype³nienie go wzorem do wype³niania
konturów.
GetFillSettings (var Wypinfo: FilISettingsType)-procedura
Wypinfo - rekord opisu wzoru stosowanego do wype³niania konturów
wynik: Rekord okre¶laj±cy u¿ywany wzór wype³niania konturów (wzór
i kolor).
GetFillPattern (var Wyp: FilIPatternType)-procedura
Wyp - rekord wzoru wype³niania konturów
wynik: Bie¿±cy, zdefiniowany przez u¿ytkownika, wzór wype³niania
konturów.
SetFillStyle (Num, Kol: Word)-procedura
Num - numer wzoru (patrz: Sta³e)
Kol - numer koloru (patrz: Sta³e)
wynik: Wybór danego wzoru i koloru do wype³niania konturów.
SetFillPattern (Wyp: FilIPatternType; Kol: Word)-procedura
Wyp - tablica wzoru wype³niania konturów
Kol - numer koloru (patrz: Sta³e)
wynik: Zdefiniowanie wzoru wype³niania konturów wg wymagañ u¿ytkownika.
Wzór jest zdefiniowany w zmiennej typu FilIPatternType, bêd±cej
o¶mioelementow± tablic± typu Byte. Ka¿dy z elementów tablicy,
zapisany w postaci dwójkowej, okre¶la istnienie b±d¼ brak ¶wiec±cego
punktu na ekranie. Cyfra 1 odpowiada punktowi ¶wiec±cemu, O -
wygaszonemu.
FloodFill (x, y: Integer; Ob: Word)-procedura
x, y - wspó³rzêdne punktu znajduj±cego siê w danym obszarze
Ob - numer koloru konturu
wynik: Wype³nienie (bie¿±cym wzorem) obszaru zawieraj±cego punkt
o podanych wspó³rzêdnych i ograniczenie go konturem w podanym
kolorze.
Arc xy, y: Integer; AlfaP, AlfaK, r: Word)-procedura
x, y - wspó³rzêdne ¶rodka ³uku okrêgu
AlfaP, AlfaK - k±ty (wierzcho³ek w punkcie (x, y)) okre¶laj±ce
pocz±tek i koniec ³uku (w stopniach)
r - promieñ ³uku
wynik: Rysowanie ³uku okrêgu o ¶rodku w punkcie o podanych wspó³rzêdnych
i promieniu r, wyznaczonego przez zadane k±ty.
GetArcCoords (var Info: ArcCoordsType)-procedura
Info - rekord wspó³rzêdnych ³ukowych
wynik: Wspó³rzêdne ³uku narysowanego w wyniku ostatniego wywo³ania
procedury Arc (¶rodek, pocz±tek, koniec).
Circle (x, y: Integer; r: Word)-procedura
x, y - wspó³rzêdne ¶rodka okrêgu
r - promieñ okrêgu
wynik: Rysowanie okrêgu o ¶rodku w punkcie o podanych wspó³rzêdnych
i danym promieniu.
Ellipse (x, y: tnteger; AlfaP, AlfaK, xr, yr: Word)-procedura
x, y - wspó³rzêdne ¶rodka ³uku elipsy
AlfaP, AlfaK - k±ty (wierzcho³ek w punkcie (x, y)) okre¶laj±ce
pocz±tek i koniec ³uku (w stopniach)
xr, yr - po³ówki d³ugo¶ci osi wielkiej i ma³ej
wynik: Rysowanie ³uku elipsy o ¶rodku w punkcie o podanych wspó³rzêdnych
i po³ówkach osi xr i yr, wyznaczonego przez podane k±ty.
FillEllipse (x, y: Integer; xr, yr: Word)-procedura
x, y - wspó³rzêdne ¶rodka elipsy
xr, yr- po³ówki d³ugo¶ci osi wielkiej i ma³ej
wynik: Rysowanie wype³nionej elipsy o zadanym ¶rodku i po³ówkach
osi.
GetAspectRatio (var Xasp, Yasp: Word)-procedura
Xasp, Yasp - rozdzielczo¶æ ekranu w kierunku x i y
wynik: Bie¿±ca rozdzielczo¶æ ekranu.
SetAspectRatio (Xasp, Yasp: Word)-procedura
Xasp, Yasp - rozdzielczo¶æ ekranu w kierunku x i y
wynik: Zmiana rozdzielczo¶ci ekranu w kierunku poziomym i pionowym.
PieSlice (x, y: Integer; AlfaP, AlfaK, r: Word)-procedura
x, y - wspó³rzêdne ¶rodka ³uku okrêgu
AlfaP, AlfaK - k±ty (wierzcho³ek w punkcie (x, y)) okre¶laj±ce
pocz±tek i koniec ³uku (w stopniach)
r - promieñ ³uku
wynik: Rysowanie i wype³nianie wycinka ko³a o ¶rodku w danym
punkcie i promieniu r, wyznaczonym przez zadane k±ty (patrz: Arc).
Sector (x, y: Integer; AlfaP, AlfaK, xr, yr: Word)-procedura
x, y - wspó³rzêdne ¶rodka ³uku elipsy
AlfaP, AlfaK - k±ty (wierzcho³ek w punkcie (x, y)) okre¶laj±ce
pocz±tek i koniec ³uku (w stopniach)
xr, yr - po³ówki d³ugo¶ci wielkiej i ma³ej osi elipsy
wynik: Rysowanie wype³nionego wycinka elipsy o ¶rodku w danym
punkcie i danych po³ówkach osi, wyznaczonego przez zadane k±ty.
SetBkColor (Kol: Word)-procedura
Kol - numer koloru t³a
wynik: Zmiana bie¿±cego numeru koloru t³a na zapamiêtany pod
numerem kol.
SetColor (Kol: Word)-procedura
Kol - numer koloru kursora graficznego
wynik: Zmiana bie¿±cego numeru koloru kursora graficznego na
zapamiêtany pod numerem kol.
GetBkColor: Word-funkcja
wynik: Numer bie¿±cego koloru t³a.
GetColor: Word-funkcja
wynik: Numer bie¿±cego koloru kursora graficznego.
SetAllPalette (var Paleta: PaletteType)-procedura
Paleta - tablica kolorów w palecie
wynik: Zmiana kolorów w palecie wed³ug tablicy (liczba i kolejno¶æ
kolorów).
SetPalette (KolNum: word; Kol: Shortint)-procedura
KolNum - pozycja koloru w palecie
Kol - numer koloru
wynik: Zmiana koloru na danej pozycji w palecie na kolor o numerze
kol.
GetPalette (var Paleta: PaletteType)-procedura
Paleta - tablica kolorów w palecie
wynik: Stosowana paleta kolorów.
GetPaletteSize: Integer-funkcja
wynik: Liczba kolorów bie¿±cej palety.
GetDefaultPalette(var Palette: PaletteType)-procedura
wynik: Dane dotycz±ce standardowej palety kolorów.
GetMaxColor: Word-funkcja
wynik: Najwiêkszy numer koloru dostêpny w danym trybie graficznym.
SetRGBPalette (KNum, Czer, Ziel, Nieb: Integer)-procedura
KNum - pozycja koloru w palecie sterownika IBM8514
Czer, Ziel, Nieb - sk³adowe: czerwona, zielona i niebieska danego
koloru
wynik: Zmiana koloru w palecie sterownika IBM9514 na kolor okre¶lony
³±cznie przez Czer, Ziel, Nieb.
ImageSize (x1, y1, x2, y2: Integer): Word-funkcja
x1, y1 - wspó³rzêdne lewego górnego rogu prostok±tnego obszaru
ekranu
x2, y2 - wspó³rzêdne prawego dolnego rogu prostok±tnego obszaru
ekranu
wynik: Liczba bajtów potrzebnych do przechowania obrazu znajduj±cego
siê w obszarze okre¶lonym danymi wspó³rzêdnymi
. Getlmage(x1, y1, x2, y2: Integer; var Mapa)-procedura
x1, y1 - wspó³rzêdne lewego górnego rogu prostok±tnego obszaru
ekranu
x2, y2 - wspó³rzêdne prawego dolnego rogu prostok±tnego obszaru
ekranu
Mapa - dowolna zmienna
wynik: Przekazanie do komórek pamiêci, zajmowanych przez warto¶æ
zmiennej mapa, obrazu znajduj±cego siê w obszarze okre¶lonym danymi
wspó³rzêdnymi.
Putlmage (x, y: Integer; var Mapa; Tryb: Word)-procedura
x, y - wspó³rzêdne lewego górnego rogu prostok±tnego obszaru
ekranu
Mapa - dowolna zmienna
Tryb - rodzaj operacji na bitach pamiêci ekranu
wynik: Przekazanie na ekran obrazu zapamiêtanego za pomoc± Getlmage
(lewy górny róg ekranu bêdzie siê pokrywa³ z zadanym punktem).
Obraz zostanie odtworzony w sposób okre¶lony przez parametr tryb.
SetTextJustify (Hor, Ver: Word)-procedura
Hor, Ver - po³o¿enie tekstu w kierunku poziomym i pionowym, wzglêdem
pozycji kursora graficznego
wynik: Ustalenie sposobu wyrównywania tekstu w poziomie (na podstawie
Hor} i w pionie (na podstawie Ver).
SetTextStyle (Znak, Kier, Roz: Word)-procedura
Znak - numer kroju pisma
Kier - kierunek wyprowadzania tekstu
Roz - rozmiar znaków
wynik: Tekst wyprowadzony zgodnie z zadanymi parametrami.
GetTextSettings (var Info: TextSettingsType)-procedura
Info - rekord sposobu wyprowadzania tekstu
wynik: Rekord z bie¿±cymi parametrami okre¶laj±cymi krój pisma
i sposób wyprowadzania tekstu.
OutText(Tekst: string)-procedura
Tekst - ci±g znaków (napis)
wynik: Rysowanie danego ci±gu znaków w sposób okre¶lony za pomoc±
procedury SetTextJustify.
OutTextXY (x, y: Integer; Tekst: string)-procedura
x, y - wspó³rzêdne punktu, wzglêdem którego odbywa siê justowanie
Tekst - ci±g znaków (napis)
wynik: Rysowanie danego ci±gu znaków z uwzglêdnieniem justowania
wzglêdem punktu (x, y).
SetUserCharSize (MultX, DivX, MultY, DivY: Word)-procedura
MultX, DivX - licznik i mianownik wspó³czynnika zmiany szeroko¶ci
znaku (MultX/DivX)
MultY, DA/Y - licznik i mianownik wspó³czynnika zmiany wysoko¶ci
znaku (MultY/DivY)
wynik: Zmiana szeroko¶ci i wysoko¶ci znaków w stosunku do przyjmowanych
w procedurze SetTextStyle.
TextHeight (Tekst: string): Word-funkcja
Tekst - ci±g znaków (napis)
wynik: Wysoko¶æ wyprowadzanego ci±gu znaków, podana w punktach
ekranu, z uwzglêdnieniem bie¿±cego sposobu wyprowadzania tekstów.
TextWidth (Tekst: string): Word-funkcja
Tekst - ci±g znaków (napis)
wynik: Szeroko¶æ wyprowadzanego ci±gu znaków, podana w punktach
ekranu, z uwzglêdnieniem bie¿±cego sposobu wyprowadzania tekstów.