Grafika Komputerowa i wizualizacja

Slides:



Advertisements
Podobne prezentacje
BADANIE KORELACJI ZMIENNYCH
Advertisements

Sympleksy n=2.
Równanie różniczkowe zupełne i równania do niego sprowadzalne
Algorytmy rastrowe Algorytmy konwersji Rysowanie odcinków
Rozdzielczość obrazu bitowego
Badania operacyjne. Wykład 2
Wykład no 9.
Filip Starzyński Grafika 2d - Podstawy Filip Starzyński
Materiały pochodzą z Platformy Edukacyjnej Portalu
ALGORYTMY GEOMETRYCZNE.
Okrąg opisany na trójkącie - jego konstrukcje i własności
Eliminacja powierzchni niewidocznych Wyznaczanie powierzchni widocznych Które powierzchnie, krawędzie i punkty są widoczne ze środka rzutowania (albo wzdłuż.
Usuwanie zakłóceń Rysowanie w przestrzeni dyskretnej powoduje powstanie w obrazie zakłóceń (Aliasing) Metody odkłócania (Antyaliasing) zwiększenie rozdzielczości.
Geometria obrazu Wykład 13
Te figury nie są symetryczne względem pewnej prostej
Te figury są symetryczne względem pewnego punktu
Napory na ściany proste i zakrzywione
Temat: Tor ruchu a droga.. 2 Tor ruchu to linia, po jakiej poruszało się ciało. W zależności od kształtu toru ruchu ciała wszystkie ruchy dzielimy na:
Układ równań stopnia I z dwoma niewiadomymi
Optyka geometryczna.
Grafika wektorowa i bitmapa
Rzut równoległy Rzuty Monge’a - część 1
Wykład 11. Podstawy teoretyczne odwzorowań konforemnych
Podstawowe pojęcia i problemy związane z przetwarzaniem plików graficznych.
Warsztaty programowania w języku Python
Funkcja liniowa Układy równań
Ocena przydatności algorytmu – czas działania (złożoność czasowa)
Symetrie.
Trójkąty.
GRAFIKA KOMPUTEROWA Co mamy z reklamy?
GRAFIKA W REKLAMIE.
Rzut cechowany dr Renata Jędryczka
Zakładamy a priori istnienie rozwiązania α układu równań.
Wykład 2. Pojęcie regularnego odwzorowania powierzchni w powierzchnię i odwzorowania kartograficznego Wykład 2. Pojęcie regularnego odwzorowania powierzchni.
TWORZYMY OKRĄG Z PŁASZCZYZNY STOŻKOWEJ TWORZYMY OKRĄG Z PŁASZCZYZNY STOŻKOWEJ.
II. Matematyczne podstawy MK
Opracowała: Iwona Kowalik
Figury w układzie współrzędnych.
Funkcja liniowa ©M.
Sterowanie – metody alokacji biegunów II
MECHANIKA I WYTRZYMAŁOŚĆ MATERIAŁÓW
GRAFIKA WEKTOROWA I RASTROWA
Optyka geometryczna Dział 7.
Materiały pochodzą z Platformy Edukacyjnej Portalu
FUNKCJE Opracował: Karol Kara.
MECHANIKA 2 Wykład Nr 10 MOMENT BEZWŁADNOŚCI.
Elementy geometrii analitycznej w przestrzeni R3
Wypełnianie obszaru.
FUNKCJE Pojęcie funkcji
RUCH KULISTY I RUCH OGÓLNY BRYŁY
Rozwiązywanie układów równań liniowych różnymi metodami
Grafika i komunikacja człowieka z komputerem
Grafika i komunikacja człowieka z komputerem
Grafika i komunikacja człowieka z komputerem
Informatyka +.
Grafika i komunikacja człowieka z komputerem
FRAKTALE FIGURY LISSAJOUSA Magdalena Szorc
Grafika rastrowa - parametry
Grafika komputerowa.
Grafika komputerowa – Grafika wektorowa i rastrowa
GRAFIKA RASTROWA DALEJ. Podział grafiki komputerowej ze względu na sposób powstawania obrazu: GRAFIKA WEKTOROWA GRAFIKA KOMPUTEROWA GRAFIKA RASTROWA.
Grafika 2d - Podstawy. Kontakt Daniel Sadowski FTP: draver/GRK - wyklady.
Grafika komputerowa Wykonał: Grzegorz Małek. Rodzaje grafiki komputerowej: Grafika wektorowa – w tym przypadku nazwa może być nieco myląca, ponieważ obrazy.
Zadania grafika komputerowego Wiedza ; z zakresu zagadnień informatycznych, z zakresu terminologii graficznej, dobra znajomość języka angielskiego.
1.problem próbkowania (sampling problem) dobór charakterystycznych punktów powierzchni w celu uzyskania najlepszego efektu przy minimalizacji ilości danych.
Matematyka przed egzaminem czyli samouczek dla każdego
3. Siła i ruch 3.1. Pierwsza zasada dynamiki Newtona
Figury w układzie współrzędnych
Wypełnianie obszaru.
Grafika Komputerowa i wizualizacja
Zapis prezentacji:

Grafika Komputerowa i wizualizacja Algorytmy rastrowe

Wprowadzenie W urządzeniu rastrowym obraz (kartka, ekran monitora i inne) składa się ze skończonej liczby podstawowych elementów nazywanych pikselami. Elementy te uporządkowane tworzą siatkę prostokątną. Wielkość lxk określa rozdzielczość danego urządzenia graficznego, a odległość między środkami sąsiednich pikseli w poziomie do odległości w pionie określa wartość aspektu danego urządzenia. Np. dla karty CGA aspekt=22/25, a dla karty EGA=4/5. Każdy rysunek rysowany na urządzeniu rastrowym tworzy się przez wyświetlenie (zaznaczenie) skończonej liczby pikseli. Problemem staje się wtedy wybór dyskretnego zbioru pikseli odwzorowującego np. krzywą ciągłą na płaszczyźnie.

Rysowanie odcinka – algorytm Bresenhama - założenia W większości zastosowań praktycznych dysponujemy współrzędnymi rzeczywistymi. Aby narysować odcinek we współrzędnych rastrowych musimy przejść do współrzędnych całkowitoliczbowych. Będzie rozważany zbiór pikseli ośmiospójny. Załóżmy, że x0<xk, 0<dy/dx/=1.

Rysowanie odcinka – algorytm Bresenhama - algorytm Zaczynamy od piksela P(x0,y0). Ponieważ kąt nachylenia odcinka jest mniejszy od 45 stopni to następny piksel wybieramy pośród Si+1=(xi+1,yi) i Ti+1=(xi+1,yi+1). Wielkości s i t występujące na rysunku określone są wzorami: s=dy/dx(xi+1-x0)-yi-y0, t=(yi+1-y0)-dy/dx(xi+1-x0).

Rysowanie odcinka – algorytm Bresenhama - algorytm Odejmując od siebie stronami oraz mnożąc przez dxi oznaczając ta wielkość przez di mamy: di=(s-t)dx=2dy(xi-x0)-2dx(yi-y0)+2dy-dx. Ponieważ dx>0, to znak di określa, która z wielkości s i t jest większa. Jeżeli di>0, to s>t i za Pi+1 przyjmiemy piksel Ti+1, w przeciwnym przypadku jeżeli di<0, to wybierzemy Si+1. Jeżeli di=0, to oba piksele leżą w tej samej odległości i możemy założyć, że wybieramy np. Pi+1=Ti+1.

Rysowanie odcinka – algorytm Bresenhama - algorytm Dalej możemy zmniejszyć koszt obliczeń badając zachowanie wzoru na di dla i+1. Mamy: di+1=2dy(xi+1-x0)-2dx(yi+1-y0)+2dy-dx. Po odjęciu od siebie stronami mamy: di+1-di=2dy(xi+1-xi)-2dx(yi+1-yi). Stąd, ponieważ xi+1-xi=1, zachodzi: di+1=di+2dy-2dx(yi+1-yi).

Rysowanie odcinka – algorytm Bresenhama - algorytm Jeżeli di>0 (wybieramy Pi+1=Ti+1) to zależność powyższa upraszcza się do postaci: di+1=di+2(dy-dx), a jeżeli di<0 to ponieważ yi+1=yi mamy: di+1=di+2dy. Aby zależności rekurencyjne działały określamy wartość di dla i=0: d0=2dy-dx.

Podsumowanie – algorytm końcowy (jedna z możliwych implementacji) Zadanie: narysować odcinek łączący P0(x0,y0) z Pk(xk,yk) przy założeniu: dx=xk-x0>0, dy=yk-y0>0, 0<dy/dx<=1. Rysujemy P0=(round(x0), round(y0)), d0=2dy-dx i=0, 1,…,k di <=0 =>di+1= di + 2dy, di >0 =>di+1= di + 2(dy-dx) di+1<0=>Si+1, di+1>0=> Ti+1, gdy di+1=0, to losowy

Rysowanie odcinka – algorytm Bresenhama - podsumowanie Ostatecznie widać, że algorytm ogranicza się do działania na liczbach całkowitych. Zgodnie z przyjętymi oznaczeniami i założeniami możemy oznaczyć wybór punktu Ti+1 jako T, a Si+1 jako S. Rysowanie odcinka możemy zapisać jako ciąg S i T, np. SSSTTTSSSTTT itd. lub (SSSTTT)^2 lub (S^3T^3)^2. Umożliwia to kompresję danych.

Rysowanie okręgu – algorytm Bresenhama W przypadku rysowania okręgu wartość aspektu jest ważna. Dlatego przyjmujemy, że mając dany układ rzeczywisty OXY i pikselowy oxy związki między tymi układami są następujące: X=ax, Y=y. Uprościmy rysowanie okręgu do okręgu w środku układu i do promienia całkowitoliczbowego. Zadanie polega więc na przybliżeniu krzywej wybranym układem pikseli: X2+Y2=R2 lub we współrzędnych ekranowych (ax)2+y2=R2.

Rysowanie okręgu – algorytm von Akenema Przyjmijmy, że a=p/q, a stąd mamy powyższą zależność możemy zapisać w postaci funkcyjnej: f(x,y)=p2x2+q2y2-q2R2=0. Stosujemy układ ośmiokierunkowy (ośmiopikselowy) i ze względu na symetrię ograniczymy się do pierwszej ćwiartki. Zaczynamy od piksela P0(0,R). Punkt, w którym współczynnik kierunkowy wektora stycznego: dy/dx=-fx/fy=-2p2x/(2q2y)=-1 dzieli ćwiartkę okręgu na dwa fragmenty. W pierwszym fragmencie, dla którego zachodzi p2x<q2y (rysunek powyżej) zwiększamy kolejno wartości x o jeden i wybieramy spośród pikseli oznaczonych jako A i B. W drugim fragmencie (rysunek obok) wybieramy między pikselami C i B. O wyborze będzie decydować wartość funkcji w punkcie S (algorytm Van Akenema). W pierwszym przypadku obliczamy: fsi=f(xi+1,yi-1/2).

Rysowanie okręgu – algorytm von Akenema Jeżeli fsi=f(xi+1,yi-1/2)>0 to punkt S leży na zewnątrz okręgu i wtedy jako Pi+1 wybieramy punkt B. Jeżeli fsi=f(xi+1,yi-1/2)<0 to S leży wewnątrz okręgu i wybieramy wtedy punkt A. Dla drugiego przypadku obliczamy fsi=f(xi+1/2,yi-1) i wybieramy Pi+1=C, gdy fsi>0 i Pi+1=B gdy fsi<0.

Rysowanie okręgu – algorytm von Akenema Jeżeli fsi=0, to wybieramy dowolny punkt. Dla startowego piksela P0(0,R) mamy: fs0=f(x0+1,y0-1/2)=p2(0+1)2+q2(R-1/2)2-q2R2=p2-q2R+q2/4 Dla pierwszego wariantu (p2x<q2y) mamy. Przy przejściu od Pi do Pi+1=A mamy xi+1=xi+1, yi+1=yi i stąd: f(xi+1+1,yi+1-1/2)=p2(xi+1+1)2+q2(yi+1-1/2)2-q2R2= p2(xi+1+1)2+q2(yi-1/2)2-q2R2 = =f(xi+1,yi-1/2)+2p2xi+1+p2 lub krócej na podstawie fsi=f(xi+1,yi-1/2) fsi+1=fsi+2p2xi+1+p2.

Rysowanie okręgu – algorytm von Akenema W drugim przypadku (przy przejściu od Pi do Pi+1=B) mamy xi+1=xi+1, yi=yi-1 i zachodzi: f(xi+1+1,yi+1-1/2)=p2(xi+1+1)2+q2(yi-1/2-1)2-q2R2=f(xi+1,yi-1/2)+2p2xi+1+p2-2q2yi+1 lub krócej fsi+1=fsi+2p2xi+1+p2-2q2yi+1. Dla drugiego wariantu możemy przeprowadzić podobne rozważania otrzymamy wtedy: dla przejścia od Pi do Pi+1=B (xi+1=xi+1, yi+1=yi-1) mamy f(xi+1+1,yi+1-1/2)=p2(xi+1+1)2+q2(yi-1-1/2)2-q2R2=f(xi+1,yi-1/2)+2p2xi+1+p2-2q2yi+1 A po uproszczeniach dla przejścia od Pi do Pi+1=C (xi+1=xi, yi+1=yi-1) mamy fsi+1=fsi-2q2yi+1+q2.

Rysowanie okręgu – inne algorytmy W przypadku, gdy chcemy wyznaczyć punkty okręgu niekoniecznie wszystkie piksele sąsiednie można skorzystać z innej metody. Polega ona na tym ,że okrąg możemy zapisać we współrzędnych biegunowych następująco: X=Rcos, Y=Rsin, Gdzie <0,360). Łatwo otrzymujemy: dX/d=-Rsin=-Y, dY/d=Rcos=X z warunkami początkowymi: X(0)=R, Y(0)=0. Taki układ możemy rozwiązać np. z krokiem h=360/(N+1)np. metodą Eulera lub niejawną metodą Eulera, np. X0=R, Y0=0 Xi+1=Xi-hYi, Yi+1=Yi+hXi+1. Dla i=0,1,...,N.