WYKŁAD TRANSFORMACJE -D, PROCEDURA WIZUALIZACJI -D Plan wkładu: Tranforaje eleentarne w przetrzeni -D Składanie tranforaji Ogólna proedura wizualizaji w -D Obinanie w oknie protokątn. Tranforaje -D Tranforaje eleentarne przeunięie, ziana kali, obrót wokół środka układu wpółrzędnh. Przeunięie ( tranlation : = + t = + t t = t = (, (, Ziana kali ( aling : =. =.5 Obrót wokół środka układu wpółrzędnh (rotation: φ =3 (, (, (, φ (, = = = oφ inφ = oφ + inφ
(, Inn poób zapiu tranforaji eleentarnh - wpółrzędne jednorodne ( hoogeneou oordinate rin(φ + α rinα ro(φ + α roα φ α (, = r o( α + φ = r oα oφ r inα inφ = r in( α + φ = r inα oφ r oα inφ = r oα, = r inα = oφ inφ = oφ + inφ Augut Ferdnand Möbiu ( 79 - wpółrzędne przed tranforają (, (,, wpółrzędne po tranforaji [ ] [ ] (, (,, (, (,, z Związek poiędz określoni wżej wektorai ożna zapiać w potai Przeunięie: Równanie [ ] = [ ] zatępuje równanie = + t = + t [ ] = [ ] 3 t t 3 3 3 33 Tranforaję przeunięia opiuje wię aierz przeunięia Ziana kali: Równanie T( t zatępuje równanie,t = t = = [ ] = [ ] t
Tranforaję kalowania opiuje teraz aierz S(, = Obrót wokół środka układu wpółrzędnh: Równanie zatępuje równanie = oφ inφ = oφ + inφ [ ] = [ ] oφ inφ inφ oφ Obrót opiuje w konekwenji aierz Wnioek: oφ R( φ = inφ inφ oφ Po wprowadzeniu wpółrzędnh jednorodnh wztkie trz tranforaje eleentarne opiane zotał w ten a poób. Wpółrzędne punktu po wkonaniu tranforaji ożna wznazć nożą, wektor opiują wpółrzędne punktu przed tranforają, przez odpowiednią aierz. gdzie [ ] = [ ] M M = T, S lub R. Składanie tranforaji Przkładowe zadanie: Obróić obiekt wokół punktu (, o kąt φ, poniejzają go dwukrotnie. φ (, Pozukiwana tranforaja zotanie wznazona w kilku krokah. Krok Przeunięie obiektu tak, ab punktu (, znalazł ię w punkie (,. p = [ ] [ ] p = p = p T(, (, t = - t = - Opiać określoną wżej tranforaję prz poo wzoru. 3
Krok Przekalować obiekt z paraetrai kalowania = /, = /. = / = / Krok 3 Obróić obiekt wokół środka układu wpółrzędnh o kąt φ. φ p = p T(, S(, p = p T(, S(, R( φ Krok Przeunięie obiektu tak, ab punkt (, znalazł ię w punkie (,. (, p = p T(, S(, Tranforaja zotała znaleziona. Jej aierz oże zotać wlizona po ponożeniu ztereh aierz tranforaji eleentarnh. R( φ T(, Tranforaja ogólniejza M = T(, S(, Można pokazać, że M = R( φ T(, Oblizanie nowh wpółrzędnh punktu; dodawania ziennoprzeinkowe, nożenia ziennoprzeinkowe. 3 3 d d
Inne tranforaje (przkład: Nie wztkie tranforaje ogą bć wrażone jako złożenia trzeh, zdefiniowanh uprzednio tranforaji eleentarnh. Częto touje ię, dla przkładu: Odbiie ( refletion : Śinanie ( hear : SH = (, = (, (, = (, (, (, [ ] = [ ] [ ] = [ ] SH 3. Ogólna proedura wizualizaji -D Algort wizualizaji -D wa Okno oberwatora (Window va Okno urządzenia (Viewport. Zdefiniować obiekt w układzie wpółrzędnh oberwatora.. W układzie wpółrzędnh oberwatora określić okno oberwatora 3. W układzie wpółrzędnh urządzenia określić okno urządzenia. win vin. Zodfikować opi obiektu uuwają te eleent, które znajdują ię poza okne oberwatora (obinanie. win Układ wpółrzędnh oberwatora (World Coordinate wa vin Układ wpółrzędnh urzadzenia (Devie Coordinate va 5. Przetranforować opi obiektu z wnętrza okna oberwatora do wnętrza okna urządzenia, toują tranforaję p v = p w T( w in, w in S(, T( v in, v in prz z 5
= v a w a v in w in. Narować obraz obiektu na ekranie = v a w a v in w in Obinanie odinka - algort Cohena i Sutherlanda Założenie: W przetrzeni oberwatora dan jet zbiór odinków. Każd odinek opian jet przez punkt pozątkow i końow.. Obinanie (lipping wa P Okno oberwatora (Window Okno urządzenia (Viewport P win win wa Przkładow układ odinków w przetrzeni oberwatora Kodowanie obzarów w przetrzeni oberwatora: Okno oberwatora bit, bit3, bit, bit bit = - na lewo od okna oberwatora, bit = - na prawo od okna oberwatora, bit3 = - w dół od okna oberwatora, bit = - w górę od okna oberwatora. Krok Dla każdego punktu końowego odinka oblizć różnie wpółrzędnh punktu końowego i grani okna oberwatora. Krok α = α α = α = w in = w a 3 w in w a Zakodować wztkie punkt końowe odinków według reguł: jeżeli α i > to jeżeli α i to biti = to biti =
Krok 3 Sprawdzić kod par punktów końowh dla wztkih odinków. P Jeżeli:. kod P = kod P = - odinek leż ałkowiie wewnątrz okna oberwatora.. biti dla P = biti dla P = - odinek leż ałkowiie na zewnątrz okna oberwatora. wa win P pozotawić odinki leżąe wewnątrz okna, uunąć odinki leżąe na zewnątrz okna, jeśli wzerpano w ten poób wztkie odinki zakońzć algort, w przeiwn przpadku wkonać krok. Krok win wa Efekt działania algortu po wkonaniu kroku 3 Dla pozotałh odinków, którh punkt końowe leżą na lewo, lub na prawo od grani okna oblizć nowe wpółrzędne th punktów według wzorów: = win dla punktów leżąh na lewo od okna, = wa dla punktów leżąh na prawo okna, wa P gdzie = k + ( k win P, - nowe wpółrzędne punktu końowego, k, k - poprzednie wpółrzędne punktu. Zakodować nowe punkt końowe według reguł opianej w kroku. Powtórzć krok 3. win wa Efekt po wkonaniu pierwzego przebiegu kroku 3 Dla pozotałh odinków, którh punkt końowe leżą pod, lub ponad graniai okna oblizć nowe wpółrzędne th punktów według wzorów: = win dla punktów leżąh poniżej okna, = wa dla punktów leżąh powżej okna, 7
gdzie = k + ( k /, - nowe wpółrzędne punktu końowego, k, k - poprzednie wpółrzędne punktu. Zakodować nowe punkt końowe według reguł opianej w kroku. Powtórzć krok 3. P wa P win win wa Końow efekt działania algortu obinania