Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Χειμερινό εξάμηνο Γραφικά με υπολογιστές Διδάσκων: Φοίβος Μυλωνάς fmlonas@ionio.gr Διάλεξη # Δ Μετασχηματισμοί (γενικά) Γραμμικοί Μετασχηματισμοί Απλοί Συσχετισμένοι Μετασχηματισμοί Φοίβος Μυλωνάς Γραφικά με υπολογιστές
Άδεια χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα Ιονίου Πανεπιστημίου» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Μετασχηματισμοί στα Γραφικά Μετασχηματισμός είναι η λειτουργία που αλλάζει ένα σχέδιο (μια διευθέτηση) σε ένα άλλο. Σε έναν γεωμετρικό μετασχηματισμό οι θέσεις ενός αντικείμενου χαρτογραφούνται σε άλλες θέσεις. Χρησιμοποιούμε μετασχηματισμούς για να μετατοπίσουμε, να περιστρέψουμε, να μεγεθύνουμε και να σμικρύνουμε ένα αντικείμενο.
Μετασχηματισμοί στα Γραφικά Χρησιμοποιούμε μετασχηματισμούς για να μετατοπίσουμε, να περιστρέψουμε, να μεγεθύνουμε και να σμικρύνουμε ένα αντικείμενο. 5
Γενικοί Μετασχηματισμοί Θέλουμε να είναι σε θέση να χειριστούν γραφικά αντικείμενα: Μετατόπιση (translation): μετακίνηση ενός αντικειμένου Περιστροφή (rotation): αλλαγή προσανατολισμού Αλλαγή κλίμακας (scale): αλλαγή μεγέθους Άλλοι μετασχηματισμοί: αντανάκλαση, στρέβλωση, κλπ. Ένας γενικός Δ μετασχηματισμός έχει τη μορφή: f (, ) f (, ) όπου και είναι οι αρχικές συντεταγμένες και και είναι οι μετασχηματισμένες συντεταγμένες. Σε μορφή διανυσμάτων: p f f ( p) ( p) where p and p 6
Γενικοί Μετασχηματισμοί (συνεχ.) Οι γενικοί μετασχηματισμοί μπορεί να μην είναι γραμμικοί: Οι γραμμές δεν αντιστοιχούν απαραίτητα σε γραμμές. Κάθε σημείο (γραμμών, εσωτερικού σχημάτων, κλπ.) πρέπει να μετασχηματιστεί. Οι μη-γραμμικοί μετασχηματισμοί είναι δυσκολότεροι! Ευτυχώς, οι πιο σημαντικοί μετασχηματισμοί είναι γραμμικοί. Παράδειγμα μη-γραμμικού μετασχηματισμού: 7 6 5 3 3 5 6 7 + + + 3 7 6 5 3 3 5 6 7 7
Γραμμικοί Μετασχηματισμοί Γραμμικοί μετασχηματισμοί: f (, ) a + b + c f (, ) a + b + c Οι Γραμμικοί Μετασχηματισμοί μπορούν να υλοποιηθούν με πράξεις μεταξύ πινάκων: a b c p p + Mp+ a b c T Πλεονεκτήματα: Οι γραμμές μετασχηματίζονται σε γραμμές. Χρειάζεται να μετασχηματίσουμε μόνο τις κορυφές. Υπολογιστικά αποδοτικοί. Πρόβλημα: θέλουμε να τους απλοποιήσουμε περισσότερο να ξεφορτωθούμε το T!! 8
Γεωμετρικοί Μετασχηματισμοί Στα Γραφικά ενδιαφέρουν κυρίως οι γεωμετρικοί μετασχηματισμοί, σε Δ ή 3Δ. Χαρακτηρίζονται από το γεγονός ότι το σύστημα συντεταγμένων θεωρείται σταθερό (αμετάβλητο). Οι διάφοροι μετασχηματισμοί επιδρούν αποκλειστικά και μόνο στα αντικείμενα της σκηνής. 9
Συσχετισμένοι Μετασχηματισμοί Οποιοσδήποτε άλλος μετασχηματισμός, δημιουργείται σαν συνδυασμός των βασικών μετασχηματισμών: Μ μετατόπιση, R στροφή, H στρέβλωση, S αλλαγή κλίμακας. Οι βασικοί μετασχηματισμοί είναι παραδείγματα συσχετισμένων μετασχηματισμών!
Δ Συσχετισμένοι Μετασχηματισμοί Αποτελέσματα στις Δ γενικεύονται στις 3Δ. βασικοί συσχετισμένοι μετασχηματισμοί: Μετατόπιση Αλλαγή Κλίμακας Περιστροφή Στρέβλωση
Μετατόπιση (translation) Μετακίνηση αντικειμένου από ένα σημείο σε ένα άλλο: Ευθύς μετασχηματισμός: + t + t ή p p + T όπου t t Αντίστροφος: p p T T 7 6 5 3 T 3 3 5 6 7
Δ Μετατόπιση d d 3 Y 6 5 3 3 3 5 6 3 5 6 7 8 9 X v v + t όπου και + d + d ' v, v', ' t d d Για να μετακινήσουμε πολύγωνα: μεταφέρουμε τις κορυφές (διανύσματα) και επανασχεδιάζουμε τις μεταξύ τους γραμμές. Διατήρηση μηκών (ισομετρική) Διατήρηση γωνιών (σύμμορφη) 3
Αλλαγή κλίμακας (scaling) Αλλαγή του μεγέθους ενός αντικειμένου: Ευθύς μετασχηματισμός: s s ή p Sp όπου Αντίστροφος: p S - p όπου S s s S s s Πολλαπλασιάζουμε με έναν συντελεστήσταθερά (S) όλες τις συντεταγμένες. ΠΡΟΣΟΧΗ: Τα αντικείμενα μεγαλώνουν και 7 6 5 3 Τι παρατηρείτε? S μετακινούνται 3 5 6 7
Αλλαγή κλίμακας Ιδιότητες της αλλαγής κλίμακας: Η αλλαγή κλίμακας γίνεται αναφορικά με την αρχή των αξόνων. Συντελεστής αλλαγής κλίμακας > : μεγεθύνει τα αντικείμενα και τα μετακινεί μακριά από την αρχή των αξόνων. Συντελεστής αλλαγής κλίμακας < : μικραίνει το αντικείμενο και το μετακινεί προς την αρχή των αξόνων. Συνήθως δε θέλουμε κάτι τέτοιο! Γενικά θα θέλαμε να αλλάζουμε κλίμακα ως προς το κέντρο του αντικειμένου, όχι ως προς την αρχή των συντεταγμένων! 5
Αλλαγή κλίμακας: Μετασχηματισμοί Η αλλαγή κλίμακας μπορεί να πραγματοποιήσει τους ακόλουθους μετασχηματισμούς: Ομοιόμορφη αλλαγή κλίμακας: s s διατηρεί τις γωνίες, όχι όμως τα μήκη Ανομοιόμορφη αλλαγή κλίμακας: s s δε διατηρεί γωνίες ή μήκη Κατοπτρισμός γύρω από: -άξονα: s, s -άξονα: s, s γραμμή : s, s διατηρεί γωνίες και μήκη Ένας πίνακας κατοπτρισμού είναι ο αντίστροφος του εαυτού του. S 7 6.5 S 5 3 S 3 5 6 7 S S 6
Αντανάκλαση 7
8 v Sv όπου και Δε διατηρούνται μήκη και γωνίες ' ' ', v v s s S s s ' ' 3 s s Δ Αλλαγή Κλίμακας 3 6 9
Περιστροφή (rotation) Δεδομένου ενός σημείου p στο επίπεδο, πώς θα το περιστρέψουμε γύρω από την αρχή των αξόνων? Βήματα:. Μετατροπή σημείου p σε πολικές συντεταγμένες: φ arctan r + p r cos( φ) r sin( φ) r cos( φ) r sin( φ) p 7 6 5 3 r cos(φ) p (, ) r r sin(φ) φ 3 5 6 7 9
Περιστροφή Κατόπιν, περιστρέφουμε το σημείο κατά θ γύρω από την αρχή των αξόνων:. Για περιστροφή θ μοιρών, προσθέτουμε απλά θ στη φ: r cos( φ + θ) p r sin( φ + θ) 3. Εφαρμ. τον τύπο αθροίσματος γωνιών: r cos( φ)cos( θ) r sin( φ)sin( θ) p r sin( φ)cos( θ) + r sin( θ)cos( φ). Αντικαθιστούμε ξανά τα και : cos( θ) sin( θ) cos( θ) p sin( θ) + cos( θ) sin( θ) sin( θ) cos( θ) 7 6 5 p (, ) 3 r p (, ) r θ φ 3 5 6 7 r cos( φ) r sin( φ)
Περιστροφή Άρα για την περιστροφή ενός σημείου p γύρω από την αρχή των αξόνων, απλά πολλαπλασιάζουμε το p με τον πίνακα περιστροφής: cos( θ ) sin( θ ) sin( θ ) cos( θ )
Περιστρέφοντας ένα Αντικείμενο Εφαρμόζουμε την προηγούμενη περιστροφή σε κάθε κορυφή του! Ευθύς μετασχηματισμός: cos(θ) sin(θ) sin(θ) + cos(θ) ή p Rp όπου cos(θ) R sin(θ) sin(θ) cos(θ) Αντίστροφη περιστροφή: p R - p cos( θ) sin( θ) R sin( θ) cos( θ) Κατάλληλο για περιστροφή με «θετική» γωνιά θ με τη φορά των δεικτών του ρολογιού! cos(θ) sin( θ) sin( θ) cos(θ) R T 7 6 5 3 θ 5 θ 3 5 6 7
Περιστροφές Κανόνας δεξιού χεριού: με τον αντίχειρα στον z-άξονα, τα δάχτυλα περιστρέφονται κατά τη θετική φορά. Αν η θ είναι θετική, η περιστροφή είναι αντίθετη των δεικτών του ρολογιού σε σχέση με την αρχή των αξόνων. Αν η θ είναι αρνητική, η περιστροφή είναι σύμφωνα με τη φορά των δεικτών του ρολογιού σε σχέση με την αρχή των αξόνων. 7 6 5 p (, ) 3 r p (, ) r θ 3 5 6 7 7 6 5 3 p (, ) r θ 3 5 6 7 p (, ) 3
Δ Περιστροφή π θ 6 θ v R θ v όπου v και cos Ө sin Ө sin Ө + cos Ө, R θ cos sin v' θ θ ' ' sin cos θ θ Διατηρούνται μήκη και γωνίες
Δ Στρέβλωση (shearing) Αυξάνει μια συντεταγμένη του αντικειμένου κατά ποσότητα ίση με μια άλλη συντεταγμένη επί τον παράγοντα στρέβλωσης. Παράδειγμα: τραπουλόχαρτα που τοποθετούνται επίπεδα πάνω σε ένα τραπέζι και έπειτα τους προσδίδουμε κλίση χρησιμοποιώντας ένα σκληρό βιβλίο 5
Δ Στρέβλωση Στρέβλωση κατά άξονα με παράγοντα a: +a, Με πίνακες: p' ' ' a ή: P' SH P 6
Δ Στρέβλωση Στρέβλωση κατά άξονα με παράγοντα b:, b+ Με πίνακες: p' ' ' b ή: P' SH P 7
Δ Στρέβλωση a b 8
9 Y X 3 5 6 7 8 9 3 5 6 θ π θ Κλίση D tan θ Skew θ tan θ Skew θ
Κλίση D Τα τετράγωνα γίνονται παραλληλόγραμμα Οι συντεταγμένες λοξεύουν Οι συντεταγμένες παραμένουν το ίδιο 9 μεταξύ των αξόνων γίνεται Ө Παρατηρήστε ότι η βάση του σπιτιού (στο ) παραμένει οριζόντια, αλλά μετατοπίζεται προς τα δεξιά. Y 6 5 3 π θ θ 3 5 6 7 8 9 X 3
Δ περιστροφή και αλλαγή κλίμακας Ας υποθέσουμε ότι το αντικείμενό μας δεν είναι στην αρχή των αξόνων και θέλουμε να αλλάξουμε κλίμακα και να το περιστρέψουμε. Λύση: μεταφορά στην αρχή, αλλαγή κλίμακας, και/ή περιστροφή στο τοπικό σύστημα συντεταγμένων, επιστροφή. Αυτή η αλληλουχία, επισημαίνει την ανάγκη σύνθεσης διαδοχικών μετασχηματισμών... 3
Ερωτήσεις - Απορίες 3