plik


ÿþLaboratorium nr 1 1/3 Grafika Komputerowa 2D Instrukcja laboratoryjna Temat: Wprowadzenia do biblioteki graficznej Allegro PrzygotowaB: dr in|. Grzegorz Aukawski, mgr in|. Maciej Lasota 1 1) Wprowadzenie do biblioteki graficznej Allegro Allegro http://alleg.sourceforge.net/ jest darmow bibliotek rozpowszechnian na zasadach licencji Gift-Ware z peBnym darmowym kodem zródBowym. Biblioteka ta zostaBa napisana w caBo[ci w jzyku C (z dodatkowymi wstawkami Asemblera) w 1996 roku przez Shawn Hargreaves i wykorzystywana jest gBównie do tworzenia animacji oraz gier. Biblioteka Allegro jest w peBni przeno[na, wspiera wikszo[ obecnie dostpnych platform systemowych DOS/Windows/UNIX/Linux/MacOS/QNX/BeOS. Allegro posiada szereg funkcji sBu|cych do obsBugi grafiki, dzwiku, urzdzeD peryferyjnych, czasu. Zapewnia staBo i zmiennoprzecinkowe operacje matematyczne, funkcje 2D/3D operacje na plikach oraz funkcje tworzenia GUI. Istnieje dodatkowa biblioteka AllegroGL implementujca OpenGL do wykorzystania z bibliotek Allegro. 1.1) Organizacja ekranu X (0,0) Obszar widoczny Y Obszar niewidoczny (wirtualny), w pamici karty graficznej W trybie graficznym biblioteki Allegro programista ma mo|liwo[ kontroli pojedynczych pikseli ekranu (tzw. Bitmap y). Niezale|nie od wybranego trybu, wspóBrzdne pikseli wskazywane s za pomoc wspóBrzdnych X (w poziomie) i Y (w pionie). Pocztek ukBadu wspóBrzdnego znajduje si w lewym górnym rogu. Laboratorium nr 1 2/3 1.2) Inicjalizacja biblioteki oraz wybór trybu graficznego W celu inicjalizacji biblioteki Allegro, na pocztku programu wywoBujemy funkcj: allegro_init(); Tryb graficzny inicjujemy za pomoc funkcji: set_gfx_mode(int driver, int w, int h, int v_w, int v_h); Pierwszy parametr okre[la sposób inicjowania trybu graficznego, kolejne dwa parametry okre[laj wysoko[ oraz szeroko[ obszaru widocznego na ekranie monitora. Ostatnie dwa parametry okre[laj minimalne rozmiary obszaru wirtualnego w pamici karty graficznej standardowo ustawiamy na 0. GFX_AUTODETECT biblioteka Allegro sama wykrywa i ustawia tryb graficzny, GFX_AUTODETECT_FULLSCREEN tryb peBnoekranowy, GFX_AUTODETECT_WINDOWED Driver tryb okienkowy, GFX_SAFE tryb bezpieczny, GFX_TEXT tryb tekstowy (80 x 25). W Szeroko[ obszaru widocznego H Wysoko[ obszaru widocznego V_W Minimalna szeroko[ obszaru wirtualnego V_H Minimalna wysoko[ obszaru wirtualnego Przed zakoDczeniem programu nale|y zakoDczy zainicjalizowan bibliotek Allegro, poprzez wywoBanie funkcji: allegro_exit(); PrzykBad 1: int main() { allegro_init(); if (set_gfx_mode(GFX_AUTODETECT, 320, 200, 0, 0) != 0) { allegro_message("Problem z ustawieniem trybu graficznego\n"); } // kod programu allegro_exit(); return 0; } END_OF_MAIN(); Laboratorium nr 1 3/3 1.3) Organizacja obszaru widocznego Obszar widoczny w bibliotece Allegro opisywany jest za pomoc struktury BITMAP. Dwie najwa|niejsze skBadowe tej struktury to  w maksymalna szeroko[ (X) oraz  h maksymalna wysoko[ (Y). WywoBanie funkcji set_gfx_mode() tworzy automatycznie w pamici karty graficznej obszar wirtualny oraz obszar widoczny, w zale|no[ci od parametrów jak zostaBy podane podczas wywoBania funkcji. Automatycznie tworzona jest te| zmienna  screen bdca wskaznikiem na struktur BITMAP. 1.4) Najwa|niejsze funkcje rysujce Nazwa funkcji Parametry Opis Funkcja ustawia piksel o putpixel void putpixel(BITMAP *bmp, int x, int y, int color) danym kolorze we wskazanym punkcie bitmapy Funkcja pobiera kolor getpixel int getpixel(BITMAP *bmp, int x, int y; wskazanego piksela bitmapy Funkcja ustawia i zwraca makecol int makecol(int r, int g, int b) kolor, podany w postaci RGB (0 -255) Funkcja czy[ci obszar clear_bitmap void clear_bitmap(BITMAP *bitmap) widoczny i ustawia kolor obszaru RGB(0,0,0) Funkcja rysujca okrg we void circle(BITMAP *bmp, int x, int y, int radius, int circle wskazanym punkcie, color) promieniu i kolorze void circlefill(BITMAP *bmp, int x, int y, int radius, Funkcja rysujca wypeBniony circlefill int color) okrg Funkcja rysujca prostokt o void rect(BITMAP *bmp, int x1, int y1, int x2, int y2, lewym górnym rogu w punkcie rect int color) (x1,y1) i prawym dolnym rogu (x2,y2) void rectfill(BITMAP *bmp, int x1, int y1, int x2, int Funkcja rysujca wypeBniony rectfill y2, int color) prostokt Funkcja rysujca trójkt void triangle(BITMAP *bmp, int x1, y1, x2, y2, x3, triangle midzy trzema podanymi y3, int color) punktami Funkcja wypeBniajca zamknity obszar danym floodfill void floodfill(BITMAP *bmp, int x, int y, int color) kolorem, wewntrz którego znajduje si punkt (x,y) Funkcja rysujca lini miedzy void line(BITMAP *bmp, int x1, int y1, int x2, int y2, line dwoma podanymi punktami, o int color) danym kolorze

Wyszukiwarka

Podobne podstrony:
Laboratorium grafika2D 4
Laboratorium grafika3D 4
Laboratorium grafika2D 7
Laboratorium grafika3D 7
Laboratorium grafika2D 3
Laboratorium grafika3D 3
Laboratorium grafika3D 5
Laboratorium grafika3D 6
Laboratorium grafika3D 2
Laboratorium grafika2D 2
Laboratorium grafika2D 6
Laboratorium grafika3D 1
Rola laboratoriów w świetle wymagań systemów zarządzania jakoscią
Laboratorium 3
Arch grafika osnovi kompozicii grigoryan

więcej podobnych podstron