46 iii. przekszta cenia w przestrzeni trójwymiarowej · są mierzone zgodnie z zasad ą podan ą w...
TRANSCRIPT
III. Przekształcenia w przestrzeni trójwymiarowej46
(3.23)
(3.24)
Z ostatniego wzoru i zależności (3.20) można obliczyć n6. Otrzymujemy
3.5. Transformacje geometryczne
Złożone obiekty trójwymiarowe można uważać, podobnie jak obiekty płaskie, za zbiór punk-tów. Dlatego też, podobnie jak dla dwuwymiarowych transformacji geometrycznych (zob.p. 1.4), przy opisywaniu trójwymiarowych transformacji geometrycznych ograniczymy się doprzekształceń punktów względem prostokątnego układu współrzędnych. Przypominamy, żerozważamy układ prawoskrętny z odpowiednim kierunkiem mierzenia kątów zgodnym (zob.zasada podana w p. 3.2.2).
Podobnie jak w przypadku dwuwymiarowym, podstawowymi transformacjami geometrycz-nymi w przestrzeni są: przesunięcie, obrót i skalowanie. Operacje te są opisane w kolejnych pod-punktach.
3.5.1. Przesunięcie
W wyniku przesunięcia punktu P o współrzędnych (x, y, z) o wektor v ' tx i % ty j % tz k otrzy-mujemy punkt , którego współrzędne wyrażają się następującymi wzorami:
We współrzędnych jednorodnych wzory (3.24) można zapisać w postaci
3.5. Transformacje geometryczne 47
(3.25)
(3.26)
(3.27)
(3.28)
(3.29)
(3.30)
(3.31)
przy czym macierzą przesunięcia jest macierz
3.5.2. Obroty
Przy założeniu, że układ współrzędnych prostokątnych jest układem prawoskrętnym, a kątysą mierzone zgodnie z zasadą podaną w p. 3.2.2, obrót punktu o kąt n wokół osi z jest określonywzorami
W przypadku obrotu punktu o kąt R wokół osi y mamy
a przy obrocie o kąt > wokół osi x otrzymujemy
We współrzędnych jednorodnych macierzami przekształceń (3.27) – (3.28) są odpowiednio:
oraz
III. Przekształcenia w przestrzeni trójwymiarowej48
(3.32)
(3.33)
(3.34)
(3.35)
(3.36)
(3.37)
(3.38)
Obrót punktu wokół dowolnej osi jest przekształceniem nieco bardziej skomplikowanym.Opisujemy go w p. 3.6.
3.5.3. Skalowanie i symetrie względem płaszczyzn układu
Skalowania obiektu trójwymiarowego względem początku układu współrzędnych jest pro-stym uogólnieniem skalowania obiektu płaskiego (zob. p. 1.4.3). W operacji tej współrzędnekażdego punktu obiektu są przekształcane zgodnie z wzorami:
gdzie sx , sy i sz oznaczają stałe skalowania. We współrzędnych jednorodnych macierzą powyż-szego przekształcenia jest
Symetrie punktu względem poszczególnych płaszczyzn układu są określone wzorami:! względem płaszczyzny yz:
! względem płaszczyzny zx:
! względem płaszczyzny xy:
Macierzami tych przekształceń (we współrzędnych jednorodnych) są:
3.6. Przekształcenia złożone w przestrzeni 49
Rys. 35. Obrót punktu wokół dowolnej osi
Porównanie wzorów (3.35) – (3.37) z zależnościami (3.16) – (3.18) (lub macierzy (3.38)z macierzami (3.19)) mogłoby sugerować, że symetrie punktu względem płaszczyzn układu sąidentyczne z odbiciami osi układu. Tak jednak nie jest – przekształcenia te są jakościowo różnei tylko wyrażają się tymi samymi wzorami.
3.6. Przekształcenia złożone w przestrzeni
Do złożonych transformacji geometrycznych w przestrzeni należy m. in. obrót względem do-wolnej osi i symetria względem dowolnej płaszczyzny. Z uwagi na częste występowanie tychprzekształceń w praktyce, poświęcamy im oddzielne podpunkty. Ogólne równanie transforma-cyjne w przestrzeni jest opisane w p. 3.6.3.
3.6.1. Obrót względem dowolnej osi
Obrót punktu wokół dowolnej osi można otrzymać jako złożenie przesunięć (translacji) iobrotów wokół osi układu współrzędnych. Zadanie formułujemy następująco: w prawoskrętnymukładzie współrzędnych prostokątnych dany jest punkt P o współrzędnych (x, y, z), który należyobrócić o kąt " wokół prostej l przechodzącej przez punkty P1 i P2 (P1 … P2) o współrzędnychodpowiednio (x1 , y1 , z1) i (x2 , y2 , z2) (zob. rys. 35 a). W wyniku obrotu punkt P zostanieprzekształcony w punkt o współrzędnych , które należy wyznaczyć.
Rozpatrzmy najpierw możliwe położenia prostej l w przestrzeni i związane z tym jej równa-nia. Jeśli x1 … x2 , y1 … y2 i z1 … z2 , to równania prostej l mają postać
III. Przekształcenia w przestrzeni trójwymiarowej50
(3.39a)
(3.39b)
(3.39c)
(3.39d)
(3.39e)
(3.39f)
(3.39g)
(3.40)
Gdy x1 ' x2 , ale y1 … y2 i z1 … z2 , to prosta l leży na płaszczyźnie równoległej do płaszczyzny yzi jej równania są następujące:
Podobnie, gdy y1 ' y2 , ale x1 … x2 i z1 … z2 , prosta l leży na płaszczyźnie równoległej do płasz-czyzny zx i mamy
a gdy z1 ' z2 , ale x1 … x2 i y1 … y2 , to oś obrotu leży na płaszczyźnie równoległej do płaszczyznyxy i jej równania mają postać
Możliwe są jeszcze przypadki, gdy dwie współrzędne punktów P1 i P2 są równe. Jeśli x1 ' x2i y1 ' y2 , ale z1 … z2, to prostą l (prostopadłą do płaszczyzny xy) określają równania
Gdy y1 ' y2 i z1 ' z2, ale x1 … x2, to prosta l jest prostopadła do płaszczyzny yz i mamy
Wreszcie, gdy x1 ' x2 i z1 ' z2 , ale y1 … y2 , to równania prostej l (prostopadłej do płaszczyzny zx)mają postać
W celu wyznaczenia współrzędnych punktu wykonujemy najpierw translację o wektor&v ' & x1 i & y1 j & z1 k. Macierzą tej operacji (we współrzędnych jednorodnych) jest
a w wyniku jej wykonania punkt P1 zostanie przesunięty do początku układu współrzędnych.Oznaczmy przez prostą przechodzącą przez punkty i (zob. rys. 35 b) o współrzędnychodpowiednio (0, 0, 0) i (x2 & x1 , y2 & y1 , z2 & z1). W zależności od równań określających prostąl (zob. (3.39a) – (3.39g)), równania prostej mają postać
3.6. Przekształcenia złożone w przestrzeni 51
(3.41a)
(3.41b)
(3.41c)
(3.41d)
(3.41e)
(3.41f)
(3.41g)
(3.42a)
(3.43a)
Rozpatrzmy przypadek, gdy prosta jest określona równaniami (3.41a) i przekształćmy jąna oś z (zob. rys. 36). Niech 0 oznacza kąt, jaki prosta tworzy z płaszczyzną xz, a . – kątmiędzy rzutem tej prostej na płaszczyznę xz i osią z. Prosta zostanie przekształcona na ośz, gdy wykonamy obrót o kąt & 0 wokół osi x (zob. rys. 36 a), a następnie o kąt . wokół osi y(zob. rys. 36 b). Macierzą pierwszego obrotu jest (zob. (3.32))
przy czym kąt 0 jest określony następująco:
Macierz drugiego obrotu ma postać (zob. (3.31))
III. Przekształcenia w przestrzeni trójwymiarowej52
(3.44a)
(3.45a)
Rys. 36. Przekształcenie prostej na oś z
(3.46a)
gdzie
Ponieważ osią obrotu jest teraz oś z, więc wykonujemy wokół niej obrót o kąt ". Obrót tenokreśla macierz (zob. (3.30))
Uwaga: Teoretycznie wybór osi układu współrzędnych, na którą przekształcamy prostą l (ośobrotu), jest dowolny. Jeżeli wybierzemy oś x lub y, to wystarczy we wzorach (3.43a)i (3.45a) odpowiednio zamienić współrzędne punktów. W praktyce, w celu minimaliza-cji błędów działań arytmetycznych, wybieramy tę oś, dla której mianowniki wewspomnianych wzorach są największe (co do wartości bezwzględnej).
3.6. Przekształcenia złożone w przestrzeni 53
(3.47a)
(3.48a)
(3.49)
(3.50a)
(3.50b)
Ostatnim punktem rozpatrywanego przypadku jest wykonanie przekształceń odwrotnych doprzekształceń, które przeprowadziły prostą l w oś z, tj. obrót o kąt &. , następnie obrót o kąt 0i na końcu przesunięcie o wektor v. Z własności przekształceń odwrotnych i zależności (3.40),(3.42a) i (3.44a) wynika, że macierze tych przekształceń mają postać
oraz
a całe przekształcenie można zapisać (we współrzędnych jednorodnych) następująco:
Jeżeli prosta leży w płaszczyźnie yz , tzn. jest określona równaniami (3.41b), to należy jąprzekształcić na oś y lub oś z. Wybierając oś z, wykonujemy obrót o kąt &0 (wokół osi x), poczym o kąt " wokół osi z. Całe przekształcenie może być w tym przypadku opisane zależnością
gdzie macierz ma postać (3.42a), – (3.46a), – (3.48a), kąt 0 jest określony wzo-rem (3.43a), a macierze i dane są wzorami (3.40) i (3.49).
Podobne rozważania dla przypadku, gdy prosta jest określona wzorem (3.41c), a za ośobrotu wybierzemy oś x, prowadzą do zależności
III. Przekształcenia w przestrzeni trójwymiarowej54
(3.50c)
(3.42c)
(3.43c)
(3.46c)
(3.48c)
(3.50d)
gdzie (zob. (3.31) i (3.32))
Gdy prostą określają równania (3.41d), a za oś obrotu przyjmiemy oś y, otrzymujemy
gdzie
3.6. Przekształcenia złożone w przestrzeni 55
(3.42d)
(3.43d)
(3.46d)
(3.48d)
(3.50e)
(3.50f)
Jeśli prosta pokrywa się z osią z, tzn. jest określona równaniami (3.41e), to wystarczy wy-konać obrót o kąt " wokół tej osi. W tym przypadku całe przekształcenie jest określone zależ-nością
gdzie macierz ma postać (3.46a). W przypadku, gdy prosta pokrywa się z osią x (równa-nia (3.41f)), otrzymujemy
III. Przekształcenia w przestrzeni trójwymiarowej56
(3.50g)
(3.51)
(3.52)
Rys. 37. Symetria względempłaszczyzny
przy czym macierz ma postać (3.46c), a przy pokryciu z osią y (równania (3.41g)) mamy
gdzie macierz dana jest wzorem (3.46d).
3.6.2. Symetria względem płaszczyzny
Każde równanie liniowe względem współrzędnych określa w przestrzeni płaszczyznę, przyczym tę samą płaszczyznę można przedstawić równaniami o różnych postaciach (np. równaniemogólnym, normalnym, odcinkowym). Wybór określonej postaci równania płaszczyzny zależyod rozwiązywanego zadania i – co się z tym wiąże – od tego, jakie wielkości są znane.
W tym podpunkcie do określenia punktu , symetrycznego do punktu P względem płasz-czyzny = (zob. rys. 37), rozważymy dwa przypadki:! gdy płaszczyzna przechodzi przez dany punkt P0 o współrzędnych (x0 , y0 , z0) i jest prosto-
padła do wektora n ' n1 i % n2 j % n3 k; jej równanie ma wówczas postać
! gdy jest dane równanie ogólne płaszczyzny, tj.
W pierwszym przypadku znalezienie współrzędnych punktu polega na prze-kształceniu płaszczyzny = na jedną z płaszczyzn układu (xy, yz lub zx), wykonaniu względem
3.6. Przekształcenia złożone w przestrzeni 57
(3.53)
(3.54)
niej symetrii, po czym na przeprowadzeniu transformacji odwrotnej, która płaszczyznę układuprzekształci z powrotem na płaszczyznę = . Jeśli wybierzemy płaszczyznę xy i założymy, żen2 … 0 lub n3 … 0, to kolejno wykonywanymi przekształceniami będą:a) przesunięcie punktu P0 do początku układu współrzędnych, tj. translacja o wektor
& v ' & x0 i & y0 j & z0 k,której macierz (we współrzędnych jednorodnych) ma postać
b) przekształcenie wektora n na wektor prostopadły do płaszczyzny xy (w tym celu należy wy-konać obrót o kąt & 0 wokół osi x, a następnie obrót o kąt . wokół osi y). Macierzą tego prze-kształcenia jest
gdzie macierze występujące z prawej strony są dane wzorami (3.44a) i (3.42a). Uwzględ-niając, że
gdzie
otrzymujemy stąd
c) symetria względem płaszczyzny xy, której macierz Mxy ma postać (3.38),d) przekształcenie odwrotne do podanego w punkcie b),e) przekształcenie odwrotne do podanego w punkcie a).
Całe przekształcenie jest złożeniem przekształceń a) – e) i we współrzędnych jednorodnychmoże być zapisane w postaci
III. Przekształcenia w przestrzeni trójwymiarowej58
(3.55)
gdzie
Jeżeli n2 ' n3 ' 0, tzn. n ' n1 i, to do przekształcenia wektora n na wektor prostopadły dopłaszczyzny xy wystarczy wykonać obrót o kąt ±90° wokół osi y. W tym przypadku macierz Anredukuje się do macierzy (por. (3.54))
Gdy wektor n jest prostopadły do płaszczyzny xy, tj. gdy płaszczyzna = jest równoległa doxy, macierz An jest macierzą jednostkową i symetrię opisuje zależność (por. (3.55))
Uwaga: Wybór płaszczyzny układu, na którą przekształcamy płaszczyznę symetrii =, jest w za-sadzie dowolny. Przy wyborze płaszczyzny yz lub zx wystarczy odpowiednio zmienićmacierz An. W praktyce (w celu minimalizacji błedów) wybieramy tę płaszczyznę, dlaktórej mianowniki elementów tej macierzy są największe.
3.6. Przekształcenia złożone w przestrzeni 59
(3.56)
(3.57)
(3.58)
(3.59)
(3.60)
(3.61)
Jeśli płaszczyzna symetrii = jest określona równaniem ogólnym (3.52), to punkt możnawyznaczyć z warunku, że wektor Ai % Bj % Ck jest do niej prostopadły, a więc współrzędnepunktu Q, będącego rzutem prostopadłym punktu P na =, są określone zależnością
czyli
Ponieważ punkt Q leży na płaszczyźnie =, więc
Po podstawieniu wzorów (3.56) do zależności (3.58) otrzymujemy równanie, z którego możnawyznaczyć parametr 8:
skąd
Z drugiej strony mamy
Po podstawieniu do tych równań zależności (3.57) i uwzględnieniu wzoru (3.59) otrzymujemy
co we współrzędnych jednorodnych można zapisać w postaci
gdzie
III. Przekształcenia w przestrzeni trójwymiarowej60
(3.62)
(3.63)
(3.64)
(3.65)
3.6.3. Ogólne równanie transformacyjne w przestrzeni
Przekształcenia podane w p. 3.5, 3.6.1 i 3.6.2 są szczególnymi przypadkami przekształceniaafinicznego w przestrzeni, które punkt P o współrzędnych (x, y, z) przekształca w punkt o współrzędnych . Przekształcenie to jest określone wzorami
przy czym
Warunek (3.63) zapewnia istnienie przekształcenia odwrotnego. We współrzędnych jednorod-nych przekształcenie (3.62) zapisujemy w postaci
Wartości współczynników aij (i ' 1, 2, 3; j ' 1, 2, 3, 4) dla przekształceń opisanych w p. 3.6są zebrane w tabeli 2.
3.7. Przekształcenia deformujące
Przekształcenia afiniczne nie są jedynymi przekształceniami jakim można poddać obiektprzestrzenny. Przekształceniami często stosowanymi, zwłaszcza w animacji komputerowej, sąteż tzw. przekształcenia deformujące. Ogólnie przekształcenia te można zapisać w postaci
gdzie (x, y, z) oznaczają współrzędne punktu obiektu przed deformacją, a (X, Y, Z) – po defor-macji. Należy zaznaczyć, że przekształcenia postaci (3.65) stosuje się na ogół w stosunku dopewnego zbioru punktów (na przykład wierzchołków prostopadłościanu). Oczywiście bez zna-jomości funkcji deformujących Fx, Fy i Fz nie można nic powiedzieć o samym przekształceniu.Zauważmy jednak, że przekształcenie afiniczne (3.62) jest szczególnym przypadkiem przekształ-cenia (3.65), choć nie jest ono deformujące (w potocznym znaczeniu tego słowa).
Nasze rozważania ograniczymy tu do przedstawienia trzech najczęściej spotykanych prze-kształceń deformujących: zwężania, skręcania i wyginania. Pierwsze z nich – zwężanie (ang. ta-
3.7. Przekształcenia deformujące 61
(3.66)
Tabela 2. Współczynniki przekształcenia afinicznego w przestrzeni w przypadkach szczególnych
Przekształcenie Współczynniki Uwagi
Przesunięcie a11 ' a22 ' a33 ' 1,a12 ' a13 ' a21 ' a23 ' a31 ' a32 ' 0,a14 ' tx , a24 ' ty , a34 ' tz
tx , ty i tz oznaczają składowewektora przesunięcia
Obrót wokół osi x a11 ' 1,a12 ' a13 ' a14 ' a21 ' a24 ' a31 ' a34 ' 0,a22 ' a33 ' cos>,a23 ' sin>, a32 ' &sin>
> oznacza kąt obrotu
Obrót wokół osi y a11 ' a33 ' cosR,a12 ' a14 ' a21 ' a23 ' a24 ' a32 ' a34 ' 0,a13 ' &sinR, a22 ' 1, a31 ' sinR
R oznacza kąt obrotu
Obrót wokół osi z a11 ' a22 ' cosn, a12 ' sinn,a13 ' a14 ' a23 ' a24 ' a31 ' a32 ' a34 ' 0,a21 ' &sinn, a33 ' 1
n oznacza kąt obrotu
Skalowanie względempoczątku układu
a11 ' sx ,a12 ' a13 ' a14 ' a21 ' a23 ' a24 ' 0,a31 ' a32 ' a34 ' 0a22 ' sy , a33 ' sz
sx , sy i sz oznaczają stałeskalowania
Skalowanie względemustalonego punktu
a11 ' sx ,a12 ' a13 ' a21 ' a23 ' a31 ' a32 ' 0,a14 ' (1 & sx)xR ,a22 ' sy , a24 ' (1 & sy)yR ,a33 ' sz , a34 ' (1 & sz)zR
sx , sy i sz oznaczają stałeskalowania. Punkt (xR , yR , zR) jestpunktem, względem któregonastępuje skalowanie.
Symetria względempłaszczyzny xy
a11 ' a22 ' 1,a12 ' a13 ' a14 ' a21 ' a23 ' a24 ' 0,a31 ' a32 ' a34 ' 0,a33 ' &1
–
Symetria względempłaszczyzny yz
a11 ' &1,a12 ' a13 ' a14 ' a21 ' a23 ' a24 ' 0,a31 ' a32 ' a34 ' 0,a22 ' a33 ' 1
–
Symetria względempłaszczyzny zx
a11 ' a33 ' 1,a12 ' a13 ' a14 ' a21 ' a23 ' a24 ' 0,a31 ' a32 ' a34 ' 0,a22 ' &1
–
pering) – jest pewnym uogólnieniem skalowania. W przekształceniu tym wybieramy oś zwężania(najczęściej przyjmuje się, że jest ona jedną z osi układu współrzędnych) i przekształcamywspółrzędne punktów za pomocą funkcji skalujących określonych wzdłuż tej osi. Jeśli za ośzwężania przyjmiemy oś z, to przekształcenie określają zależności
Zauważmy, że jeśli f (z) ' const, to zależności (3.66) określają skalowanie wzdłuż osi x i y (o ta-kich samych stałych skalowania). W ogólności funkcja f (z) nie musi być liniowa, a dalsze uogól-nienie może polegać na określeniu różnych funkcji do przekształcania współrzędnych x i y.
III. Przekształcenia w przestrzeni trójwymiarowej62
(3.67)
(3.68)
(3.69)
(3.70)
(3.71)
(3.72)
(3.73)
(3.74)
Jeśli osią zwężania jest oś x, to przekształcenie definiują wzory
a w przypadku osi y mamy
Podobnie jak zwężanie jest pewnym uogólnieniem skalowania, tak skręcanie (ang. twisting)można uważać za pewne uogólnienie obrotu wokół osi. Jeśli założymy, że osią skręcania jestoś z, to wzorami określającymi to przekształcenie są:
Gdy f (z) ' const, to powyższe zależności określają obrót wokół osi z (zob. (3.27)).Skręcenie wzdłuż osi x określają wzory
a wzdłuż osi y zależności
Wygięcie (ang. bending) liniowe wzdłuż osi jest przekształceniem złożonym. W przekształ-ceniu tym wyróżnia się obszar wygięcia i obszar leżący poza nim, w którym deformacja obiektupolega na obrocie i przesunięciu. Przyjmując, że osią wygięcia jest oś y, obszar wygięcia możnaokreślić następująco:
a więc jako zbiór punktów, których współrzędna y jest ograniczona z dołu i z góry przez pewnezadane wielkości. Jeśli promień krzywizny wygięcia będzie równy 1/k, a środkiem wygięciapunkt o współrzędnej y ' y0 , to kąt wygięcia można określić wzorem
gdzie
Całe przekształcenie (wygięcie wzdłuż osi y) opisują zależności:
3.7. Przekształcenia deformujące 63
Rys. 38. Przekształcenia deformujące: zwężenie (b), skręcenie (c) i wygięcie (d)
III. Przekształcenia w przestrzeni trójwymiarowej64
(3.75)
W przypadku wygięcia wzdłuż osi x odpowiednie zależności (odpowiadające zależnościom(3.73) – (3.75)) mają postać
a dla osi z mamy
IV. RZUTOWANIE
4.1. Wprowadzenie
Reprezentacja obiektu trójwymiarowego na płaskim ekranie monitora wymaga – podobniejak jego przedstawienie na kartce papieru – wykonania przekształcenia zwanego rzutowaniem.Otrzymany obraz obiektu powinien posiadać określone cechy obiektu rzeczywistego, na przy-kład zachowywać jego wymiary i (lub) kształt. Nie zawsze realistyczna wizualizacja obiektu jestprzy tym cechą pożądaną (przykładem może być rysunek techniczny).
W zależności od wymaganych cech obrazu obiektu wyróżniamy dwie klasy rzutowań: rzutrównoległy i perspektywę (rzut perspektywiczny) – zob. tabela 3. Rzut równoległy zachowujerównoległość prostych, stosunek długości odcinków równoległych i związki miarowe figurypłaskiej równoległej do płaszczyzny rzutowania. Rzut perspektywiczny zmienia relacje odległoś-ci, ale dzięki temu otrzymywany obraz jest bardziej realistyczny.
W kolejnych dwu punktach tego rozdziału są podane ogólne zależności dotyczące obu klasrzutów i ich przypadków szczególnych. Układ współrzędnych prostokątnych, w którym będzie-my rozważać poszczególne rzuty, nie będzie przy tym związany z układem współrzędnych ekra-nu, chociaż podane wzory służą właśnie do przedstawiania obiektów trójwymiarowych na ekra-nie.
Tabela 9. Rodzaje rzutów
rzut
perspektywiczny równoległy
z jednymgłównympunktemzbiegu
z dwomagłównymipunktami
zbiegu
z trzemagłównymipunktami
zbiegu
ortogonalny nieortogonalny
aksonometryczny wielo-widoko-
wy
kawa-lerski
gabine-towy
wojs-kowyizome-
trycznydime-
trycznyanizome-tryczny
4.2. Perspektywa
Perspektywę charakteryzują tzw. skróty perspektywiczne i punkty zbiegu. Skrót per-spektywiczny powoduje wrażenie, że obiekty (odcinki) leżące dalej od środka rzutowania sąmniejsze (krótsze). Inne wrażenie polega na tym, że pęki prostych równoległych zbiegają się wpewnych punktach. Punkty te nazywają się punktami zbiegu (punktami zbieżności prostych rów-
4.2. Perspektywa 67
Rys. 59. Rzut perspektywiczny z jednym (a), dwoma (b) i trzema (c) g»ównymi punktami zbiegu
noległych). Punkty zbiegu prostych równoległych do osi kartezjańskiego układu współrzędnychnazywa się głównymi punktami zbiegu. Liczba głównych punktów zbiegu zależy od wzajemnegopołożenia układu współrzędnych i płaszczyzny rzutowania (zob. rys. 39). Wyróżniamy:! perspektywę z jednym głównym punktem zbiegu, gdy jedna oś kartezjańskiego układu współ-
rzędnych przecina płaszczyznę rzutowania,! perspektywę z dwoma głównymi punktami zbiegu, gdy dwie osie kartezjańskiego układu
współrzędnych przecinają płaszczyznę rzutowania,! perspektywę z trzema głównymi punktami zbiegu, jeśli wszystkie osie kartezjańskiego układu
współrzędnych przecinają płaszczyznę rzutowania.
Skrót perspektywiczny i punkty zbiegu, które z jednej strony dają wrażenie głębi obrazu,z drugiej strony są pewnymi „anomaliami” rzutu perspektywicznego. Na przykład z powoduskrótu perspektywicznego dwie kule o różnych rozmiarach mogą być przedstawione napłaszczyźnie rzutowania dokładnie tak samo (wystarczy, by płaszczyzna rzutowania byłaumieszczona przed kulą mniejszą, a kula większa znalazła się w odpowiedniej za nią odległości– zob. rys. 40). Istnienie punktów zbiegu powoduje, że proste równoległe, które nie są rów-noległe do płaszczyzny rzutowania zostaną na niej przedstawione jako proste nierównoległe.Oprócz tego w rzucie perspektywicznym występują jeszcze dwie „anomalie”: przekręcenie obra-zu i zniekształcenie topologiczne. Z przekręceniem obrazu mamy do czynienia w przypadku, gdyobiekt znajduje się z tej samej strony płaszczyzny rzutowania, co środek rzutowania, ale jegoodległość od tej płaszczyzny jest większa od odległości środka rzutowania (mówiąc inaczej: gdyobiekt znajduje się za obserwatorem). Taki obiekt na płaszczyźnie rzutowania zostanie przed-stawiony „do góry nogami” i wstecznie (zob. rys. 41). Zniekształcenie (dystorsja) topologicznepolega na tym, że punkty płaszczyzny przechodzącej przez środek rzutowania i równoległej dopłaszczyzny rzutowania są przez perspektywę przekształcane do nieskończoności. W szczegól-ności oznacza to, że odcinek łączący punkt znajdujący się za obserwatorem z punktem poło-
IV. Rzutowanie68
Rys. 40. „Anomalia” skrótuperspektywicznego
Rys. 41. Przekręcenie obrazu
Rys. 42. Zniekształcenie topologiczne
żonym przed nim jest odwzorowywany w dwie rozłączne półproste leżące na jednej prostej (zob.rys. 42).
4.2. Perspektywa 69
Rys. 43. Rzut perspektywiczny
W celu podania zależności pomiędzy współrzędnymi (x, y, z) dowolnego punktu P (w ukła-dzie współrzędnych obserwatora) oraz współrzędnymi jego obrazu perspektywiczne-go konieczne jest określenie środka i płaszczyzny rzutowania. Załóżmy, że środkiem rzuto-wania jest punkt C o współrzędnych (a, b, c), a płaszczyzna rzutowania przechodzi przez punkt So współrzędnych (x0 , y0 , z0) i jest prostopadła do wektora n ' n1i % n2 j % n3k (zob. rys. 43).
Uwaga: Jeżeli płaszczyzna rzutowania jest określona równaniem ogólnymAx % By % Cz % D ' 0,
to składowymi wektora n są:n1 ' A, n2 ' B i n3 ' C,
a za punkt S można przyjąć punkt o współrzędnych:(& D/A, 0, 0), gdy A … 0,(0, & D/B, 0), gdy B … 0
lub (0, 0, & D/C), gdy C … 0.Rozważmy najpierw najprostszy przypadek, gdy płaszczyzna rzutowania pokrywa się z jedną
z płaszczyzn układu, na przykład z płaszczyzną xy (przypadek ten jest o tyle interesujący, że od-powiada rzutowaniu na płaszczyznę ekranu w jego układzie współrzędnych), a środek rzutowa-nia leży na osi z (zob. rys. 44) i ma współrzędne (0, 0, c). Jeśli środek rzutowania jestumiejscowiony tak, jak przedstawiono na rys. 44, to c < 0, ale w ogólnym przypadku wystarczyzałożyć, że c jest różne od współrzędnej z punktu P (w przeciwnym przypadku wystąpiłobywspomniane zniekształcenie topologiczne). Z podobieństwa trójkątów ABC i znajdujemy,że
W podobny sposób możemy wyznaczyć związek pomiędzy i y. Zatem mamy
IV. Rzutowanie70
(4.1)
(4.2)
(4.3)
Rys. 44. Rzut perspektywiczny na płaszczy-znę xy
(4.4)
Ponieważ przekształcenia perspektywiczne nie są liniowe, równania (4.1) nie mogą być bez-pośrednio zapisane w postaci macierzowej. Jeśli jednak użyjemy współrzędnych jednorodnych,to możemy napisać
gdzie macierz
jest macierzą rozważanego przekształcenia.
Nietrudno wywnioskować, że w przypadku, gdy płaszczyzną rzutowania jest płaszczyzna yz(x ' 0), a środek rzutowania leży na osi x, tj. ma współrzędne (a, 0, 0), to macierzą przekształ-cenia (we współrzędnych jednorodnych) jest
4.2. Perspektywa 71
(4.5)
(4.6)
Rys. 45. Rzut perspektywiczny na płasz-czyznę xy ze środkiem rzutowanianie leżącym na osi z
Gdy płaszczyzną rzutowania jest płaszczyzna zx (y ' 0), a środkiem rzutowania – punkt owspółrzędnych (0, b, 0), to macierz przekształcenia ma postać
Umiejscowienie środka rzutowania na jednej z osi układu współrzędnych jest dużym ograni-czeniem (na przykład, rzutując obiekt trójwymiarowy na ekran monitora zwykle umiejscawiamyśrodek rzutowania na prostej prostopadłej do powierzchni ekranu i przechodzącej przez jegośrodek). Rozważmy zatem przypadek ogólniejszy, gdy środek rzutowania ma współrzędne(a, b, c), ale płaszczyzną rzutowania jest nadal jedna z płaszczyzn układu współrzędnych. Po-nieważ wektory PC i są równoległe (leżą na tej samej prostej – zob. rys. 45), więc
co w postaci skalarnej można przedstawić za pomocą zależności
Liczbę " można wyznaczyć z warunku, że punkt leży na płaszczyźnie rzutowania. Jeślibędzie nią płaszczyzna xy, oznacza to, że i z ostatniego równania (4.6) otrzymujemy
Po podstawieniu do równania (4.6) mamy
IV. Rzutowanie72
(4.7)
(4.8)
(4.9)
(4.10)
(4.11)
We współrzędnych jednorodnych powyższe wzory można zapisać następująco
Zauważmy, że jeśli we wzorach (4.7) i (4.8) przyjmiemy a ' b ' 0, to otrzymamy wzory odpo-wiednio (4.1) i (4.2).
Jeżeli płaszczyzną rzutowania będzie płaszczyzna yz lub zx, to macierzami (we współrzęd-nych jednorodnych) odpowiednich przekształceń perspektywicznych będą następujące macierze:
Oczywiście podane poprzednio macierze (4.4) i (4.5) są przypadkami szczególnymi macierzy(4.9).
Wszystkie dotąd opisane rzuty perspektywiczne posiadają jeden główny punkt zbiegu. Per-spektywę z dwoma punktami zbiegu otrzymamy w przypadku, gdy płaszczyzna rzutowania niebędzie równoległa do żadnej z płaszczyzn układu współrzędnych, ale będzie równoległa dojednej z osi układu. Jeśli drugi warunek nie będzie spełniony, to perspektywa będzie mieć trzygłówne punkty zbiegu.
Przed podaniem ogólnych równań rzutu perspektywicznego, z których można otrzymać pers-pektywę z jednym, dwoma lub trzema punktami zbiegu, rozważmy jeszcze przypadek, gdy śro-dek rzutowania C pokrywa się z początkiem O układu współrzędnych, a płaszczyzna rzutowaniajest dowolna (zakładamy oczywiście, że środek rzutowania – w tym przypadku początek układuwspółrzędnych – nie leży na tej płaszczyźnie). Jeśli C ' O, to równość wektorowa jest równoważna równości skąd otrzymujemy
Ponieważ założyliśmy (zob. str. 69), że płaszczyzna rzutowania jest określona przez punkt Si wektor normalny n, to jej równanie można zapisać w postaci
Punkt leży na płaszczyźnie rzutowania, a więc spełnia jej równanie. Z zależności (4.11) ma-my zatem
4.2. Perspektywa 73
(4.12)
(4.13)
skąd, po uwzględnieniu wzorów (4.10), otrzymujemy
tj.
Wzory (4.10), gdzie " jest określone zależnością (4.12), określają zatem rzut perspektywicznyw przypadku, gdy środek rzutowania pokrywa się z początkiem układu. Macierzą tego prze-kształcenia we współrzędnych jednorodnych jest macierz
W celu otrzymania równań rzutu perspektywicznego w przypadku ogólnym wystarczy zauwa-żyć, że przekształcenie to składa się z trzech przekształceń:! przesunięcia układu współrzędnych tak, by jego początek pokrył się ze środkiem rzutowa-
nia C (przy tej translacji punkt R płaszczyzny rzutowania zostaje przekształcony w punkt o współrzędnych (x0 & a, y0 & b, z0 & c), a wektor n nie ulega zmianie, gdyż translacja niezmienia współrzędnych wektora),
! rzutu perspektywicznego ze środkiem rzutowania umiejscowionym w początku układu, przyczym należy pamiętać, że płaszczyzna rzutowania jest teraz określona równaniem
! przesunięcia układu współrzędnych z powrotem (do pierwotnego położenia).Macierz tego przekształcenia jest iloczynem trzech macierzy (por. (3.2) i (4.13)):
gdzie
We współrzędnych jednorodnych możemy zatem przekształcenie zapisać w postaci
IV. Rzutowanie74
(4.14)
(4.15)
(4.16)
(4.17)
(4.18)
(4.19)
a we współrzędnych kartezjańskich odpowiednie wzory będą następujące:
gdzie
Zauważmy, że wzory podane poprzednio są przypadkami szczególnymi wzorów (4.14) i (4.15):dla a ' b ' c ' 0 otrzymujemy zależności (4.10) – (4.12), dla x0 ' y0 ' z0 ' 0 oraz n1 ' n2 ' 0,n3 ' 1 i dowolnych a, b, c – wzory (4.7), a przy dodatkowym założeniu, że a ' b ' 0 – wzory(4.1).
Ciekawym zagadnieniem (nie tylko z matematycznego punktu widzenia) jest znajdowanie dladanego rzutu perspektywicznego głównych punktów zbiegu i punktu zbiegu w kierunku okreś-lonym przez dany wektor u ' u1 i % u2 j % u3 k. Rozważymy najpierw drugie z tych zagadnień,gdyż pierwsze jest jego przypadkiem szczególnym – główne punkty zbiegu są punktami zbieguw kierunkach określonych przez wektory jednostkowe i, j i k.
Rodzina prostych równoległych o kierunku określonym przez pewien wektor u jest zdefinio-wana wzorami
gdzie t oznacza parametr, a p, q i r oznaczają współrzędne dowolnego punktu (przez każdy punkto danych współrzędnych (p, q, r) przechodzi dokładnie jedna prosta należąca do rodziny). Popodstawieniu zależności (4.16) do wzorów (4.14) – (4.15) mamy
gdzie
Punkt zbiegu w kierunku wektora u jest tym punktem o współrzędnych , dla któregot 6 4. Przechodząc zatem we wzorach (4.17) – (4.18) do granicy, otrzymujemy
4.2. Perspektywa 75
(4.20)
(4.21)
gdzie
Punkt zbiegu, określony wzorami (4.19) – (4.20), leży na prostej przechodzącej przez środekrzutowania i równoległej do wektora u. Zauważmy, że gdy wektor u jest równoległy do pła-szczyzny rzutowania, to punkt zbiegu w kierunku tego wektora nie istnieje, gdyż wówczasn1 u1 % n2 u2 % n3 u3 ' 0.
Z wzorów (4.19) – (4.20) można otrzymać współrzędne głównych punktów zbiegu. Przyj-mując u1 ' 1 i u2 ' u3 ' 0 otrzymujemy główny punkt zbiegu Px w kierunku wektora i, tj.w kierunku osi x. Dla u2 ' 1 i u1 ' u3 ' 0 wzory te określają główny punkt zbiegu Py w kierunkuwektora j (osi y), a dla u1 ' u2 ' 0 i u3 ' 1 – główny punkt zbiegu Pz w kierunku wektora k(osi z). Współrzędne tych punktów są następujące:
Z powyższych wzorów można natychmiast wywnioskować, kiedy otrzymuje się jeden, kiedydwa, a kiedy trzy główne punkty zbiegu – decyduje o tym wartość 0 (zero) dwu, jednej lub żad-nej z liczb n1 , n2 i n3 , a więc usytuowanie płaszczyzny rzutowania względem układuwspółrzędnych.