grafika i komunikacja człowieka z komputerem
DESCRIPTION
Grafika i komunikacja człowieka z komputerem. Rzutowanie. Wprowadzenie. Podstawowym przekształceniem w grafice komputerowej jest rzutowanie, gdyż komputerowa wizualizacja obiektu wymaga by był on odwzorowany na płaską kartkę papieru. Rzuty można podzielić na dwie klasy: Rzuty równoległe, - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/1.jpg)
Grafika komputerowa
Rzutowanie
![Page 2: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/2.jpg)
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.
![Page 3: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/3.jpg)
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.
![Page 4: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/4.jpg)
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.
![Page 5: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/5.jpg)
Porównanie rzutów
Rzut równoległy Rzut perspektywiczny
![Page 6: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/6.jpg)
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 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.
![Page 7: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/7.jpg)
Przekształcenie układu danych do układu obserwatora
obserwator
dane
P
![Page 8: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/8.jpg)
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).
![Page 9: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/9.jpg)
Przekształcenie układu danych do układu obserwatora
• Układ obserwatora 0xyz, to układ, w którym płaszczyzna 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.
![Page 10: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/10.jpg)
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 – Obracamy układ 0x’y’z’ wokół y o kąt +180o
![Page 11: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/11.jpg)
Przekształcenie układu danych do układu obserwatora
• Obrót wokół osi z o kąt =arctg(yn/xn) dla xn<>0 lub o kąt =90o gdy xn=0. Macierz R(,z) jest postaci:
• R(,z)=
• gdzie s=(xn2+yn
2)1/2. Po tym obrocie wektor [xn, yn, zn] będzie miał postać [s,0,zn].
s
s
xy
yx
snn
nn
000
000
00
00
1
![Page 12: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/12.jpg)
Przekształcenie układu danych do układu obserwatora
• Obracamy układ 0x’y’z’ wokół y o kąt +180o.
Macierz obrotu jest postaci:
• R(+180o,y)=
• Składowe wektora [s,0,zn] w nowym układzie są postaci: [0,0,-t], gdzie t=(s2+zn
2)1/2
t000
0z0s
00t0
0s0z
t
1
n
n
![Page 13: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/13.jpg)
Przekształcenie układu danych do układu obserwatora
• Po wykonaniu tych dwu obrotów rzutnia 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:
![Page 14: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/14.jpg)
Przekształcenie układu danych do układu obserwatora
• R=
• 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 =arctg(r21/ r22) wokół osi z.
• Taka transformacja zmieniająca jedynie osie x i y na rzutni P jest postaci:
1000
0rrr
0rrr
0rrr
333231
232221
131211
![Page 15: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/15.jpg)
Przekształcenie układu danych do układu obserwatora
• R(,z)=
1000
000
0001
0010
1
uu
![Page 16: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/16.jpg)
Klasyfikacja rzutów
K lasyfikac ja rzu tó w
A kson om etryczn e
P rostokątn e
W ojskowe K awaleryjsk ie
U kośn e
R ó wn oleg łe
Jed n op u n ktowe D wu p u n ktowe Tró jp u n ktowe
P ersp ektywiczn e
R zu ty p lan arn e p łask ie
![Page 17: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/17.jpg)
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 . 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 . Wtedy na podstawie rysunku możemy wyliczyć współrzędne w nowym układzie:
![Page 18: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/18.jpg)
Rzutowanie w układzie obserwatorarzut ortogonalny
• x’=x+rcos, y’=y+rsin, gdzie r=zctg. • Najczęściej przyjmowanymi praktycznymi wartościami
kątów i są:• =30o i =45o, • =30o i =arctg(1/2)=63o - aksonometria kawalerska • =30o i =45o - aksonometria wojskowa.
![Page 19: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/19.jpg)
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)
![Page 20: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/20.jpg)
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
n
i
iicsc
0
2
1
2i
iicm
)1()1(
1
22
t
ti
iit ccm
![Page 21: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/21.jpg)
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+)x, ||<,
gdzie oznacza dokładność maszynową.
tttt
tt
m
c
m
c
m
mm
x
xxrd
22212)( )1(
)2()1(
![Page 22: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/22.jpg)
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 a2a1.
21
21
aa
bbx
![Page 23: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/23.jpg)
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+ e022 e0.
• rd(y2)=(1+ e2)y2, gdzie e22 e0.
• Wobec tego zachodzi 322
22
12
2232
22 1y-x
1y-x (1*x*(xy-x
yxyy
![Page 24: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/24.jpg)
Informacje o obliczeniach numerycznych
• Inna metoda:
• W tym przypadku popełniany jest mały błąd względny.
)1(*)(*)()1(*)1(*)1(*)(*)(
)1(*))1(*)(*)1(*)(())((
321321
32122
yxyxyxyx
yxyxyxyxyx
![Page 25: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/25.jpg)
Przykład praktyczny: I algorytm• Narysować n-kąt foremny. • I algorytm:• Podstaw DF=2*3.14159265/n• Przesuń pisak do (1,0)• Dla i=1,...,m• Oblicz =i*• Rysuj odcinek od poprzedniego położenia pióra do (cos, sin). • • • • • • •
Rysunek jest dobrze narysowany (małe błędy obliczeń).
![Page 26: Grafika i komunikacja człowieka z komputerem](https://reader036.vdocuments.net/reader036/viewer/2022062723/56813ff7550346895dab224c/html5/thumbnails/26.jpg)
Przykład praktyczny: II algorytm• Podstaw =3.14159265/n• Przesuń pisak do (1,0)• =0• Dla i=1,...,m• Oblicz • Rysuj odcinek od poprzedniego położenia pióra do (cos, sin). • • • • • • •
Rysunek wychodzi poprzesuwany o pewien kąt wynikający z kumulujących się błędów obliczeń.