Grafika Komputerowa. Algorytmy rastrowe

Podobne dokumenty
Grafika komputerowa Wykład 2 Algorytmy rastrowe

WYKŁAD 3 WYPEŁNIANIE OBSZARÓW. Plan wykładu: 1. Wypełnianie wieloboku

Przetwarzanie i Kompresja Obrazów. Segmentacja

Grafika Komputerowa. Metoda śledzenia promieni

Wprowadzenie do grafiki maszynowej. Wprowadzenie do algorytmów obcinania i okienkowania

Analiza Matematyczna. Teoria Liczb Rzeczywistych

Grafika Komputerowa. Teksturowanie

Grafika Komputerowa. Wprowadzenie

Analiza Matematyczna. Pochodne wyższych rzędów. Wzór Taylora

Analiza Matematyczna. Zastosowania Całek

Przetwarzanie i Kompresja Obrazów. Morfologia matematyczna

Krzywe stożkowe. Algebra. Aleksander Denisiuk

Geometria Analityczna w Przestrzeni

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do

Algorytmy grafiki rastrowej. Mirosław Głowacki Wykład z Grafiki Komputerowej

Grafika 2D. Rasteryzacja elementów wektorowych. opracowanie: Jacek Kęsik

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Analiza Matematyczna. Własności funkcji różniczkowalnych

Algorytmy grafiki rastrowej. Mirosław Głowacki Wykład z Grafiki Komputerowej

Analiza Matematyczna. Właściwości funkcji ciagłych

G i m n a z j a l i s t ó w

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel

Obcinanie grafiki do prostokąta

FUNKCJA LINIOWA, OKRĘGI

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Pozostała algebra w pigułce

W wielu obliczeniach w matematyce bądź fizyce wykonanie niektórych kroków zależy od spełnienia warunku.

EGZAMIN MATURALNY Z MATEMATYKI

KGGiBM GRAFIKA INŻYNIERSKA Rok III, sem. VI, sem IV SN WILiŚ Rok akademicki 2011/2012

Przetwarzanie i Kompresja Obrazów. Przekształcenia geometryczne

Egzamin maturalny z matematyki Poziom podstawowy ZADANIA ZAMKNIĘTE. W zadaniach 1-25 wybierz i zaznacz na karcie odpowiedzi poprawną odpowiedź.

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Grafika komputerowa Wykład 9 Algorytmy wyznaczania obiektów zasłonietych

Algebra linowa w pigułce

Wektory. Algebra. Aleksander Denisiuk. Polsko-Japońska Wyższa Szkoła Technik Komputerowych Wydział Informatyki w Gdańsku ul. Brzegi Gdańsk

EGZAMIN MATURALNY Z MATEMATYKI MAJ 2013 POZIOM PODSTAWOWY. Czas pracy: 170 minut. Liczba punktów do uzyskania: 50 WPISUJE ZDAJĄCY

Rysowanie precyzyjne. Polecenie:

EGZAMIN MATURALNY Z MATEMATYKI MAJ 2013 POZIOM PODSTAWOWY. Czas pracy: 170 minut. Liczba punktów do uzyskania: 50 WPISUJE ZDAJĄCY

WYKŁAD 3. Przykłady zmian w obrazie po zastosowaniu Uniwersalnego Operatora Punktowego

PRÓBNY EGZAMIN MATURALNY

PRÓBNY EGZAMIN MATURALNY

ZBIÓR ZADAŃ Z MATEMATYKI DLA KLASY II GIMNAZJUM W ZAKRESIE WYMAGAŃ KONIECZNYCH I PODSTAWOWYCH

1 Wstęp teoretyczny. Temat: Obcinanie odcinków do prostokąta. Grafika komputerowa 2D. Instrukcja laboratoryjna Prostokąt obcinający

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

EGZAMIN MATURALNY Z MATEMATYKI

Algorytmy i struktury danych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Próbny egzamin maturalny z matematyki Poziom rozszerzony

LUBELSKA PRÓBA PRZED MATURĄ

Utworzenie funkcji użytkownika w Visual Basic

if (wyrażenie ) instrukcja

Analiza Matematyczna. Przeglad własności funkcji elementarnych

Wykresy i interfejsy użytkownika

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Informatyk i matematyk: dwa spojrzenia na jedno zadanie (studium przypadku) Krzysztof Ciebiera, Krzysztof Diks, Paweł Strzelecki

Grafika komputerowa Wykład 6 Krzywe, powierzchnie, bryły

PRÓBNY EGZAMIN MATURALNY Z NOWĄ ERĄ

Visual Basic dla AutoCAD

FUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;

XI Olimpiada Matematyczna Gimnazjalistów

Próbny egzamin maturalny z matematyki Poziom rozszerzony

Modelowanie i wizualizowanie 3W-grafiki. Transformacje. Aleksander Denisiuk. denisjuk@matman.uwm.edu.pl

Internetowe Ko³o M a t e m a t yc z n e

Geometria wykreślna. 5. Obroty i kłady. Rozwinięcie wielościanu. dr inż. arch. Anna Wancław. Politechnika Gdańska, Wydział Architektury

Reprezentacja i analiza obszaru

Troszkę przypomnienia

1 Wprowadzenie do algorytmiki

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 8 AiR III

EGZAMIN MATURALNY Z MATEMATYKI MAJ 2013 POZIOM PODSTAWOWY. Czas pracy: 170 minut. Liczba punktów do uzyskania: 50 WPISUJE ZDAJĄCY

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

VII Olimpiada Matematyczna Gimnazjalistów

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI

Maxima i Visual Basic w Excelu

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?

Matematyczne Podstawy Informatyki

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI

POZIOM PODSTAWOWY - GR 1 Czas pracy 170 minut

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Kontrola przebiegu programu

Technologie Informatyczne Wykład VII

Grafika komputerowa I. Przemyslaw Kiciak

Podstawy Programowania Algorytmy i programowanie

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

EGZAMIN MATURALNY Z MATEMATYKI 8 MAJA 2015 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 9:00. Czas pracy: 180 minut. Liczba punktów do uzyskania: 50

LI Olimpiada Matematyczna Rozwiązania zadań konkursowych zawodów stopnia trzeciego 3 kwietnia 2000 r. (pierwszy dzień zawodów)

EGZAMIN MATURALNY Z MATEMATYKI 8 MAJA 2015 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 9:00. Czas pracy: 180 minut. Liczba punktów do uzyskania: 50

Rasteryzacja (ang. rasterization or scan-conversion) Grafika rastrowa. Rysowanie linii (1) Rysowanie piksela

PRÓBNY EGZAMIN MATURALNY

Algebra z geometrią analityczną zadania z odpowiedziami

PRÓBNY EGZAMIN MATURALNY

Obliczenie pola wieloboku na podstawie współrzędnych wierzchołków

1. Liczby zespolone i

PRÓBNY EGZAMIN MATURALNY

Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle.

INSTRUKCJA ITERACYJNA REPEAT. repeat Instrukcja_1; Instrukcja_2; {... } Instrukcja_N; until wyr ; INSTRUKCJA ITERACYJNA WHILE

Transkrypt:

Grafika Komputerowa. Algorytmy rastrowe Aleksander Denisiuk Polsko-Japońska Akademia Technik Komputerowych Wydział Informatyki w Gdańsku ul. Brzegi 55 80-045 Gdańsk Ò Ù Ô º ÙºÔÐ 1 / 23

Algorytmy rastrowe Najnowsza wersja tego dokumentu dostępna jest pod adresem ØØÔ»»Ù Ö ºÔ º ÙºÔл Ò Ù 2 / 23

3 / 23

Założenia (x,y) współrzędne abstrakcyjne, liczby rzeczywiste (i,j) współrzędne ekranowe, liczby całkowite x 2 > x 1,y 2 y 1 y 2 y 1 x 2 x 1 Zaokr aglenie:i 1 = round(x 1 ),i 2 = round(x 2 ),j 1 = round(y 1 ), j 2 = round(y 2 ) 4 / 23

Algorytm y(i) = j 1 + i i 1 i 2 i 1 (j 2 j 1 ) j = round(y) Kod: Wejście: (i 1,j 1 ) poczatek odcinka,(i 2,j 2 ) koniec odcinka, i 2 > i 1,j 2 j 1,j 2 j 1 i 2 i 1 Wynik: Odcinek został wyświetlony m j 2 j 1 i 2 i 1 writepixel(i 1,j 1 ) y j 1 fori = i 1 +1toi 2 do y y +m j round(y) writepixel(i,j) end for 5 / 23

Kumulacja przyrostuy na każdym kroku do przyrostuy dodaje sięm przechodzimy o jeden piksel w górę, jejeżi przyrost przekroczy1/2 6 / 23

Algorytm 2 Wejście: (i 1,j 1 ) poczatek odcinka,(i 2,j 2 ) koniec odcinka, i 2 > i 1,j 2 j 1,j 2 j 1 i 2 i 1 Wynik: Odcinek został wyświetlony m j 2 j 1 i 2 i 1 b 0 writepixel(i 1,j 1 ) j j 1 fori = i 1 +1toi 2 do b b+m ifb > 1 2 then j j +1 b b 1 end if writepixel(i,j) end for 7 / 23

Eliminacja liczb rzeczywistych przyrost jest wielokrotnościam = j 2 j 1 i 2 i : 1 b = k j 2 j 1 i 2 i 1 b < 1 2 2k(j 2 j 1 ) < i 2 i 1 zamieniamy przyrost na przyrost całkowity przyrost całkowity na każdym kroku zwiększa się o2 j = 2(j 2 j 1 ) przechodzimy na wyższy poziom wj, jeżeli przyrost całkowity przekroczy(i 2 i 1 ) 8 / 23

Algorytm Bresenhama Wejście: (i 1,j 1 ) poczatek odcinka,(i 2,j 2 ) koniec odcinka, i 2 > i 1,j 2 j 1,j 2 j 1 i 2 i 1 Wynik: Odcinek został wyświetlony m 2(j 2 j 1 ) b 0 writepixel(i 1,j 1 ) j j 1 P i 2 i 1 fori = i 1 +1toi 2 do b b+m ifb > P then j j +1 b b 2P end if writepixel(i,j) end for 9 / 23

Osiem symetrii okręgu x 2 +y 2 = R 2 jeżeli(x,y) leży na okręgu, to (y,x),(x, y),(y, x),( x,y),( y,x),( x, y), ( y, x) też leża na okręgu 10 / 23

Wybór następnego piksela Zaczynamy od wierzchołka(0,r) Analizujemyf(x,y) = 4 ( (x+1) 2 +(y 1 2 )2 R 2) jeżelif(x,y) > 0 to przechodzimy w prawo i w dół jeżelif(x,y) < 0 to przechodzimy tylko w prawo f(x+1,y) = f(x,y)+8x+12 f(x+1,y 1) = f(x,y)+8x 8y +20 f(0,r) = 5 4R 11 / 23

Algorytm Wejście: Środek okręgu jest w(0,0), promieńr N Wynik: Okrag został wyświetlony i 0,j R,f 5 4R writepixel(i,j) whilei j do iff > 0 then f f +8i 8j +20 j j 1 else f f +8i+12 end if i i+1 writepixel(i,j) end while 12 / 23

x 2 a 2 + y2 b 2 = 1 Zaczynamy od wierzchołka(0,b) ( Analizujemyf(x,y) = 4a 2 b 2 (x+1) 2 + (y 1 a 2 2 )2 b 2 ) 1 jeżelif(x,y) > 0 to przechodzimy w prawo i w dół jeżelif(x,y) < 0 to przechodzimy tylko w prawo f(x+1,y) = f(x,y)+8b 2 x+12b 2 f(x+1,y 1) = f(x,y)+8b 2 x 8a 2 y +12b 2 +8a 2 f(0,b) = 4b 2 4a 2 b+a 2 13 / 23

Zmiana kierunku Jeżelib 2 x > a 2 y, to zmienia się ( kierunek ratserizacji Analizujemyg(x,y) = 4a 2 b 2 (x+ 1 ) 2 )2 + (y 1)2 1 a 2 b 2 jeżelig(x,y) > 0 to przechodzimy w prawo i w dół jeżelig(x,y) < 0 to przechodzimy tylko w dół g(x,y) = f(x,y) 4b 2 x 3b 2 4a 2 y +3a 2 g(x,y 1) = g(x,y) 8a 2 y +12a 2 g(x+1,y 1) = g(x,y)+8b 2 x 8a 2 y +8b 2 +12a 2 14 / 23

Algorytm Wejście: Środek elipsy jest w(0,0), promieniea,b N Wynik: Elipsa została wyświetlona i 0,j b,f 4b 2 4a 2 b+a 2 writepixel(i,j) whileb 2 i a 2 j do iff > 0 then f f +8b 2 i 8a 2 j +12b 2 +8a 2 j j 1 else f f +8b 2 i+12b 2 end if i i+1 writepixel(i,j) end while 15 / 23

Algorytm. Zmiana kierunku g f 4b 2 i 3b 2 4a 2 j +3a 2 whilej 0 do ifg 0 then g g +8b 2 i 8a 2 j +8b 2 +12a 2 i i+1 else g g 8a 2 j +12a 2 end if j j 1 writepixel(i,j) end while 16 / 23

Przybliżenie przez łamana Metoda Eulera dla równania ẋ = f 1 (x,y), ẏ = f 2 (x,y), x(0) = x 0, y(0) = y 0. 17 / 23

Wypełnienie wieloboku 18 / 23

Przegladanie liniami poziomymi (Scanline interpolation) Wejście: lista krawędzi wieloboku{ [ (x i,y i ),(x i+1,y i+1 ) ] }, i = 0,...,n,x n = x 0,y n = y 0 Wynik: wypełniono wnętrze wieloboku uporzadkuj wierzchołki w krawędziach abyy i < y i+1, usuń krawędzie poziome uporzadkuj krawędzie w kolejności rosn TAK (Tabela Aktywnych Krawęzi) y y i pierwszej krawędzi acychy i repeat TAK TAK {krawędzie, których pierwszy koniec jest na linii y} Opracowanie poziomuy y ++; TAK TAK \{krawędzie, których drugi koniec jest na liniiy} untiltak = 19 / 23

Opracowanie poziomuy Wejście: TAK (zawiera parzysta ilość elementów) Wynik: wypełniony poziomy for all krawędzi ztka do Oblicz współrzędnaxpunktu przecięcia z linia poziom end for PosortujTKA w kolejności rosnacych współrzędnychxpunktów przecięcia for all kolejnych par krawędzi ztka do rysuj odcinek poziomy na liniiy, między ich punktami przecięcia z liniay; end for ay 20 / 23

Wypełnianie przez zalewanie obszar jest czterospójny brzeg obszaru jest ośmiospójny 21 / 23

Procedura rekurencyjna Wejście: punkt(i,j) zawiera się w obszarze Wynik: zamalowany cały obszar if niezamalowany wewnętrzny piksel(i,j) then Zamaluj(i,j) Wypełnij poczynaj Wypełnij poczynaj Wypełnij poczynaj Wypełnij poczynaj end if ac z(i 1,j) ac z(i,j 1) ac z(i+1,j) ac z(i,j +1) 22 / 23

Stos zawieszonych zadań Wejście: punkt(i,j) zawiera się w obszarze Wynik: zamalowany cały obszar StosS zamaluj(i,j);s S (i,j) whiles do S S \(i,j) if niezamalowany wewnętrzny piksel(i 1,j) then zamaluj(i 1,j);S S (i 1,j) end if if niezamalowany wewnętrzny piksel(i,j 1) then zamaluj(i,j 1);S S (i,j 1) end if if niezamalowany wewnętrzny piksel(i+1,j) then zamaluj(i 1,j); StosS S (i+1,j) end if if niezamalowany wewnętrzny piksel(i,j +1) then zamaluj(i 1,j);S S (i,j +1) end if end while 23 / 23