46 iii. przekszta cenia w przestrzeni trójwymiarowej · są mierzone zgodnie z zasad ą podan ą w...

30
III. Przekształcenia w przestrzeni trójwymiarowej 46 (3.23) (3.24) Z ostatniego wzoru i zależności (3.20) można obliczyć n 6 . 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ę do przekształceń punktów względem prostokątnego układu współrzędnych. Przypominamy, że rozważ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 ' t x i % t y j % t z 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

Upload: phamthuy

Post on 01-Mar-2019

216 views

Category:

Documents


0 download

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

3.7. Przekształcenia deformujące 65

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.