Μετασχηµατισµοίσυντεταγµένων -...

37
Μετασχηματισμοί συντεταγμένων Περιεχόμενα ενότητας: Έννοια και χρησιμότητα του μετασχηματισμού συντεταγμένων Μητρώα μετασχηματισμού Συντεταγμένες μοντέλου Μετασχηματισμός μοντέλου Στοιχειώδεις μετασχηματισμοί συντεταγμένων ετατόπιση περιστροφή κλπ) Σύνθετοι μετασχηματισμοί Αλλαγή συστήματος συντεταγμένων

Transcript of Μετασχηµατισµοίσυντεταγµένων -...

Μετασχηµατισµοί συντεταγµένων

Περιεχόµενα ενότητας:

•Έννοια και χρησιµότητα του µετασχηµατισµού συντεταγµένων•Μητρώα µετασχηµατισµού•Συντεταγµένες µοντέλου – Μετασχηµατισµός µοντέλου•Στοιχειώδεις µετασχηµατισµοί συντεταγµένων (µετατόπισηπεριστροφή κλπ)•Σύνθετοι µετασχηµατισµοί•Αλλαγή συστήµατος συντεταγµένων

Η έννοια του µετασχηµατισµού συντεταγµένων

Μετασχηµατισµός συντεταγµένων = Κανόνας αντιστοίχισης

(x,y,z) (x’, y’, z’)

∆ηλώνοντας ένα σηµείο µε συντεταγµένες (x, y, z ) ορίζουµε στησκηνή ένα σηµείο µε συντεταγµένες (x’,y’,z’).

Σε µορφή µητρώων:

M: µητρώο µετασχηµατισµού

⎥⎥⎥⎥

⎢⎢⎢⎢

⋅=

⎥⎥⎥⎥

⎢⎢⎢⎢

11'''

zyx

Mzyx

Ποια η χρησιµότητα των µετασχηµατισµώνσυντεταγµένων;

Υπάρχουν περιπτώσεις στις οποίες ένας µετασχηµατισµόςσυντεταγµένων αποδεικνύεται αναγκαίος.

Παράδειγµα:Πολλαπλές κλήσεις µιας display list για τη σχεδίαση πολλαπλώνσχηµάτων.

Το εύρος των συντεταγµένων στο οποίο εκτείνεται το σχήµα µιαςdisplay list είναι προκαθορισµένο, επιλέγεται αυθαίρετα και µπορείνα διαφέρει από τις επιθυµητές διαστάσεις.

Χωρίς µετασχηµατισµό συντεταγµένων, κάθε εκτέλεση της λίσταςαπεικόνισης θα σχεδίαζε το σχήµα στην ίδια (αρχικάκαθορισµένη) θέση της σκηνής και µε τις ίδιες διαστάσεις πουέχουν οριστεί µέσα στη λίστα.

Συντεταγµένες µοντέλου – Μετασχηµατισµόςµοντέλου

Συντεταγµένες µοντέλου:οι συντεταγµένες µε τις οποίες δηλώνεται ένα πρότυπο σχήµα

(συνήθως µέσα σε µια display list)

Μετασχηµατισµός µοντέλου:αντιστοίχιση συντεταγµένων µοντέλου σε συντεταγµένες σκηνής

⎥⎥⎥⎥

⎢⎢⎢⎢

⋅=

⎥⎥⎥⎥

⎢⎢⎢⎢

11'''

mod zyx

Mzyx

elview

Μητρώα µετασχηµατισµού

Μητρώο µετασχηµατισµού µοντέλου (modelview matrix):Μετασχηµατίζει τις συντεταγµένες µοντέλου σε συντεταγµένεςσκηνής.

Μητρώο προβολής (projection matrix):Μετασχηµατίζει τις συντεταγµένες σκηνής ανάλογα µε τον τύποπροβολής που επιλέγουµε (περισσότερα στο Κεφάλαιο 4).

Τα µητρώα µετασχηµατισµού µοντέλου και προβολής έχουνδιαστάσεις 4x4.

Οι µετασχηµατισµοί µεντέλου και προβολής εκτελούνταιαλυσιδωτά .

Επεξεργασία µητρώων µετασχηµατισµού

•Σε κάθε χρονική στιγµή µπορούµε να επεξεργαστούµε µόνο ένααπό τα µητρώα µετασχηµατισµού µοντέλου ή προβολής

•Η επιλογή του µητρώου που επεξεργαζόµαστε γίνεται µε τηνεντολή glMatrixMode

void glMatrixMode(GLenum matrix);

GL_MODELVIEW: µετάβαση στην κατάσταση επεξεργασίαςµητρώου µετασχηµατισµού µοντέλουGL_PROJECTION: µετάβαση στην κατάσταση επεξεργασίαςµητρώου προβολής

Τα µητρώα µετασχηµατισµών ως µεταβλητέςκατάστασης

•Τα µητρώα µετασχηµατισµών, διατηρούν τις τιµές που τους έχουνανατεθεί την τελευταία φορά .

•Αν απαιτηθεί η αρχικοποίησή τους, αυτή θα πρέπει να δηλωθείρητά από τον προγραµµατιστή µε την εντολή glLoadIdentity.

void glLoadIdentity();

Aρχικοποιεί το τρέχον µητρώο µετασχηµατισµού στην τιµή I4

Τα µητρώα µετασχηµατισµού µοντέλου και προβολής έχουν ωςαρχική τιµή τον πίνακα Ι4. Εποµένως, µε τις αρχικές τουςρυθµίσεις, δεν προκαλούν µεταβολή στις συντεταγµένες µοντέλου.

⎥⎥⎥⎥

⎢⎢⎢⎢

=

1000010000100001

I

Προσοχή στην αρχικοποίηση των µητρώων!

•Ο προγραµµατιστής, πριν δώσει εντολή αρχικοποιήσης µητρώου, θαπρέπει να βεβαιωθεί ότι η εντολή θα αρχικοποιήσει το επιθυµητόµητρώο µετασχηµατισµού.

Παράδειγµα 1: Αρχικοποίηση µητρώου µετασχηµατισµού µοντέλουglMatrixMode(GL_MODELVIEW);glLoadIdentity( ); // Αρχικοποίηση του µητρώου µετασχηµατισµούµοντέλου

Παράδειγµα 2: Αρχικοποίηση µητρώου προβολήςglMatrixMode(GL_PROJECTION);glLoadIdentity( );

Στοιχειώδεις µετασχηµατισµοί

•Κατηγορίες στοιχειωδών µετασχηµατισµών:•Μετατόπιση•Κλιµάκωση•Κλίση•Περιστροφή

Μετατόπιση

•Μετατόπιση σηµείου στο χώρο κατά (xtr, ytr,ztr) ως προς τις διευθύνσειςx,y,z.

tr

tr

tr

zzzyyyxxx

+=+=+=

'''

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

11000100010001

1'''

zyx

zyx

zyx

tr

tr

tr

•Μητρώο µετατόπισης

Εντολή µετατόπισης

•Ο ορισµός µητρώου µετατόπισης κατά (xtr, ytr,ztr) γίνεται µε τις εντολέςglTranslate*.

glTranslatef ( GLfloat xtr,GLfloat ytr, GLfloat ztr );glTranslated ( GLdouble xtr, GLdouble ytr, GLdouble ztr );

xtr ytr ztr οι µετατοπίσεις κατά τους άξονες x, y και z.

Κλιµάκωση

•Οι συντεταγµένες πολλαπλασιάζονται µε ένα σταθερό συντελεστή ανάδιεύθυνση

sx, sy, sz: συντελεστές κλιµάκωσης ως προς τις διευθύνεις x y και z αντίστοιχα

zsz

ysyxsx

z

y

x

⋅=

⋅=⋅=

'

''

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

11000000000000

1'''

zyx

ss

s

zyx

z

y

x

•Μητρώο µετασχηµατισµού κλιµάκωσης

Κλιµάκωση

•Στην OpenGL, η κλιµάκωση εκτελείται µε τις εντολές glScale*:

void glScalef(GLfloat sx, Glfloat sy, Glfloat sz);void glScaled(GLdouble sx, Gldouble sy Gldouble sz);

•sx, sy, sz οι συντελεστές κλιµάκωσης κατά τις διευθύνσεις x, y, z αντίστοιχα.

Ανάκλαση

•Ειδική περίπτωση κλιµάκωσηςsx=-1 ή sy=-1 ή sz=-1

•Η ανάκλαση εξάγει το συµµετρικό ενός σηµείου ως προς το επίπεδοx=0, y=0 ή z=0 αντίστοιχα

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−

=

1000010000100001

REFXS

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−

=

1000010000100001

REFYS

⎥⎥⎥⎥

⎢⎢⎢⎢

−=

1000010000100001

REFZS

Κλίση

•η τιµή µίας από τις συντεταγµένες x,y,z των σηµείων µεταβάλλεταιγραµµικά ως προς µία ή περισσότερες εκ των άλλων δύοσυντεταγµένων

•Πχ γραµµική µεταβολή της συντεταγµένης x ως προς y

•α : συντελεστής κλίσης

•Στο παραπάνω παράδειγµα η συντεταγµένη x’ µεταβάλλεται γραµµικάως προς την απόστασή του σηµείου x,y,z από το επίπεδο y=0 (που είναιίση µε y)

yaxx ⋅+='

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

1100001000010001

1'''

zyxa

zyx

Κλίση ως προς δύο επίπεδα

•η τιµή µίας από τις συντεταγµένες x,y,z των σηµείων µεταβάλλεταιγραµµικής µεταβολής ως προς δύο συντεταγµένες δύο συντεταγµένων

•Πχ γραµµική µεταβολή της συντεταγµένης z ως προς x και y

•α,β : συντελεστές κλίσης

•Στο παραπάνω παράδειγµα η συντεταγµένη z’ µεταβάλλεται γραµµικάως προς την απόστασh του σηµείου x,y,z από τα επίπεδα y=0 και x=0

zybxaz +⋅+⋅='

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

110000100100001

1'''

zyx

bazyx

Κλίση ως προς τυχαία επίπεδα αναφοράς

•Μετασχηµατισµοί κλίσης µε αναφορά τυχαία επίπεδα x=x0 y=y0 z=z0

•Πχ γραµµική µεταβολή της συντεταγµένης z ως προς x και y

•Για τον ορισµό µετασχηµατισµών κλίσης δεν υπάρχει συγκεκριµένηεντολή στην OpenGL .

•Ο ορισµός µητρώων κλίσης γίνεται µε την άµεση ανάθεσης τιµών σταστοιχεία του µητρώου µετασχηµατισµού µοντέλου.

( ) ( ) zyybxxaz +−⋅+−= 00'

( )⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

⋅+⋅−=

⎥⎥⎥⎥

⎢⎢⎢⎢

110001

00100001

1'''

00 zyx

ybxabazyx

Περιστροφή

•Η περιστροφή ενός σηµείου κατά γωνία φ (επιπέδου XY) •Άξονας περιστροφής στην αρχή των αξόνων του συστήµατοςσυντεταγµένων σκηνής

yxyyxx⋅+⋅=⋅−⋅=

φφφφ

cossin'sincos'

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ −

=

⎥⎥⎥⎥

⎢⎢⎢⎢

11000010000cossin00sincos

1'''

zyx

zyx

φφφφ

Περιγραφή περιστροφής στις 3 διαστάσεις

Θεωρούµε την πρόσθετη συνθήκη z’ = z

Περιστροφή ως προς τον άξονα Oz

Μητρώο περιστροφής ως προς τον άξονα Oz

Περιστροφή ως προς Ox

•ΟΙ περιστροφές ως προς τους άλλους άξονες του καρτεσιανούσυστήµατος συντεταγµένων σκηνής

•Οι εξισώσεις προκύπτουν µε κυκλική εναλλαγή µεταβλητών:

•Πρώτη εναλλαγή µεταβλητών: περιστροφή σηµείου στο χώρο κατάγωνία φ µε άξονα περιστροφής τον Ox

xzyx →→→

zyzzyy

xx

⋅+⋅=⋅−⋅=

=

φφφφ

cossin'sincos'

'

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−

=

⎥⎥⎥⎥

⎢⎢⎢⎢

110000cossin00sincos00001

1'''

zyx

zyx

φφφφ

Περιστροφή ως προς Oy

•∆εύτερη εναλλαγή µεταβλητών: περιστροφή σηµείου στο χώρο κατάγωνία φ µε άξονα περιστροφής τον Oy

xzyx →→→

zxzyy

zxx

⋅+⋅−==

⋅+⋅=

φφ

φφ

cossin''

sincos'

⎥⎥⎥⎥⎤

⎢⎢⎢⎢⎡

⎥⎥⎥⎥⎤

⎢⎢⎢⎢⎡

−=

⎥⎥⎥⎥⎤

⎢⎢⎢⎢⎡

0cos0sin00100sin0cos

'''

zyx

zyx

φφ

φφ

⎦⎣⎦⎣⎦⎣ 110001

Εντολές περιστροφής στην OpenGL

•Μπορούµε να εκτελέσουµε µετασχηµατισµούς περιστροφής ως προςοποιαδήποτε άξονα περιστροφής.

•Ορίζουµε ένα διανύσµα που η διεύθυνσή του ταυτίζεται µε τη διεύθυνσητου άξονα περιστροφής. Ο άξονας περιστροφής διέρχεται από την αρχήτων αξόνων.

•Οι µετασχηµατισµοί περιστροφής εκτελούνται µε τις εντολές glRotate*

glRotatef (Glfloat angle, GLfloat vx, GLfloat vy, GLfloat vz );glRotated (GLdouble angle, GLdouble vx, GLdouble vy, GLdouble vz );

angle: η γωνία περιστροφής σε µοίρες

vx,vy,vz : οι συνιστώσες διανύσµατος που εκφράζει τη διεύθυνση τουάξονα περιστροφής

Η φορά περιστροφής καθορίζεται από τη φορά του διανύσµατος(vx,vy,vz) και σύµφωνα µε τον κανόνα του δεξιού χεριού.

Σύνθετοι µετασχηµατισµοί

Σύνθετος µετασχηµατισµός: Μία αλυσιδωτή εφαρµογή στοιχειωδώνµετασχηµατισµών

Ένας σύνθετος µετασχηµατισµός δηµιουργείται από τους επιµέρουςστοιχειώδεις µετασχηµατισµούς που αναλύθηκαν.

Σύµβαση: Το µητρώο ενός σύνθετου µετασχηµατισµού αναπαρίσται µε τηµορφή γινοµένου µητρώων στοιχειωδών µετασχηµατισµών

Σε 3∆ σύνθετους µετασχηµατισµούς, για να είναι εφικτή η αναπαράστασητους σε µορφή γινοµένου, τα µητρώα θα πρέπει να έχουν διαστάσεις 4x4.

Οµογενείς συντεταγµένες

•Εάν:- ένας 3∆ σύνθετος µετασχηµατισµός περιέχει έναν µετασχηµατισµόµετατόπισης- χρησιµοποιούµε µητρώα διαστάσεων 3x3,δεν υπάρχει τρόπος τα µητρώα να ενοποιηθούν σε µορφή γινοµένου.

•Λύση:Eπεκτείνουµε κατά 1 τη διάσταση των µητρώων µετασχηµατισµού

•Αναπαριστούµε τα σηµεία µε τη µορφή τετραδιάστατων διανυσµάτων (µετη µορφή οµογενών συντεταγµένων (x,y,z,h).

•Η παράµετρος h παίρνει την τιµή 1

•Επεκτείνοντας τη διάσταση των µητρώων κατά 1 επιτρέπουµε τοσυνδυασµό όλων των στοιχειωδών σε ένα σύνθετο µητρώο µε σχέσειςγινοµένου.

Παράδειγµα: σύνθετος µετασχηµατισµόςπεριστροφής και µετατόπισης

•4x4 µητρώο περιστροφής

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ −

=

1000010000cossin00sincos

θθθθ

R

⎥⎥⎥⎥

⎢⎢⎢⎢

1000100010001

tr

tr

tr

zyx

•4x4 µητρώο µετατόπισης

O σύνθετος µετασχηµατισµός προκύπτει από το γινόµενο τωνµητρώων στοιχειωδών µετασχηµατισµών

Πολλαπλασιασµός στοιχειωδών µητρώωνµετασχηµατισµού

•Εντολές έµµεσης δήλωσης στοιχειωδών µετασχηµατισµών (glTranslate, glTRotate κλπ ) δεν αντικαθιστούν το τρέχον µητρώο µετασχηµατισµούαλλά πολλαπλασιάζονται µε αυτό

•Κάθε στοιχειώδες µητρώο Μ που δηλώνουµε έµµεσα πολλαπλασιάζεταιµε το τρέχον µητρώο µετασχηµατισµού C από δεξιά.

•Στον πολλαπλασιασµό µητρώων δεν ισχύει η αντιµεταθετική ιδιότητα

•Έχει µεγάλη σηµασία η διαδοχή µε την οποία επιβάλλονται οιστοιχειώδεις µετασχηµατισµοί.

MCCM ≠

MCC ⋅='

Σειρά δήλωσης µετασχηµατισµών

•Στην OpenGL, οι συντεταγµένες των σηµείων εκφράζονται µε τη µορφήδιανυσµάτων στηλών.

⎥⎥⎥⎥

⎢⎢⎢⎢

⋅=

⎥⎥⎥⎥

⎢⎢⎢⎢

11'''

zyx

Mzyx

⎥⎥⎥⎥

⎢⎢⎢⎢

⋅⋅=

⎥⎥⎥⎥

⎢⎢⎢⎢

11'''

21 zyx

MMzyx

Τα µητρώα στοιχειωδών µετασχηµατισµών δηλώνονται από αριστερά προςτα δεξιά. Εποµένως το µητρώο που επιδρά πρώτο (Μ2) πρέπει να δηλωθείτελευταίο.

•Τα µητρώα µετασχηµατισµού πολλαπλασιάζονταιµε τα διανύσµατα στήλες των συντεταγµένων µόνοαπό αριστερά.

Έστω ο σύνθετος µετασχηµατισµός

Παράδειγµα: σύνθετος µετασχηµατισµόςπεριστροφής και µετατόπισης

⎥⎥⎥⎥

⎢⎢⎢⎢

⋅⋅=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ −

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

111000010000cossin00sincos

1000100010001

1'''

zyx

RTzyx

zyx

zyx

tr

tr

tr

θθθθ

•Προγραµµατιστική υλοποίηση µετασχηµατισµού:

glMatrixMode(GL_MODELVIEW); //Μετάβαση στην κατάστασηΕπεγεργασίας του µητρώουµετασχηµατισµού µοντέλου

glLoadIdentity( ); // αρχικοποίηση µητρώου µετασχηµατισµού µοντέλου(εάν αυτή είναι απαραίτητη)

glTranslate{fd}(xtr,ytr,ztr); // Ορισµός µητρώου µετατόπισης

glRotate{fd}(θ,0,0,1); //Ορισµός µητρώου περιστροφής

Άµεσος ορισµός µητρώου µετασχηµατισµού

•Στην OpenGL o προγραµµατιστής έχει την ευχέρεια να παρακάµψει τιςπαραπάνω συναρτήσεις δήλωσης µετασχηµατισµών και να τροποποιήσειαπευθείας τις τιµές του τρέχοντος µητρώου µετασχηµατισµού (άµεσοςορισµός)

•δυνατότητα ορισµού µετασχηµατισµών που δε µπορούν να δηλωθούν µεεντολές έµµεσου σχηµατισµού (πχ µετασχηµατισµοί κλίσης)

∆ύο κατηγορίες:α) Αντικατάσταση του τρέχοντος µητρώου µετασχηµατισµούβ) Πολλαπλασιασµός τρέχοντος µητρώου µετασχηµατισµού µε αυθαίρετοµητρώο

Αντικατάσταση του τρέχοντος µητρώουµετασχηµατισµού

void glLoadMatrixf(GLfloat *elem16);void glLoadMatrixd(GLdouble *elem16 );

elem16: µητρώο που περιέχει τις προς ανάθεση τιµές

⎥⎥⎥⎥

⎢⎢⎢⎢

=

]15[]11[]7[]3[]14[]10[]6[]2[]13[]9[]5[]1[]12[]8[]4[]0[

16

elemelemelemelemelemelemelemelemelemelemelemelemelemelemelemelem

elem

Πολλαπλασιασµός του τρέχοντος µητρώουµετασχηµατισµού

void glMultMatrixf (GLfloat *elem16);void glMultMatrixd (GLdouble *elem16);

elem16: µητρώο µετασχηµατισµού δοσµένο υπό τη µορφή οµογενώνσυντεταγµένων

•H εντολή glMultMatrix* πολλαπλασιάζει το µητρώο elem16 µε το τρέχονµητρώο µετασχηµατισµού C από δεξιά.

16' elemCC ⋅=

Στοίβες µητρώων µετασχηµατισµού

•Για κάθε κατηγορία µητρώου µετασχηµατισµού (µοντέλου και προβολής) η µηχανή της OpenGL προβλέπει την ύπαρξη µιας στοίβας

•Oι στοίβες µητρώων προσφέρουν τη δυνατότητα αποθήκευσηςπολλαπλών προφίλ για κάθε µητρώο

•Το ενεργό µητρώο µετασχηµατισµού βρίσκεται στην κορυφή της κάθεστοίβας.

Προσθήκη µητρώου στη στοίβα

Τακτική αποθήκευσης µητρώων στη στοίβαΤροποποιούµε το ενεργό µητρώο µετασχηµατισµού και το προωθούµεκατά ένα επίπεδο στη στοίβα.

void glPushMatrix();Μεταφέρει το ενεργό µητρώο και όσα βρίσκονται χαµηλότερα από αυτόκατά ένα επίπεδο προς τα κάτω στη στοίβα.

Ανάκληση µητρώου από στη στοίβα

•Η ανάκληση των µητρώων από τη στοίβα γίνεται βάσει της λογικής last in-first out.

void glPopMatrix();

•Η εκτέλεση της glPopMatrix µεταθέτει κάθε µητρώο κατά µία θέση προςτα πάνω στη στοίβα.

•Το ενεργό µητρώο αντικαθίσταται από το αµέσως επόµενό του στηστοίβα.

Αλλαγή συστήµατος συντεταγµένων

.

•Οι δηλώσεις µετασχηµατισµών που αναλύσαµε προηγουµένως, µπορούν να χρησιµοποιηθούν και για την αλλαγή συστήµατοςσυντεταγµένων

•Ανάγουν την περιγραφή της σκηνής σε σύστηµα συντεταγµένωνπου προκύπτει από το αρχικά καθορισµένο σύστηµα µεδιαδικασίες στοιχειωδών µετασχηµατισµών (χρήσιµη για τηνπαρατήρηση µιας σκηνής από διαφορετικές οπτικές γώνίες)

•Μετατόπιση συστήµατος συντεταγµένων

•Περιστροφή συστήµατος συντεταγµένων

Μετατόπιση συστήµατος συντεταγµένων

.

Η περιγραφή της σκηνής ως προς το µετατοπισµένο σύστηµα συντεταγµένωνµε αρχή στο σηµείο xtr,ytr,zre ισοδυναµεί µε µετατόπιση όλων των σηµείωντης σκηνής κατά (–xtr, -ytr, -ztr)

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−

=

1000100010001

tr

tr

tr

zyx

T

Εντολή ορισµού:

glTranslate{fd}(-xtr,-ytr,-ztr);

Περιστροφή συστήµατος συντεταγµένων

.

H περιγραφή της σκηνής ως προς το περιστραµµένο σύστηµα συντεταγµένωνκατά γωνία θ ισοδυναµεί µε την περιστροφή όλων των σηµείων της σκηνήςκατά γωνία –θ.

Εντολή ορισµού

glRotate{fd}(-θ,0,0,1);

( ) ( )( ) ( )

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−−−−−

=

⎥⎥⎥⎥

⎢⎢⎢⎢

11000010000cossin00sincos

1'''

zyx

zyx

θθθθ

Περιστροφή ΣΣ ως προς τον άξονα Oz κατά γωνία θ

Τέλος ενότητας!

.