Laboratorium nr 4 1/2 Grafika Komputerowa 2D Instrukcja laboratoryjna Temat: Rysowanie okręgów i wypełnianie Przygotował: dr inż. Grzegorz Aukawski, mgr inż. Maciej Lasota 4 1) Rysowanie okręgów 1.1) Algorytm podstawowy Optymalny krok pętli rysującej odcinek (aby nie było przerw między punktami okręgu): 1 ą = R Kąt jednostkowy w radianach 1.2) Ośmiokrotna symetria 1 Algorytm podstawowy ośmiokrotnej symetrii polega na rysowaniu tylko okręgu. 8 Reszta punktów wyznaczana jest przez zamianę współrzędnych miejscami i zmianę znaku. Laboratorium nr 4 2/2 1.3) Wypełnianie metodą rekurencyjną Wypełnianie rozpoczynamy od punktu wewnątrz wielokąta. Funkcja wywołuje samą siebie dla pikseli wokół bieżącego punktu. Kroki algorytmu: void Wypełnij(C); (1) Zmień kolor punktu C; (2) Dla każdego N = 0, 2, 4, 6 wykonuj: Jeżeli kolor_punktu pN `"C i kolor_punktu pN `"kolor_krawędzi Wypełnij(pN); (3) Koniec. UWAGA! Funkcja używa bardzo dużo pamięci (stos). Można to poprawić przez zamianę na funkcję iteracyjną korzystającą ze stosu Przydatne funkcje: Nazwa funkcji Parametry Opis Funkcja ustawia piksel o danym putpixel void putpixel(BITMAP *bmp, int x, int y, int color) kolorze we wskazanym punkcie bitmapy Funkcja pobiera kolor getpixel int getpixel(BITMAP *bmp, int x, int y); wskazanego piksela bitmapy