WYK ADY Z C, WYK AD7, GRAFIKA


GRAFIKA

Moduł graphics.h zawiera funkcje umożliwiające:

ORGANIZACJA I ZARZĄDZANIE EKRANEM

W zależności od posiadanej karty, różna może być rozdzielczość i liczba kolorów.

Schemat programu

0x08 graphic

Inicjowanie grafiki

void far initgraph(int *sterownik, int *tryb, const char *ścieżka);

sterownik - wskaźnik zmiennej zawierającej liczbę określającą sterownik

Stałe definiujące sterowniki:

DETECT, CGA, MCGA, EGA, EGA64, EGAMONO, IBM8514, HERCMONO, ATT400, VGA, PC3270, CURRENT_DRIVER=-1

tryb - wskaźnik zmiennej zawierającej numer trybu graficznego dla danego sterownika

Stałe trybów graficznych ekranu:

CGAC0 = 0, /*320x200 paleta 0; 1 strona*/

.

.

.

VGAL0 = 0, /*640x200 16 kolorów; 4 strony*/

VGAMED =1, /*640x350 16 kolorów; 2 strony*/

VGAHI =2, /*640x480 16 kolorów; 1 strona*/

.

.

.

ścieżka - łańcuch zawierający ścieżkę do skorowidza ze sterownikami grafiki (pliki.BGI)

Informacje o sterowniku i trybie graficznym

void far detectgraph(int *sterownik, int *tryb);

int ster, tryb;

detectgraph(&ster, &tryb);

initgraph(&ster,&tryb,”C:\\BORLAND\\BGI”);

Zamknięcie trybu graficznego:

void far closegraph(void);

Przywracanie trybu tekstowego aktualnego w momencie inicjowania grafiki:

void far restorecrtmode(void);

Zmiana trybu tekstowego na graficzny

void far setgraphmode(int tryb);

Okna graficzne

0x08 graphic

Wartości maksymalne dla ekranowych współrzędnych X i Y

int far getmaxx(void);

int far getmaxy(void);

0x08 graphic
Nowe parametry okna

void far setviewport(int left, int top, int right, int bottom, int clip);

clip - różny od 0, wszystkie operacje odnoszą się do zdefiniowanego okna

Czyszczenie okna

void far cleardevice(void); czyści cały ekran, kursor na 0,0 (abs)

void far clearviewport(void); czyści aktualne okno, kursor na 0,0 (wzg)

Błędy

int far graphresult(void); - kod ostatnio popełnionego błędu

grOK =0, /*brak błędu*/

grNoInitGraph =-1, /*nie zainicjowano grafiki*/

grNotDetected =-2, /*nie wykryto karty grficznej*/

.

.

.

char* grapherrormsg(int błąd);

wskaźnik do łańcucha zawierającego komunikat o błędzie o podanym kodzie

int ster, tryb, blad;

ster=DETECT;

initgraph(&ster,&tryb,””);

blad=graphresult();

if(blad!=grOK)

{

printf(”Grafika nie jest OK: %s \n”,grapherrormsg(blad);

exit(1);

}

else ...

Kolory

void far setbkcolor(int kolor); - ustalenie koloru tła

void far setcolor(int kolor); - ustala kolor rysowania

Stałe kolorów:

BLACK, /*ciemne kolory*/

BLUE,

GREEN,

CYAN,

RED,

MAGENTA,

BROWN,

LIGHTGRAY, /*jasne kolory*/

DARKGRAY,

LIGHTBLUE,

LIGHTGREEN,

LIGHTCYAN,

LIGHTRED,

LIGHTMAGENTA,

YELLOW,

WHITE

Funkcje rysowania linii:

void far moverel(int dx, int dy); - przesunięcie o wskaźnik dx, dy

void far moveto(int x, int y); - przesunięcie do punktu x, y

void far setlinestyle(int styl, unsigned wzor, int grubosc); - ustalenie aktualnego rodzaju linii

Stałe rodzajów linii (styl):

SOLID_LINE =0, /*linia ciągła*/

DOTTED_LINE =1, /*linia kropkowana*/

CENTER_LINE =2, /*linia symetrii*/

DASHED_LINE =3, /*linia przerywana*/

USERBIT_LINE =4 /*linia definiowana przez użytkownika*/

wzór - podajemy, gdy styl został ustawiony na 4

grubość

NORM_WIDTH =1,

THICK_WIDTH =3

void far putpixel(int x, int y int kolor); - rysuje punkt o współrzędnych (x, y) w podanym kolorze

void far line(int x1, int y1, int x2, int y2); - rysuje linię łączącą punkty (x1, y1) i (x2, y2); wskaźnik zostaje w miejscu

void far linerel(int dx, int dy); - rysuje linię od aktualnej pozycji do punktu oddalonego o (dx, dy); wskaźnik ustawiony w nowym miejscu

void far lineto(int x, int y); - rysuje linię od aktualnej pozycji do punktu o współrzędnych (x, y); wskaźnik ustawiony na punkt (x, y)

0x08 graphic
void far rectangle(int left, int top, int right, int bottom); - rysuje prostokąt

void far drawpoly(int numpoints, const int far *polypoints); - rysuje linię łamaną o numpoints wierzchołkach; polypoints powinien wskazywać tablicę liczb całkowitych zawierającą współrzędne punktów x1, y1, x2, y2 ... (wielokąty n+1 współrzędnych nwsp=0wsp).

void far circle (int x, int y, int promień); - rysuje okrąg o podanym promieniu i środku w punkcie (x, y)

void far arc(int x, int y, int stangle, int endangle, int promień); - łuk o środku (x, y) podanym promieniu od kąta stangle do kąta endangle

void far ellipse(int x, int y, int stangle, int endangle, int promienx, int promieny); - kreśli eliptyczny łuk

Wypełnianie figur:

void far setfillstyle(int wzor, int kolor); - ustalenie wzorca i koloru wypełnienia

Predefiniowane wzorce:

EMPTY_FILL, /*wypełnienie kolorem tła*/

SOLID_FILL, /*wypełnienie kolorem ustalonym*/

0x08 graphic
LINE_FILL, /*wypełnienie liniami poziomymi*/

0x08 graphic
LTSLASH_FILL, /*wypełnienie liniami ukośnymi*/

.

.

.

USER_FILL /*wypełnienie wzorcem zdefiniowanym przez użytkownika*/

void far setfillpattern(const char *upattern, int kolor); - pozwala zdefiniować wzorzec przez użytkownika; parametr upattern wskazuje tablicę ośmiu bajtów definiujących wzorzec

np. char tab[8]={195,195,0,0,0,0,195,195};

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
195 - 11000011

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
195 - 11000011

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0 - 00000000

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0 - 00000000

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0 - 00000000

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0 - 00000000

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
195 - 11000011

195 - 11000011

void far bar(int left, int top, int right, int bottom); - wypełnienie prostokąta bez rysowania konturów

void far bar3d(int left, int top, int right, int bottom, int depth, int topflag); - rysuje prostopadłościan; wypełnia przednią ścianę

0x08 graphic
topflag =0 nie rysuje górnej powierzchni; można umieszczać jeden prostopadłościan na drugim

void far fillpoly(int numpoints, const int far *polypoints); - rysuje linię łamaną i wypełnia ją (jeśli nie zamknięta to łączy punkt pierwszy z ostatnim)

void far pieslice(int x, int y, int stangle, int endangle, int promień); - rysuje i wypełnia wycinek koła

void far sector(int x, int y, int stangle, int endangle, int promieńx, int promieńy); - rysuje i wypełnia wycinek elipsy

void far fillellipse(int x, int y, int promieńx, int promieńy); - rysuje i wypełnia elipsę

void far floodfill(int x, int y, int kolor); - wypełnia obszar otoczony konturem w podanym kolorze; (x, y) - współrzędne punktu wewnątrz obszaru

Teksty w grafice

void far settextstyle(int font, int kierunek, int rozmiar); - ustala krój, kierunek i rozmiar tekstu

font - stałe określające krój pisma

DEFAULT_FONT =0,

TRIPLEX_FONT =1,

SMALL_FONT =2,

SANS_SERIF_FONT =3,

GOTHIC_FONT =4,

.

.

.

kierunek wyprowadzanego tekstu

HORIZ_DIR 0 /*od lewej do prawej*/

VERT_DIR 1 /*z góry na dół*/

rozmiar znaków od 1 do 10

void far settextjustify(int poziom, int pion); - służy do justowania tekstu

poziom

LEFT_TEXT =0, /*wyrównanie do lewego marginesu*/

CENTER_TEXT =1, /*środkowanie*/

RIGHT_TEXT =2, /*wyrównanie do prawego marginesu*/

pion

BOTTOM_TEXT =0, /*wyrównanie do dolnego marginesu*/

CENTER_TEXT =1, /*środkowanie w pionie*/

TOP_TEXT =2, /*wyrównanie do górnego marginesu*/

void far outtext(const char *łańcuch); - wyświetlenie tekstu względem aktualnej pozycji wskaźnika

void far outtextxy(int x, int y, const char *łańcuch); - wyświetlenie tekstu względem punktu (x, y)

zainicjowanie grafiki

operacje w trybie graficznym

zakończenie grafiki

Okno graficzne

Xabs

Yabs

Ywzg

Xwzg

0,0

xmax, ymax

left, top

right, bottom

right, bottom

left, top

left, top

right, bottom

depth

wypełnienie wzorem i kolorem



Wyszukiwarka

Podobne podstrony:
ZS wyk éad7
Komunikologia wyk ad7 2009 Komunikat Kod Kana 3
wyk ad7
wyk ady z etyki 1 5 internet
ZPKB wyk ady AK
fizjo - wyk+éady, Leśnictwo UP POZNAŃ 2013, Fizjologia roślin drzewiastych
DI Wyk ady (prof K Marcinek) [2006 2007]
Techniki wytwarzania-drewno, Ukw, II Lic, Drewno, Wyk�?ady
Analiza i przetwarzanie obraz w W.1, !!!Uczelnia, wsti, materialy, III SEM, Wyk ady
biologia wyk-ady sem 3, Ochrona środowiska, OŚ POLSL, INŻ, SEM. 3, Biologia, Wykłady
egz wyk+éady, Filozofia, Rok IV, polityczna, Materiał
GiH wyk ady
WYK ADY Z C, WYK AD6, PLIKI:
PM wyk ady 4 rok JM choroby odtytoniowe
WYK ADY FILOZOFIA, INNE KIERUNKI, filozofia

więcej podobnych podstron