Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Grafika komputerowa Rzutowanie.

Podobne prezentacje


Prezentacja na temat: "Grafika komputerowa Rzutowanie."— Zapis prezentacji:

1 Grafika komputerowa Rzutowanie

2 Rzuty można podzielić na dwie klasy:
Wprowadzenie Podstawowym przekształceniem w grafice komputerowej jest rzutowanie, gdyż komputerowa wizualizacja obiektu wymaga by był on odwzorowany na płaską kartkę papieru, ogólnie – na płaszczyznę. Rzuty można podzielić na dwie klasy: Rzuty równoległe, Rzuty perspektywiczne.

3 Własności rzutów równoległych
Zachowuje równoległość prostych, Zachowuje stosunek długości odcinków równoległych, Zachowuje związki miarowe figur płaskiej równoległej do płaszczyzny rzutowania, W rzucie równoległym wszystkie proste rzutowania mają kierunek równoległy, gdy jest on prostopadły do płaszczyzny rzutowania, to jest to rzut równoległy ortogonalny. Stosuje się go rysunku technicznym.

4 Własności rzutów perspektywicznych
Pozwala na bardziej realistyczną wizualizację obiektów trójwymiarowych, Daje wrażenie głębi. W rzucie środkowym (szczególny przypadek rzutu perspektywicznego) zmienione zostają relacje długości, na przykład rzuty odcinków leżących bliżej rzutni są dłuższe niż rzuty odcinków tej samej długości ale bardziej oddalonych od płaszczyzny rzutowania. W rzucie perspektywicznym wszystkie proste (promienie rzutowania) mają punkt wspólny, nazywany jest on środkiem rzutowania. Odległość tego punktu decyduje o deformacji rysunku.

5 Porównanie rzutów Rzut równoległy Rzut perspektywiczny

6 Przekształcenie układu danych do układu obserwatora
W rzutowaniu znalezienie współrzędnej P’ sprowadza się do wyznaczenia punktu przecięcia płaszczyzny P z prostą, która łączy dany punkt z płaszczyzną rzutowania. W ten sposób otrzymalibyśmy jednak współrzędne punktu P’ w układzie trójwymiarowym, w którym był rysowany obiekt. Ten układ będzie nazywany układem danych. Do narysowania obiektu potrzebne są współrzędne w układzie dwuwymiarowym określonym na płaszczyźnie rzutowania. Takie współrzędne można wyznaczać różnie. Najbardziej popularna jest metoda przekształcania układu danych do układu obserwatora.

7 Przekształcenie układu danych do układu obserwatora
Pp dane

8 Przekształcenie układu danych do układu obserwatora
Obserwator jest nieruchomy i ma obejrzeć dane. W tym celu musimy przekształcić dane do układu obserwatora. W tym celu należy tak obracać układem danych, by osie układu pokrywały się (inaczej obserwator, to co jest np. wysokością będzie interpretował jako szerokość) i przesunąć dane, by obserwator miał je przed sobą (to co ma z tyłu „głowy” nie będzie widoczne).

9 Przekształcenie układu danych do układu obserwatora
Układ obserwatora 0xyz, to układ, w którym płaszczyzna P pokrywa się z płaszczyzną z=0. Układ obserwatora nie jest określony jednoznacznie, można przyjąć, że jego początek pokrywa się z początkiem układu 0.

10 Przekształcenie układu danych do układu obserwatora
Przekształcenie układu danych do układu obserwatora będzie polegało wtedy na wykonaniu takich obrotów wokół osi układu by wektor [xn, yn, zn] miał kierunek osi z i przeciwny do niej zwrot. Szukaną transformację można otrzymać w dwu kolejnych krokach: Obrót wokół osi z o kąt f, Obracamy układ 0x’y’z’ wokół y o kąt y+180o

11 Przekształcenie układu danych do układu obserwatora
Obrót wokół osi z o kąt f=arctg(yn/xn) dla xn<>0 lub o kąt f=90o gdy xn=0. Macierz R(f,z) jest postaci: R(f,z)= gdzie s=(xn2+yn2)1/2. Po tym obrocie wektor [xn, yn, zn] będzie miał postać [s,0,zn].

12 Przekształcenie układu danych do układu obserwatora
Obracamy układ 0x’y’z’ wokół y o kąt y+180o. Macierz obrotu jest postaci: R(y+180o,y)= Składowe wektora [s,0,zn] w nowym układzie są postaci: [0,0,-t], gdzie t=(s2+zn2)1/2

13 Przekształcenie układu danych do układu obserwatora
Po wykonaniu tych dwu obrotów rzutnia P pokrywa się z płaszczyzną rzutowania, ale osie x i y mogą mieć dowolne ułożenie. W tym celu należy wykonać jeszcze jeden obrót, który będzie trzymał ustalony kierunek. Ten kierunek będzie zachowany, gdy wersor e2=[0,1,0] w nowym układzie będzie miał składową x=0. Ogólna postać macierzy obrotu jest następująca:

14 Przekształcenie układu danych do układu obserwatora
W takim razie wersor e2 po wykonaniu tego obrotu będzie następujący: [r21, r22, r23]. W takim razie należy dokonać jeszcze obrotu o kąt h=arctg(r21/ r22) wokół osi z. Taka transformacja zmieniająca jedynie osie x i y na rzutni P jest postaci:

15 Przekształcenie układu danych do układu obserwatora
R(h,z)=

16 Klasyfikacja rzutów

17 Rzutowanie w układzie obserwatora
Po przekształceniach opisywanych w poprzednim punkcie dalsze przekształcenia są proste. Rozważamy następujące rodzaje rzutów: Rzut równoległy ortogonalny: kierunek rzutu jest prostopadły do płaszczyzny rzutowania P. W takim razie punkt P=(x,y,z) będzie miał współrzędne P’=(x,y,0). Rzut równoległy nieortogonalny: kierunek rzutu tworzy z rzutnią P kąt a. Wtedy na podstawie rysunku możemy wyliczyć współrzędne w nowym układzie:

18 Rzutowanie w układzie obserwatora rzut ortogonalny
x’=x+rcosf, y’=y+rsinf, gdzie r=zctga. Najczęściej przyjmowanymi praktycznymi wartościami kątów f i a są: f =30o i a=45o, f =30o i a=arctg(1/2)=63o - aksonometria kawalerska f =30o i a=45o - aksonometria wojskowa.

19 Rzutowanie w układzie obserwatora rzut srodkowy
Rzut środkowy: z rysunku widać, że na zasadzie podobieństwa możemy otrzymać następujące zależności: x’=xd/(z+d), y’=yd/(z+d)

20 Informacje o obliczeniach numerycznych
Arytmetyka binarna (układ oparty o podstawę 2). Liczba rzeczywista jest postaci: x=s m 2c Gdzie s=1, c jest liczbą całkowitą postaci: ci=1, m[0.5,1), gdzie m jest mantysą i ma własność: |m-mt|<1/2*2-t, gdzie

21 Informacje o obliczeniach numerycznych
Przyjmijmy, że rd(x) oznacza reprezentację zmiennopozycyjną liczby x, wtedy rd(x)=s 2c mt i zachodzi  Co oznacza, że zachodzi: rd(x)=(1+e)x, |e|<h, gdzie h oznacza dokładność maszynową.

22 Informacje o obliczeniach numerycznych
Przykład 1: Dane są dwie proste: y=a1x+b1, y=a2x+b2. Należy wyznaczyć punkt przecięcia. Oczywiście zachodzi: Co będzie, gdy a2a1.

23 Informacje o obliczeniach numerycznych
Przykład 2: Dane jest funkcja: f(x,y)=x2-y2. Należy obliczyć wartość tej funkcji. Obliczając: rd(x2)=rd(x)*rd(x)=(1+e0)*x*(1+ e0)*x=(1+ e1)x2, gdzie e1=2 e0+ e022 e0. rd(y2)=(1+ e2)y2, gdzie e22 e0. Wobec tego zachodzi

24 Informacje o obliczeniach numerycznych
Inna metoda: W tym przypadku popełniany jest mały błąd względny.

25 Przykład praktyczny: I algorytm
Narysować n-kąt foremny. I algorytm: Podstaw DF=2* /n Przesuń pisak do (1,0) Dla i=1,...,m Oblicz F=i*DF Rysuj odcinek od poprzedniego położenia pióra do (cosF, sinF). Rysunek jest dobrze narysowany (małe błędy obliczeń).

26 Przykład praktyczny: II algorytm
Podstaw DF= /n Przesuń pisak do (1,0) F=0 Dla i=1,...,m Oblicz F=F+DF Rysuj odcinek od poprzedniego położenia pióra do (cosF, sinF). Rysunek wychodzi poprzesuwany o pewien kąt wynikający z kumulujących się błędów obliczeń.


Pobierz ppt "Grafika komputerowa Rzutowanie."

Podobne prezentacje


Reklamy Google