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.

Podobne dokumenty