pdf - Radosław Mantiuk - Zachodniopomorski Uniwersytet
Transkrypt
pdf - Radosław Mantiuk - Zachodniopomorski Uniwersytet
Grafika komputerowa Grafika komputerowa Wektor Dla danej n-wymiarowej przestrzeni Euklidesowej Rados!aw Mantiuk Dzia!ania na wektorach: • dodawanie (rozdzielno"# dodawania (ang. associativity), !$czno"# dodawania (ang. communitativity), to%samo"# (ang. zero identity), dodawanie wektora przeciwnego), • mno!enie! przez liczb" (!$czno"# i rozdzielno"# mno%enia przez skalar), • iloczyn skalarny, • d#ugo$% wektora, • iloczyn wektorowy Zachodniopomorski Uniwersytet Technologiczny w Szczecinie n n#1 u • v = $ ui " v i "u 2 i u= i= 0 i= 0 ! Grafika komputerowa ! Grafika komputerowa Uk!ad wspó!rz&dnych Dzia!ania na wektorach Uk!ad wspó!rz&dnych (uk!ad odniesienia) wyznaczany jest przez liniowo niezale%ne wektory bazowe. Ka%dy wektor mo%e by# reprezentowany przez n warto"ci skalarnych oraz wektory bazowe u ,u ,...,u v 0 ,v1,...,v n"1 Iloczyn wektorowy 0 1 w = u"v w = u"v n"1 v w = u " v = u v # sin $ Wektory s$ niezale!ne liniowo je%eli równanie: ! ! un"1 = 0 v 0 u0 + v1 u1 + ...+ v n"1 jest prawdziwe tylko dla ! ! v 0 = v1 = ... = v n"1 = 0 u w%u,w%v u,v,w tworz$ uk!ad prawoskr&tny Iloczyn skalarny ! ! n#1 ! ! u • v = $ ui " v i = u " v " cos% i= 0 uk!ad lewoskr&tny uk!ad prawoskr&tny Uk#ad ortonormalny - d!ugo"# wektorów bazowych równan jest 1. Uk#ad ortogonalny - uk!ad ortonormalny, w którym k$t mi&dzy wektorami bazowymi równy jest 90 stopni. ! Grafika komputerowa Grafika komputerowa Macierze Grafika wektorowa Wspó!rz&dne obiektów graficznych definiowane s$ w dziedzinie liczb rzeczywistych (np. wspó!rz&dna wierzcho!ka trójk$ta na p!aszczy(nie wyra%ona jest przez dwie liczby rzeczywiste). M wiersz,kolumna = [mij ] ! wektor równy jest: $v 0 ' & ) v1 n v " R # v = & !),v i " R,i = 0,1,...,n *1 & ...) & ) %v n ( Przekszta!cenia geometryczne w grafice wektorowej ! Rn Dzia!ania na macierzach: • dodawanie, • mno%enie przez liczb&, • transponowanie, • mno%enie, • wyznacznik macierzy, • macierz odwrotna, • macierz ortogonalna. (101.56, 200.49) Transformacja ze wspó#rz"dnych rzeczywistych do rastrowych x raster = normal(x) " xres y raster = normal(y) " yres Normalizacja sprowadza si& do okre"lenia warto"ci wspó!rz&dnych w przedziale <0,1>. Macierz odwrotna: elementy macierzy dope!nie': dijA wyznacznik z A, z której usuni&to i-ty wiersz i j-t$ kolumn& ! ! (101.56,200.49) (50,100) (xres,yres) Grafika komputerowa Grafika komputerowa Przekszta!cenia 2D - Translacja Przekszta!cenia 2D - Obrót Translacja o wektor (tx,ty) Obrót wokó# punktu (pocz&tku uk#&du wspó#rz"dnych) Przekszta!cenie odwrotne (ang. inverse translation) Przekszta!cenie zachowuj$ce pierwotne po!o%enie (ang. identity) Z!o%enie translacji jest translacj$. Istnieje przekszta!cenie odwrotne do z!o%enia translacji. Grafika komputerowa Grafika komputerowa Przekszta!cenia 2D - Skalowanie Przekszta!cenia 2D - Rechunek macierzowy Skalowanie o wektor (sx,sy) x'= sx " x y'= sy " y ! Grafika komputerowa Grafika komputerowa Wspó!rz&dne jednorodne Przekszta!cenia 2D - Przekszta!cenia Euklidesowe Wspó#rz"dne jednorodne (ang. homogenous coordinates) - umo%liwiaj$ z!o%enie przekszta!ce' za pomoc$ operacji macierzowych. Skalowanie (podobie'stwo) "x'% "( x 0 $ ' $ $y'' = $ 0 ( y $# 1 '& $# 0 0 Translacja ! "x'% "1 0 t x % "x% $ ' $ ' $ ' $y'' = $0 1 t y ' ( $y' $# 1 '& $#0 0 1 '& #$1'& ! "x'% "cos( )sin ( 0% " x% $ ' $ ' $ ' $y'' = $sin ( cos( 0' * $ y' $# 1 '& $# 0 0 1'& $#1'& Obrót ! 0% " x% ' $ ' 0' ) $ y' 1'& $#1'& Przekszta#cenia Euklidesowe (ang. Euclidean transformation) Z!o%enie translacji i obrotów (przekszta!cenie bry!y sztywnej, ang. rigid body transform). Grafika komputerowa Grafika komputerowa Przekszta!cenia 2D - Przekszta!cenia afiniczne (1) Przekszta!cenia 2D - Przekszta!cenia afiniczne (2) Przekszta#cenie afiniczne (ang. affine transform) Przyk!adowe przekszta!cenia afiniczne Z#o!enie translacji, obrotów i skalowania. • Zachowuj$ równoleg!o"# linii. • Zachowuj$ wybran$ p!aszczyzn& przekszta!cenia. Definiowane przez sze"# parametrów aij. skew Source: Dave Mount, U. Maryland, Notes for CMSC 427, Fall 2000 Pictures courtesy of MIT (lecture 6.837) Grafika komputerowa Przekszta!cenia 2D - Podsumowanie Grafika komputerowa Przekszta!cenia 2D - Przekszta!cenia afiniczne (3) Wspó!rz&dne trzech punktów wraz z odpowiadaj$cymi im punktami po przekszta!ceniu jednoznacznie definiuj$ przekszta!cenie afiniczne. Parametry przekszta!cenia afinicznego szuka si& poprzez rozwi$zanie uk!adu równa' liniowych. Pictures courtesy of MIT (lecture 6.837) Grafika komputerowa Przekszta!cenia geometryczne 3D Punkt (ang. point) - warto$% absolutna Wektor (ang. vector) - warto$% wzgl"dna Ramka (ang. frame) - uk#ad wspó#rz"dnych Wspó#rz"dne (ang. coordinates) Grafika komputerowa Iloczyn wektorowy i skalarny Grafika komputerowa Grafika komputerowa Translacja w 3D Obrót w 3D Przesuni&cie o zadany wektor. Obrót wokó! danej osi o zadany k$t $1 0 0 & 0 cos" #sin " Rx (" ) = & &0 sin " cos" & 0 0 %0 0' ) 0) 0) ) 1( ! $ cos " & 0 Ry (" ) = & &#sin " & % 0 0' ) 0) 0) ) 1( ! $cos" #sin " & sin " cos" Rz (" ) = & & 0 0 & 0 % 0 T "1 (t) = T("t) ! 0 sin " 1 0 0 cos " 0 0 0 0 1 0 R"1 = RT ' 0! ) 0) 0) ) 1( Pictures courtesy of MIT (lecture 6.837) Pictures courtesy of MIT (lecture 6.837) ! Grafika komputerowa Grafika komputerowa Skalowanie w 3D "sx $ 0 S(s) = $ $0 $ #0 0 sy 0 0 0 0 sz 0 Projekcja (homografia) 0% ' 0' 0' ' 1& 1 S "1 (s) = S( ) s ! ! Grafika komputerowa Projekcja -> przekszta!cenie afiniczne Linie równoleg!e to linie przecinaj$ce si& w niesko'czono"ci. Przeci&cie si& wszystkich równoleg!ych linii sze"cianu wyznacza p!aszczyzn& w niesko'czono"ci. Znaj$c t$ p!aszczyzn& mo%na przej"# z projekcji do reprezentacji afinicznej. • Wspó!czynniki skalowania musz$ by# niezerowe. • Transformacja ma 15 stopni swobody. Grafika komputerowa Przekszta!cenie afiniczne 3D Przekszta!cenie nie wp!ywa na p!aszczyzn& po!o%on$ w niesko'czono"ci (ang. plane at infinity). Punkty po!o%one na tej p!aszczy(nie zmieniaj$ swoje po!o%enie, ale ca!y czas le%$ na p!aszczy(nie. • Zachowuje równoleglo"# linii. • Transformacja ma 12 stopni swobody. Grafika komputerowa Grafika komputerowa Przekszta!cenie metryczne Przekszta!cenie Euklidesowe Przekszta!cenie euklidesowe + skalowanie (ang. metric, similarity). Transformacja bry#y sztywnej (ang. rigid body transform) - z!o%enie translacji i obrotów. Nie zmienia si& kszta!t bry!y. • 7 stopni swobody (3 - obroty, 3 translacje, 1 - skalowanie) • zachowuje równoleg!o"# linii • zachowuje k$ty • zachowuje wymiary wzgl&dne • 6 stopni swobody, • zachowuje równoleg!o"# linii, • zachowuje k$ty, • zachowuje wymiary absolutne. • [rij] - macierz obrotu (ortonormalna) • [ti] - translacja • - skalowanie Bez znajomo"ci rzeczywistych (absolutnych) wymiarów, jest to najbardziej z!o%one przekszta!cenie mo%liwe do odtworzenia z serii obrazów. Grafika komputerowa Przekszta!cenie 3D Grafika komputerowa Literatura 1. 2. Materia!y edukacyjne organizacji ACM SIGGRAPH, http://www.siggraph.org/ education/materials/HyperGraph Lecture notes on Graphics. Lecture 6.837 , Computer Graphics Group, Massachusetts Institute of Technology, http://groups.csail.mit.edu/graphics/classes/ 6.837/F01/notes.html.