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

Σχετικά έγγραφα
Κεφάλαιο 3ο Μετασχηµατισµοί συντεταγµένων

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

Συστήματα συντεταγμένων

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΡΑΦΙΚΑ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκων: Ν. ΝΙΚΟΛΑΙΔΗΣ

ΕΡΓΑΣΤΗΡΙΟ ΠΟΛΥΜΕΣΩΝ ΚΑΙ ΓΡΑΦΙΚΩΝ

OpenGL. Μετασχηματισμοί. Μάθημα: Γραφικά Υπολογιστών και Εικονική Πραγματικότητα. Κατερίνα Παπαδοπούλου /

ισδιάστατοι μετασχηματισμοί ΚΕΦΑΛΑΙΟ 4: ισδιάστατοι γεωμετρικοί μετασχηματισμοί

ΕΙΣΑΓΩΓΗ ΣΤΗ ΡΟΜΠΟΤΙΚΗ - ΣΥΝΟΨΗ

Χωρικές Περιγραφές και Μετασχηµατισµοί

Γραφικά με υπολογιστές. Διδάσκων: Φοίβος Μυλωνάς. Διαλέξεις #11-#12

ΕΡΓΑΣΤΗΡΙΟ ΠΟΛΥΜΕΣΩΝ & ΓΡΑΦΙΚΩΝ. Τρισδιάστατοι γεωμετρικοί μετασχηματισμοί

Θεωρία μετασχηματισμών

Κεφάλαιο M3. Διανύσµατα

Μαθηματική Εισαγωγή Συναρτήσεις

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο

Μαθηματική Εισαγωγή - Διανύσματα 25/7/2014

Συστήματα συντεταγμένων

Μαθηματική Εισαγωγή Συναρτήσεις

Εισαγωγή στην OpenGL

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Συναφείς µετασχηµατισµοί:

Συνήθεις Διαφορικές Εξισώσεις Ι Ασκήσεις - 09/11/2017. Άσκηση 1. Να βρεθεί η γενική λύση της διαφορικής εξίσωσης. dy dx = 2y + x 2 y 2 2x

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER

2.1 Τρέχοντα Κύµατα. Οµάδα.

ΑΣΚΗΣΕΙΣ ΥΠΟΛΟΓΙΣΜΟΥ ΜΑΖΑΣ ΘΕΣΗΣ ΚΕΝΤΡΟΥ ΜΑΖΑΣ ΡΟΠΗΣ ΑΔΡΑΝΕΙΑΣ ΣΩΜΑΤΩΝ

Αριθμητική Ανάλυση και Εφαρμογές

ΙΑΛΕΞΕΙΣ ΜΗΧΑΝΙΚΗΣ. Την Κινηµατική (µελετάει την κίνηση των σωµάτων χωρίς να ενδιαφέρεται για τις δυνάµεις που ενεργούν στα σώµατα)

Α. Ροπή δύναµης ως προς άξονα περιστροφής

Κεφάλαιο 4 ο Προβολές

Ερωτήσεις αντιστοίχισης

Εφαρμοσμένα Μαθηματικά ΙΙ

5.1 Συναρτήσεις δύο ή περισσοτέρων µεταβλητών

Τα ρομπότ στην βιομηχανία

Εισαγωγή στη θεωρία μετασχηματισμών. Τα ρομπότ στην βιομηχανία

Κεφάλαιο M4. Κίνηση σε δύο διαστάσεις

Θέση και Προσανατολισμός

Κεφάλαιο 2. Διανύσματα και Συστήματα Συντεταγμένων

Γραφικά Υπολογιστών. Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Ανατολικής Μακεδονίας και Θράκης. Γραφικά Υπολογιστών ΣΤ Εξάμηνο. Δρ Κωνσταντίνος Δεμερτζής

ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΕΥΘΕΙΑ Β ΛΥΚΕΙΟΥ. i) Μία ευθεία με συντελεστή διεύθυνσης ίσο με το μηδέν, θα είναι παράλληλη στον άξονα των y.

Οι πράξεις που χρειάζονται για την επίλυση αυτών των προβληµάτων (αφού είναι απλές) µπορούν να τεθούν σε µια σειρά και πάρουν µια αλγοριθµική µορφή.

Κλασικη ιαφορικη Γεωµετρια

Μηχανισµοί & Εισαγωγή στο Σχεδιασµό Μηχανών Ακαδηµαϊκό έτος: Ε.Μ.Π. Σχολή Μηχανολόγων Μηχανικών - Εργαστήριο υναµικής και Κατασκευών - 3.

Ροµποτική. είτε µε το ανυσµατικό άθροισµα. όπου x = αποτελούν τα µοναδιαία ανύσµατα του

Εισαγωγή στην OpenGL: μέρος 2ο

Συνάρτηση f, λέγεται η διαδικασία µε βάση την. Παρατηρήσεις - Σχόλια f

ΦΥΣΙΚΗ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ

ΤΡΑΠΕΖΑ ΘΕΜΑΤΩΝ ΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΘΕΤΙΚΟΥ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΤΗΣ Β ΛΥΚΕΙΟΥ

Συνεχείς συναρτήσεις πολλών µεταβλητών. ε > υπάρχει ( ) ( )

ΕΦΑΠΤΟΜΕΝΗ ΤΗΣ ΓΡΑΦΙΚΗΣ ΠΑΡΑΣΤΑΣΗΣ ΜΙΑΣ ΣΥΝΑΡΤΗΣΗΣ

Χωρικές Περιγραφές και Ομογενείς Μετασχηματισμοί

Εφαρμοσμένα Μαθηματικά

Μηχανολογικό Σχέδιο με τη Βοήθεια Υπολογιστή. Αφφινικοί Μετασχηματισμοί Αναπαράσταση Γεωμετρικών Μορφών

Ειδικά Θέµατα Υπολογιστικής Όρασης & Γραφικής. Εµµανουήλ Ζ. Ψαράκης & Αθανάσιος Τσακαλίδης Πολυτεχνική Σχολή Τµήµα Μηχανικών Η/Υ & Πληροφορικής

Εφαρμοσμένα Μαθηματικά ΙΙ Εξέταση Σεπτεμβρίου Διδάσκων: Ι. Λυχναρόπουλος

Σήματα και Συστήματα. Διάλεξη 1: Σήματα Συνεχούς Χρόνου. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

ΚΕΦΑΛΑΙΟ 3 Ο 3.2 Η ΕΝΝΟΙΑ ΤΟΥ ΓΡΑΜΜΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΚΑΙ Η. (Σ) όπου α, β, α, β, είναι οι

Οµάδα Ασκήσεων #1-Λύσεις

Η Γεωμετρία της Αντιστροφής Η βασική θεωρία. Αντιστροφή

Για τις παρακάτω 3 ερωτήσεις, να γράψετε στο τετράδιό σας τον αριθµό της ερώτησης και δίπλα το γράµµα που αντιστοιχεί στη σωστή απάντηση.

ΜΑΘΗΜΑΤΙΚΑ ΘΕΤΙΚΗΣ & ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Β ΛΥΚΕΙΟΥ

A2. ΠΑΡΑΓΩΓΟΣ-ΚΛΙΣΗ-ΜΟΝΟΤΟΝΙΑ

Μαθηματικός Ορισμός Διδιάστατου Χώρου (R 2 )

(a) = lim. f y (a, b) = lim. (b) = lim. f y (x, y) = lim. g g(a + h) g(a) h g(b + h) g(b)

Θέµατα Μαθηµατικών Θετικής Κατεύθυνσης Β Λυκείου 1999

ΜΑΘΗΜΑΤΑ ΜΑΘΗΜΑΤΙΚΑ ΘΕΤΙΚΟΥ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ

Μηχανισµοί & Εισαγωγή στο Σχεδιασµό Μηχανών Ακαδηµαϊκό έτος: Ε.Μ.Π. Σχολή Μηχανολόγων Μηχανικών - Εργαστήριο υναµικής και Κατασκευών - 3.

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

ΦΥΕ 10, Γ. ΚΟΡ ΟΥΛΗΣ, ιανύσµατα 1/6. = + tβ r. zk και εξισώνουµε τις συνιστώσες των διανυσµάτων x(t) = 1+ 2t, y(t) = 1+ 3t, z(t) = 4 + t

ΕΞΕΤΑΣΕΙΣ ΣΤΟ ΜΑΘΗΜΑ ΜΗΧΑΝΙΚΗ ΙΙ Σεπτέµβριος 2001 ΘΕΜΑ 1 Ένα φυσικό σύστηµα, ενός βαθµού ελευθερίας, περιγράφεται από την ακόλουθη συνάρτηση

ΑΛΓΕΒΡΑ Β ΛΥΚΕΙΟΥ Κεφ. 1 - Συστήματα 1

7 ο Εργαστήριο Θόρυβος 2Δ, Μετακίνηση, Περιστροφή

ΘΕΩΡΙΑ: Έστω η οµογενής γραµµική διαφορική εξίσωση τάξης , (1)

ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ ΕΠΙΜΕΛΕΙΑ : ΑΥΓΕΡΙΝΟΣ ΒΑΣΙΛΗΣ

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ Ι (ΑΡΤΙΟΙ) Λυσεις Ασκησεων - Φυλλαδιο 2

ΗΛΕΚΤΡΟΜΑΓΝΗΤΙΚΗ ΘΕΩΡΙΑ ΠΗΓΕΣ ΜΑΓΝΗΤΙΚΟΥ ΠΕΔΙΟΥ

δίου ορισμού, μέσου του τύπου εξαρτημένης μεταβλητής του πεδίου τιμών που λέγεται εικόνα της f για x α f α.

2ο Μάθημα Μετασχηματισμοί 2Δ/3Δ και Συστήματα Συντεταγμένων

Ασκήσεις 6 ου Κεφαλαίου

Q 12. c 3 Q 23. h 12 + h 23 + h 31 = 0 (6)

,..., v n. W πεπερασμένα παραγόμενοι και dimv. Τα ακόλουθα είναι ισοδύναμα f είναι ισομορφιμός. f είναι 1-1. f είναι επί.

[ ], σχηµατίζουµε το άθροισµα. Το άθροισµα αυτό είναι µια δυαδική πράξη η οποία αντιστοιχεί στις ακολουθίες f [ 1

Διάλεξη #10. Διδάσκων: Φοίβος Μυλωνάς. Γραφικά με υπολογιστές. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Χειμερινό εξάμηνο.

5 Γενική µορφή εξίσωσης ευθείας

Σχεδίαση τροχιάς. (α) (β) (γ) (δ) Σχήµα 2.5

ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΙ ΚΑΤΟΠΤΡΙΚΗΣ ΣΥΜΜΕΤΡΙΑΣ

Γραµµική Αλγεβρα. Ενότητα 7 : Γραµµικοί Μετασχηµατισµοί. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής

Σημειώσεις του μαθήματος Μητρωϊκή Στατική

7. Ταλαντώσεις σε συστήµατα µε πολλούς βαθµούς ελευθερίας

(2) Θεωρούµε µοναδιαία διανύσµατα α, β, γ R 3, για τα οποία γνωρίζουµε ότι το διάνυσµα

Κεφάλαιο 2. Διανύσματα και Συστήματα Συντεταγμένων

Κεφάλαιο 5 Γραμμικοί Μετασχηματισμοί

Παραδείγματα Απαλοιφή Gauss Απαλοιφή Gauss-Jordan Παραγοντοποίηση LU, LDU

1)Βρείτε την εξίσωση για το επίπεδο που περιέχει το σηµείο (1,-1,3) και είναι παράλληλο προς το επίπεδο 3x+y+z=a όπου a ένας αριθµός.

Εφαρμοσμένα Μαθηματικά ΙΙ Τελική Εξέταση 19/6/2018 Διδάσκων: Ι. Λυχναρόπουλος

Ταξινόμηση καμπυλών και επιφανειών με τη βοήθεια των τετραγωνικών μορφών.

Μιγαδικός λογισμός και ολοκληρωτικοί Μετασχηματισμοί

ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Α ΛΥΚΕΙΟΥ

1. Η ευθεία y = 5 είναι κάθετη στον άξονα y y. Σ Λ. 2. Η ευθεία x = - 2 είναι παράλληλη προς τον άξονα x x. Σ Λ

Παρουσίαση 1 ΙΑΝΥΣΜΑΤΑ

Transcript:

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

Ηέννοιατουµετασχηµατισµού συντεταγµένων Μετασχηµατισµός συντεταγµένων Κανόνας αντιστοίχισης (,,) (,, ) ηλώνοντας ένα σηµείο µε συντεταγµένες (,, ) ορίζουµε στη σκηνή ένα σηµείο µε συντεταγµένες (,, ). Σε µορή µητρώων: M: µητρώο µετασχηµατισµού M

Ποια η χρησιµότητα των µετασχηµατισµών συντεταγµένων; Υπάρχουν περιπτώσεις στις οποίες ένας µετασχηµατισµός συντεταγµένων αποδεικνύεται αναγκαίος. Παράδειγµα: Πολλαπλές κλήσεις µιας displa list γιατησχεδίασηπολλαπλών σχηµάτων. Το εύρος των συντεταγµένων στο οποίο εκτείνεται το σχήµα µιας displa list είναι προκαθορισµένο, επιλέγεται αυθαίρετα και µπορεί να διαέρει από τις επιθυµητές διαστάσεις. Χωρίς µετασχηµατισµό συντεταγµένων, κάθε εκτέλεση της λίστας απεικόνισης θα σχεδίαζε το σχήµαστηνίδια (αρχικά καθορισµένη) θέση της σκηνής και µε τις ίδιες διαστάσεις που έχουν οριστεί µέσα στη λίστα.

Συντεταγµένες µοντέλου Μετασχηµατισµός µοντέλου Συντεταγµένες µοντέλου: οι συντεταγµένες µε τις οποίες δηλώνεται ένα πρότυπο σχήµα (συνήθως µέσα σε µια displa list) Μετασχηµατισµός µοντέλου: αντιστοίχιση συντεταγµένων µοντέλου σε συντεταγµένες σκηνής mod M elview

Μητρώα µετασχηµατισµού Μητρώο µετασχηµατισµού µοντέλου (modelview matri): Μετασχηµατίζει τις συντεταγµένες µοντέλου σε συντεταγµένες σκηνής. Μητρώο προβολής (projection matri): Μετασχηµατίζει τις συντεταγµένες σκηνής ανάλογα µετοντύπο προβολής που επιλέγουµε (περισσότερα στο Κεάλαιο 4). Τα µητρώα µετασχηµατισµού µοντέλου και προβολής έχουν διαστάσεις 44. Οι µετασχηµατισµοί µεντέλου και προβολής εκτελούνται αλυσιδωτά.

Επεξεργασία µητρώων µετασχηµατισµού Σε κάθε χρονική στιγµή µπορούµεναεπεξεργαστούµε µόνο ένα από τα µητρώα µετασχηµατισµού µοντέλου ή προβολής Η επιλογή του µητρώου που επεξεργαζόµαστε γίνεται µετην εντολή glmatrimode void glmatrimode(glenum matri); GL_MODELVIEW: µετάβαση στην κατάσταση επεξεργασίας µητρώου µετασχηµατισµού µοντέλου GL_PROJECTION: µετάβαση στην κατάσταση επεξεργασίας µητρώου προβολής

Τα µητρώα µετασχηµατισµών ως µεταβλητές κατάστασης Τα µητρώα µετασχηµατισµών, διατηρούν τις τιµές που τους έχουν ανατεθεί την τελευταία ορά. Αν απαιτηθεί η αρχικοποίησή τους, αυτή θα πρέπει να δηλωθεί ρητά από τον προγραµµατιστή µε τηνεντολήglloadidentit. void glloadidentit(); Aρχικοποιεί το τρέχον µητρώο µετασχηµατισµού στην τιµή I 4 I Τα µητρώα µετασχηµατισµού µοντέλου και προβολής έχουν ως αρχική τιµή τον πίνακα Ι4. Εποµένως, µε τις αρχικές τους ρυθµίσεις, δεν προκαλούν µεταβολή στις συντεταγµένες µοντέλου.

Προσοχή στην αρχικοποίηση των µητρώων! Ο προγραµµατιστής, πριν δώσει εντολή αρχικοποιήσης µητρώου, θα πρέπει να βεβαιωθεί ότι η εντολή θα αρχικοποιήσει το επιθυµητό µητρώο µετασχηµατισµού. Παράδειγµα : Αρχικοποίηση µητρώου µετασχηµατισµού µοντέλου glmatrimode(gl_modelview); glloadidentit( ); // Αρχικοποίηση του µητρώου µετασχηµατισµού µοντέλου Παράδειγµα 2: Αρχικοποίηση µητρώου προβολής glmatrimode(gl_projection); glloadidentit( );

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

Μετατόπιση Μετατόπιση σηµείου στο χώρο κατά ( tr, tr, tr ) ως προς τις διευθύνσεις,,. tr tr tr + + + tr tr tr Μητρώο µετατόπισης

Εντολή µετατόπισης Ο ορισµός µητρώου µετατόπισης κατά ( tr, tr, tr ) γίνεται µε τιςεντολές gltranslate*. gltranslatef ( GLfloat tr,glfloat tr, GLfloat tr ); gltranslated ( GLdouble tr, GLdouble tr, GLdouble tr ); tr tr tr οι µετατοπίσεις κατά τους άξονες, και.

Κλιµάκωση Οι συντεταγµένες πολλαπλασιάζονται µε ένα σταθερό συντελεστή ανά διεύθυνση s, s, s: συντελεστές κλιµάκωσης ως προς τις διευθύνεις και αντίστοιχα s s s s s s Μητρώο µετασχηµατισµού κλιµάκωσης

Κλιµάκωση Στην OpenGL, η κλιµάκωση εκτελείται µε τιςεντολέςglscale*: void glscalef(glfloat s, Glfloat s, Glfloat s); void glscaled(gldouble s, Gldouble s Gldouble s); s, s, s οι συντελεστές κλιµάκωσης κατά τις διευθύνσεις,, αντίστοιχα.

Ανάκλαση Ειδική περίπτωση κλιµάκωσης s- ή s- ή s- Η ανάκλαση εξάγει το συµµετρικό ενός σηµείου ως προς το επίπεδο, ή αντίστοιχα S REFX S REFY S REFZ

Κλίση η τιµή µίαςαπότιςσυντεταγµένες,, των σηµείων µεταβάλλεται γραµµικά ως προς µία ή περισσότερες εκ των άλλων δύο συντεταγµένων Πχ γραµµική µεταβολή της συντεταγµένης ως προς α : συντελεστής κλίσης Στο παραπάνω παράδειγµαησυντεταγµένη µεταβάλλεται γραµµικά ως προς την απόστασή του σηµείου,, από το επίπεδο (που είναι ίση µε ) a + a

Κλίσηωςπροςδύοεπίπεδα η τιµή µίαςαπότιςσυντεταγµένες,, των σηµείων µεταβάλλεται γραµµικής µεταβολής ως προς δύο συντεταγµένες δύο συντεταγµένων Πχ γραµµική µεταβολή της συντεταγµένης ως προς και α,β : συντελεστές κλίσης Στο παραπάνω παράδειγµαησυντεταγµένη µεταβάλλεται γραµµικά ως προς την απόστασh του σηµείου,, από τα επίπεδα και b a + + b a

Κλίση ως προς τυχαία επίπεδα αναοράς Μετασχηµατισµοί κλίσης µε αναορά τυχαία επίπεδα Πχ γραµµική µεταβολή της συντεταγµένης ως προς και Για τον ορισµό µετασχηµατισµών κλίσης δεν υπάρχει συγκεκριµένη εντολή στην OpenGL. Ο ορισµός µητρώων κλίσης γίνεται µε τηνάµεση ανάθεσης τιµών στα στοιχεία του µητρώου µετασχηµατισµού µοντέλου. ( ) ( ) b a + + ( ) + b a b a

Περιστροή Η περιστροή ενός σηµείου κατά γωνία (επιπέδου XY) Άξονας περιστροής στην αρχή των αξόνων του συστήµατος συντεταγµένων σκηνής + cos sin sin cos cos sin sin cos Περιγραή περιστροής στις 3 διαστάσεις Θεωρούµε την πρόσθετη συνθήκη Περιστροή ως προς τον άξονα O Μητρώο περιστροής ως προς τον άξονα O

Περιστροή ως προς O ΟΙ περιστροές ως προς τους άλλους άξονες του καρτεσιανού συστήµατος συντεταγµένων σκηνής Οι εξισώσεις προκύπτουν µε κυκλική εναλλαγή µεταβλητών: Πρώτη εναλλαγή µεταβλητών: περιστροή σηµείου στο χώρο κατά γωνία µε άξονα περιστροής τον O + cos sin sin cos cos sin sin cos

Περιστροή ως προς O εύτερη εναλλαγή µεταβλητών: περιστροή σηµείου στο χώρο κατά γωνία µε άξονα περιστροής τον O + + cos sin sin cos cos sin sin cos

Εντολές περιστροής στην OpenGL Μπορούµε να εκτελέσουµε µετασχηµατισµούς περιστροής ως προς οποιαδήποτε άξονα περιστροής. Ορίζουµεέναδιανύσµα που η διεύθυνσή του ταυτίζεται µε τηδιεύθυνση του άξονα περιστροής. Ο άξονας περιστροής διέρχεται από την αρχή των αξόνων. Οι µετασχηµατισµοί περιστροής εκτελούνται µε τιςεντολέςglrotate* glrotatef (Glfloat angle, GLfloat v, GLfloat v, GLfloat v ); glrotated (GLdouble angle, GLdouble v, GLdouble v, GLdouble v ); angle: η γωνία περιστροής σε µοίρες v,v,v : οι συνιστώσες διανύσµατος που εκράζει τη διεύθυνση του άξονα περιστροής Η ορά περιστροής καθορίζεται από τη ορά του διανύσµατος (v,v,v) και σύµωνα µε τον κανόνα του δεξιού χεριού.

Σύνθετοι µετασχηµατισµοί Σύνθετος µετασχηµατισµός: Μία αλυσιδωτή εαρµογή στοιχειωδών µετασχηµατισµών Ένας σύνθετος µετασχηµατισµός δηµιουργείται από τους επιµέρους στοιχειώδεις µετασχηµατισµούς που αναλύθηκαν. Σύµβαση: Το µητρώο ενός σύνθετου µετασχηµατισµού αναπαρίσται µετη µορή γινοµένου µητρώων στοιχειωδών µετασχηµατισµών Σε 3 σύνθετους µετασχηµατισµούς, για να είναι εικτή η αναπαράσταση τους σε µορή γινοµένου, τα µητρώα θα πρέπει να έχουν διαστάσεις 44.

Οµογενείς συντεταγµένες Εάν: - ένας 3 σύνθετος µετασχηµατισµός περιέχει έναν µετασχηµατισµό µετατόπισης - χρησιµοποιούµε µητρώα διαστάσεων 33, δεν υπάρχει τρόπος τα µητρώα να ενοποιηθούν σε µορή γινοµένου. Λύση: Eπεκτείνουµε κατά τη διάσταση των µητρώων µετασχηµατισµού Αναπαριστούµετασηµεία µε τηµορή τετραδιάστατων διανυσµάτων (µε τη µορή οµογενών συντεταγµένων (,,,h). Η παράµετρος h παίρνει την τιµή Επεκτείνοντας τη διάσταση των µητρώων κατά επιτρέπουµετο συνδυασµόόλωντωνστοιχειωδώνσεένασύνθετοµητρώο µε σχέσεις γινοµένου.

Παράδειγµα: σύνθετος µετασχηµατισµός περιστροής και µετατόπισης 44 µητρώο περιστροής cos sin sin cos θ θ θ θ R Τ tr tr tr 44 µητρώο µετατόπισης O σύνθετος µετασχηµατισµός προκύπτει από το γινόµενο των µητρώων στοιχειωδών µετασχηµατισµών

Πολλαπλασιασµός στοιχειωδών µητρώων µετασχηµατισµού Εντολές έµµεσης δήλωσης στοιχειωδών µετασχηµατισµών (gltranslate, gltrotate κλπ ) δεν αντικαθιστούν το τρέχον µητρώο µετασχηµατισµού αλλά πολλαπλασιάζονται µεαυτό Κάθε στοιχειώδες µητρώο Μ που δηλώνουµεέµµεσα πολλαπλασιάζεται µε τοτρέχονµητρώο µετασχηµατισµού C από δεξιά. C C M Στον πολλαπλασιασµό µητρώων δεν ισχύει η αντιµεταθετική ιδιότητα CM MC Έχει µεγάλη σηµασία η διαδοχή µε την οποία επιβάλλονται οι στοιχειώδεις µετασχηµατισµοί.

Σειρά δήλωσης µετασχηµατισµών Στην OpenGL, οι συντεταγµένες των σηµείων εκράζονται µετηµορή διανυσµάτων στηλών. M 2 M M Τα µητρώα στοιχειωδών µετασχηµατισµών δηλώνονται από αριστερά προς τα δεξιά. Εποµένως το µητρώο που επιδρά πρώτο (Μ2) πρέπει να δηλωθεί τελευταίο. Τα µητρώα µετασχηµατισµού πολλαπλασιάζονται µεταδιανύσµατα στήλες των συντεταγµένων µόνο από αριστερά. Έστω ο σύνθετος µετασχηµατισµός

Παράδειγµα: σύνθετος µετασχηµατισµός περιστροής και µετατόπισης cos sin sin cos R T tr tr tr θ θ θ θ Προγραµµατιστική υλοποίηση µετασχηµατισµού: glmatrimode(gl_modelview); //Μετάβαση στην κατάσταση Επεγεργασίας του µητρώου µετασχηµατισµού µοντέλου glloadidentit( ); // αρχικοποίηση µητρώου µετασχηµατισµού µοντέλου (εάν αυτή είναι απαραίτητη) gltranslate{fd}(tr,tr,tr); // Ορισµός µητρώου µετατόπισης glrotate{fd}(θ,,,); //Ορισµός µητρώου περιστροής

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

Αντικατάσταση του τρέχοντος µητρώου µετασχηµατισµού void glloadmatrif(glfloat *elem6); void glloadmatrid(gldouble *elem6 ); elem6: µητρώο που περιέχει τις προς ανάθεση τιµές elem6 elem[] elem[] elem[2] elem[3] elem[4] elem[5] elem[6] elem[7] elem[8] elem[9] elem[] elem[] elem[2] elem[3] elem[4] elem[5]

Πολλαπλασιασµός του τρέχοντος µητρώου µετασχηµατισµού void glmultmatrif (GLfloat *elem6); void glmultmatrid (GLdouble *elem6); elem6: µητρώο µετασχηµατισµού δοσµένο υπό τη µορή οµογενών συντεταγµένων H εντολή glmultmatri* πολλαπλασιάζει το µητρώο elem6 µε τοτρέχον µητρώο µετασχηµατισµού C από δεξιά. C C elem6

Στοίβες µητρώων µετασχηµατισµού Για κάθε κατηγορία µητρώου µετασχηµατισµού (µοντέλου και προβολής) η µηχανή της OpenGL προβλέπει την ύπαρξη µιας στοίβας Oι στοίβεςµητρώων προσέρουν τη δυνατότητα αποθήκευσης πολλαπλών προίλ για κάθε µητρώο Το ενεργό µητρώο µετασχηµατισµού βρίσκεται στην κορυή της κάθε στοίβας.

Προσθήκη µητρώου στη στοίβα Τακτική αποθήκευσης µητρώων στη στοίβα Τροποποιούµετοενεργόµητρώο µετασχηµατισµού και το προωθούµε κατά ένα επίπεδο στη στοίβα. void glpushmatri(); Μεταέρει το ενεργό µητρώο και όσα βρίσκονται χαµηλότερα από αυτό κατά ένα επίπεδο προς τα κάτω στη στοίβα.

Ανάκληση µητρώου από στη στοίβα Η ανάκληση των µητρώων από τη στοίβα γίνεται βάσει της λογικής last in-first out. void glpopmatri(); Η εκτέλεση της glpopmatri µεταθέτει κάθε µητρώο κατά µία θέση προς τα πάνω στη στοίβα. Το ενεργό µητρώο αντικαθίσταται από το αµέσως επόµενό του στη στοίβα.

Αλλαγή συστήµατος συντεταγµένων. Οι δηλώσεις µετασχηµατισµών που αναλύσαµεπροηγουµένως, µπορούν να χρησιµοποιηθούν και για την αλλαγή συστήµατος συντεταγµένων Ανάγουν την περιγραή της σκηνής σε σύστηµα συντεταγµένων που προκύπτει από το αρχικά καθορισµένο σύστηµα µε διαδικασίες στοιχειωδών µετασχηµατισµών (χρήσιµη γιατην παρατήρηση µιας σκηνής από διαορετικές οπτικές γώνίες) Μετατόπιση συστήµατος συντεταγµένων Περιστροή συστήµατος συντεταγµένων

Μετατόπιση συστήµατος συντεταγµένων Ηπεριγραήτηςσκηνήςωςπροςτοµετατοπισµένο σύστηµα συντεταγµένων µεαρχήστοσηµείο tr,tr,re ισοδυναµεί µε µετατόπιση όλων των σηµείων της. σκηνής κατά ( tr, -tr, -tr) T Εντολή ορισµού: tr tr tr gltranslate{fd}(-tr,-tr,-tr);

Περιστροή συστήµατος συντεταγµένων. H περιγραή της σκηνής ως προς το περιστραµµένο σύστηµα συντεταγµένων κατά γωνία θ ισοδυναµεί µε την περιστροή όλων των σηµείων της σκηνής κατά γωνία θ. Εντολή ορισµού glrotate{fd}(-θ,,,); ( ) ( ) ( ) ( ) cos sin sin cos θ θ θ θ Περιστροή ΣΣ ως προς τον άξονα O κατά γωνία θ

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