ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής Γραφικά Υπολογιστών: 2D Μετασχηματισμοί (transformations) Πασχάλης Ράπτης http://aetos.it.teithe.gr/~praptis praptis@it.teithe.gr
2 Τι είναι ; Μετασχηματισμός είναι η λειτουργία που αλλάζει ένα σχέδιο (μια διευέτηση) σε ένα άλλο. Σε έναν γεωμετρικό μετασχηματισμό οι έσεις ενός αντικείμενου χαρτογραφούνται σε άλλες έσεις.
3 Περιεχόμενα Στο σημερινό μάημα α καλύψουμε τα ακόλουα: Γιατί χρησιμοποιούμε μετασχηματισμούς Τύποι μετασχηματισμών Μετατόπιση (translation) Αλλαγή κλίμακας (scaling) Περιστροφή (rotation) Στρεβλωση (shearing) Ομογενείς συντεταγμένες Πολλαπλασιασμός πινάκων (matri multiplications) Συνδυασμοί μετασχηματισμών (combining transformations)
4 Γιατί μετασχηματισμοί; Images taken from Hearn & Baker, Computer Graphics with OpenGL (24) Χρησιμοποιούμε μετασχηματισμούς για να μετατοπίσουμε, περιστρέψουμε, μεγεύνουμε και σμικρύνουμε ένα αντικείμενο
5 Μετακίνηση (translation) Μετακίνηση ενός αντικειμένου από μια έση σε μια άλλη new old + d new old + d 6 5 4 3 2 2 3 4 5 6 7 8 9 Σημείωση: Το σπίτι μετατοπίζεται από την αρχική έση σε μία άλλη
6 Αλλαγή κλίμακας (scaling) Πολλαπλασιάζουμε με έναν συντελεστή-σταερά (S) όλες τις συντεταγμένες. ΠΡΟΣΟΧΗ: Τα αντικείμενα μεγαλώνουν και μετακινούνται new S old new S old Note: House shifts position relative to origin 2 2 3 4 5 6 7 8 9 3 4 5 6 2 3 3 6 3 9
7 Παράδειγμα αλλαγής κλίμακας (scaling) 6 Παράγοντες κλίμακας S2, S2 (7, 6) 5 4 3 (2, 3) 2 (, ) (3, ) (5, 2) (9, 2) 2 3 4 5 6 7 8 9
8 Περιστροφή (rotation) Περιστροφή ολων των συντεταγμένων κατά μια ορισμένη γωνία new old cos old sin new old sin + old cos Περιστροφή σημείων ως προς την αρχή των συντεταγμένων 6 5 4 3 2 π 6 2 3 4 5 6 7 8 9
9 Παράδειγμα περιστροφής (rotation) 6 5 4 3 (4, 3) 2 (3, ) (5, ) 2 3 4 5 6 7 8 9
Στρέβλωση (shearing) Στρέβλωση κατά τον άξονα (παράλληλα) ʹ + k και ʹ Στρέβλωση κατά τον άξονα (παράλληλα) ʹ και ʹ + k -ais -ais -ais -ais
Καρτεσιανές (Cartesian) Συντεταγμένες Σημείο στο επίπεδο (2D). Ένα σημείο ορίζεται από τις συντεταγμένες και.
2 Καρτεσιανές (Cartesian) Συντεταγμένες Γραμμή στο επίπεδο (2D) Τα δύο σημεία (-5,+2) και (+7,+6) ορίζουν ένα τμήμα (segment) της γραμμής.
3 Πολικές (Polar) Συντεταγμένες Πολικές συντεταγμένες σημείου στο επίπεδο (2D) Ένα σημείο ορίζεται από την ακτίνα (radius) και την γωνία (angle) στην κατεύυνση της γραμμής r 3.5 και 6 ο (3.5, 6 ο )
4 Πολικές Καρτεσιανές Συντεταγμένες Μετατροπή πολικών σε καρτεσιανές συντεταγμένες ενός σημείου στο επίπεδο (2D) Μετατροπή σημείου σε X και Y συντεταγμένες r 3.5 και 6 ο (3.5, 6 ο ) Χr cos(), Yr sin() Χ.75, Υ3.3 (.75, 3.3)
5 Σύγκριση: Σημείων και Διανυσμάτων Ποια είναι η διαφορά; Τα σημεία έχουν έση. Δεν έχουν μέγεος (μήκος) και κατεύυνση. Τα διανύσματα έχουν μήκος και κατεύυνση. Δεν έχουν έση. Πρόβλημα: Τα σημεία και τα διανύσματα παρίστανται με δυο τιμές (2D) ή με τρεις τιμές (3D)
6 Σχέση μεταξύ σημείων και διανυσμάτων Η διαφορά δυο σημείων P και Q είναι ένα διάνυσμα: Q - P v Μπορούμε να εωρήσουμε ένα σημείο ως άροισμα ενός σημείου και ενός διανύσματος Q P + v
7 Ομογενείς Συντεταγμένες (homogeneous coordinates) Εκτός από την μετακίνηση οι μετασχηματισμοί που είδαμε μπορούν να παρασταούν με πίνακες Με την χρήση των ομογενών συντεταγμένων μπορούνε να παραστήσουμε ΟΛΟΥΣ τους μετασχηματισμούς με πίνακες. Όλους τους 2D μετασχηματισμούς που είδαμε προηγουμένως μπορούν να παρουσιασούν ως 3*3 πίνακες. Οι 3D μετασχηματισμοί μπορούν να παρουσιασούν ως 4*4 πίνακες. Με την χρήση των ομογενών συντεταγμένων υπολογίζουμε μετασχηματισμούς γρήγορα και αποτελεσματικά Εκτός από τα γραφικά υπολογιστών ομογενείς συντεταγμένες χρησιμοποιούνται στην όραση υπολογιστών (computer vision), στα μαηματικά, και σε άλλες επιστήμες.
8 Ομογενείς Συντεταγμένες Ένα σημείο (, ) μπορεί να ξαναγραφεί σε ομογενείς συντεταγμένες ως ( w, w, w) Η ομογενής παράμετρος w έχει μια μη-μηδενική τιμή τέτοια ώστε: h Κάε σημείο (, ) μπορεί να γραφεί ως (w, w, w) Για ευκολία επιλέγουμε w έτσι το σημείο (, ) γίνεται (,, ) h h h
9 Ομογενείς Συντεταγμένες Δίδονται οι ομογενείς συντεταγμένες ενός σημείου (,, w) στο -επίπεδο. Υποέτουμε ότι το σημείο (,, w ) βρίσκεται στον χώρο με συντεταγμένες,, w στους αντίστοιχους άξονες. Η ευεία που ενώνει το σημείο με την αρχή των συντεταγμένων τέμνει το επίπεδο για w στο σημείο (/w, /w, )
2 Σημεία και Διανύσματα με Ομογενείς Συντεταγμένες Καώς τα σημεία και τα διανύσματα παρίστανται στις δυο διαστάσεις με δύο συντεταγμένες είναι αδύνατον να τα διακρίνουμε μεταξύ τους. Έτσι, με τις ομογενείς συντεταγμένες τα σημεία στις δύο διαστάσεις αναπαριστώνται ως (,,) και τα διανύσματα (,,) Αντίστοιχα στις τρεις διαστάσεις τα σημεία αναπαριστώνται ως (,,z,) και τα διανύσματα (,,z,) Δηλαδή, με τις ομογενείς συντεταγμένες προσέτουμε μια ακόμη συντεταγμένη. Εάν έλουμε να πάμε πίσω στο παλιό σύστημα αφαιρούμε την συντεταγμένη που προσέσαμε
2 Ομογενής μετατόπιση Η μετατόπιση ενός σημείου (, ) κατά (d, d) μπορεί να γραφεί σε μορφή πίνακα ως: d d Παρουσιάζοντας το σημείο με ομογενείς συντεταγμένες ως έναν πίνακα μιας στήλης εκτελούμε τους υπολογισμούς ως: d d * + * + d* * + * + d * * + * + * + d + d
22 Υπενύμιση Πολ/σμος Πινάκων Πως εκτελείται ο πολ/σμός: 33 3 3 + + + + + + z i h g z f e d z c b a z i h g f e d c b a * * * * * * * * *
23 Ομογενείς συντεταγμένες Για να κάνουμε πράξεις με εύκολα, τα 2D σημεία παριστάνονται με ομογενής συντεταγμένες σε πίνακες μιας στήλης (column vectors) v d d T v d d d d ), ( ' : + + v s s S v s s s s ), ( ' : Μετατόπιση: Κλίμακα (Scaling):
24 Ομογενείς συντεταγμένες (2) v R v ) ( ' : cos sin sin cos cos sin sin cos + Περιστροφή: : v Sh(k,)v Στρέβλωση:
Αντίστροφοι Μετασχηματισμοί (inverse transformations) Μετασχηματισμοί μπορούν εύκολα να αντιστραφούν με την χρήση αντιστρόφων μετασχηματισμών d d T s s S cos sin sin cos R
26 Συνδυασμένοι μετασχηματισμοί Πολλοί διαδοχικοί μετασχηματισμοί μπορούν να συνδυαστούν σε έναν πίνακα Γίνεται εύκολα όταν χρησιμοποιούμε ομογενείς συντεταγμένες Παράδειγμα: Περιστροφή ενός πολυγώνου γύρω από ένα σημείο (όχι γύρω από την αρχή των συντεταγμένων). Μετακίνηση του κέντρου του στην αρχή Περιστροφή γύρω από την αρχή Μετακίνηση πίσω στο σημείο του κέντρου
27 Συνδυασμένοι μετασχηματισμοί (2) House (H ) T ( d, d) H 2 R ( ) T ( d, d) H T ( d, d) R( ) T ( d, d) H 3 4
28 Συνδυασμένοι μετασχηματισμοί (3) Οι τρεις πίνακες των τριών μετασχηματισμών συνδυάζονται ως cos sin sin cos d d d d Προσοχή: Δεν ισχύει στον πολ/σμό πινάκων η μεταετική (commutative) ιδιότητα v d d T R d d T v ), ( ) ( ), ( '
29 Σύνοψη Στο σημερινό μάημα εξετάσαμε : 2D Μετασχηματισμούς (Transformations) Μετακίνηση (Translation) Αλλαγή κλίμακας (Scaling) Περιστροφή (Rotation) Στρέβλωση (Shearing) Ομογενείς συντεταγμένες (Homogeneous coordinates) Πολ/σμός πινάκων (Matri multiplications) Συνδυασμένοι μετασχηματισμοί (Combining transformations)