1 ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής Γραφικά Υπολογιστών: Βασικά Μαθηματικά Πασχάλης Ράπτης http://aetos.it.teithe.gr/~praptis praptis@it.teithe.gr
2 Εισαγωγή Ένα μεγάλο κομμάτι των γραφικών αφορά βασίζονται- στα Μαθηματικά. Τα μαθηματικά των γραφικών είναι απλά. Αλλά χρειάζεται να γίνουν κατανοητά για να να είναι δυνατή η κατανόηση ορισμένων τεχνικών Θα εξετάσουμε τα ακόλουθα: Σύστημα συντεταγμένων (coordinate reference frames Σημεία & γραμμές (points & lines) Διανυσματα (vectors) Πίνακες (matrices-μήτρες)
Images taken from Hearn & Baker, Computer Graphics with OpenGL (200) Βασική έννοια
Καρτεσιανό Σύστημα συντεταγμένων - 2D Όταν δημιουργούμε μια εικόνα γραφικών ορίζουμε την εικόνα χρησιμοποιώντας απλή 2D γεωμετρία. Σε 2D εικόνες-σκηνές χρησιμοποιούνται διδιάστατες Καρτεσιανές συντεταγμένες. Όλα τα αντικείμενα ορίζονται με ζευγάρια απλών συντεταγμένων. axis x P x axis
Καρτεσιανό Σύστημα συντεταγμένων - 2D (2) 7 (2, 7) (7, 7) (2, ) (7, ) 2 7 x
6 Καρτεσιανό Σύστημα συντεταγμένων D Για να πάρουμε τριδιάστατες εικόνες προσθέτουμε μια ακόμη συντεταγμένη στις διδιάστατες εικόνες. axis P z x z axis x axis
Images taken from Hearn & Baker, Computer Graphics with OpenGL (200) 7 Καρτεσιανό Σύστημα συντεταγμένων D Σύστημα αναφοράς. Υπάρχουν δύο διαφορετικοί τρόποι να σχηματίσουμε D συντεταγμένες Δεξιού χεριού ή Αριστερού χεριού. Right-Hand σύστημα αναφοράς Ως επί το πλείστον χρησιμοποιείται το σύστημα αναφοράς δεξιού χεριού Left-Hand σύστημα αναφοράς
8 Σημεία & Γραμμές Σημεία (points): Ένα σημείο στον διδιάστατο χώρο παρίσταται ως ένα ζευγάρι τιμών (ordered pair) (x, ) Στον τριδιάστατο χώρο παρίσταται ως μια τριπλέτα τιμών (ordered triple) (x,, z) Γραμμές (lines): Μια γραμμή ορίζεται κάνοντας χρήση ενός σημείου_αρχής και ενός σημείου_τέλους. στις 2d: (x start, start ) εως (x end, end ) στις d: (x start, start, z start ) εως (x end, end, z end )
9 Σημεία & Γραμμές (2) (2, 7) (6, 7) Γραμμη απο (2, 7) έως (7, ) (2, ) (7, ) (7, 1) x
10 Εξίσωση Γραμμής Η εξίσωση γραμμής είναι: m x οπου m είναι η κλήση (slop): m end και b είναι η -τομή (-intercept) b x end end b x 0 0 m x 0 0 Η εξίσωση γραμμής δίνει τις τιμές του σημείου για κάθε τιμή του σημείου x. 0 x 0 x end x
11 Παράδειγμα Σχεδίαση (τμηματική) μιας γραμμής που δίδεται από την εξίσωση: x Υπολογίζουμε τις τιμές του για αντίστοιχες τιμές του x
12 Παράδειγμα () Για κάθε τιμή του x παίρνουμε μια τιμή του : 2 ) ( 1 ) ( ) ( 2 6 6) ( 7 7) ( 2 2 2) ( x 2 6 7 2
1 Διανύσματα (Vectors) Διανύσματα: Ως διάνυσμα ορίζεται η διαφορά δύο σημείων Τα διανύσματα έχουν κατεύθυνση και μήκος Χρήση: Δείχνει πώς να μετακινηθούμε από ένα σημείο σε ένα άλλο σημείο Μετασχηματισμούς (transformations)
ΠΡΟΣΟΧΗ: Πολλά ζευγάρια σημείων μοιράζονται το ίδιο διάνυσμα 1 Διανύσματα (Vectors) 2D Για να ορισθεί ένα διάνυσμα μεταξύ δύο σημείων απλά αφαιρούνται τα δυο σημεία axis P 2 (7, 10) V P 2 P 1 (Vx,V) P 1 (2, 6) V P 2 (6, 7) P 2 (10, 7) ( x2 x1, 2 1) V V ( 6 1, 7 ) P 1 (1, ) P 1 (, ) (, ) x axis
1 Διανύσματα (Vectors) D Στις τρεις διαστάσεις ένα διάνυσμα υπολογίζεται με όμοιο τρόπο όπως στις δυο διαστάσεις. axis V P 2 P 1 ( x2 x1, 2 1, z2 z1) ( Vx, V, Vz ) εχουμε P 2 Απ το (2, 1, ) ως (7, 10, ) P 1 (7 2,10 (,9,2) 1, ) z axis x axis
16 Πράξεις με Διανύσματα - Vector Operations Συνήθεις πράξεις που εκτελούμε με τα διανύσματα είναι (vector operations): Υπολογισμός μήκους (vector length) Πρόσθεση διανυσμάτων (vector addition) Πολλαπλασιασμός με σταθερά (scalar multiplication vectors) Γινόμενο Scalar product Γινόμενο Vector product
17 Πράξεις με Διανύσματα: Μήκος Το μήκος (length) ενός διανύσματος στις 2D δίδεται από: 2 2 V V x V και στις τρεις διαστάσεις άπό: 2 2 2 V Vx V Vz
18 Πράξεις με διανύσματα: Πρόσθεση Addition Το άθροισμα δύο διανυσμάτων υπολογίζεται απλώς με πρόσθεση των αντιστοίχων συντεταγμένων V V 2 ( V1 x V2 x, V1 V2 1 ) axis axis V 1 V 2 V 2 V 2 V 1 V 1 x axis x axis Ανάλογη διαδικασία και στις τρείς διαστάσεις
19 Πράξεις με διανύσματα: Πρόσθεση Παράδειγμα 1 V 1 (, 1), V 2 (1., 2.) V V 2 ( V1 x V2 x, V1 V2 1 V V 1 V 2 (.,.) ) axis axis V 1 V 2 V 2 V 2 Ανάλογη διαδικασία V 1 και στις τρείς διαστάσεις V 1 x axis x axis
20 Πράξεις με Διανύσματα: Scalar Multiplication Πολ/σμός ενός διανύσματος με έναν παράγοντα (s). Πολ/ζουμε κάθε συστατικό του διανύσματος με τον παράγοντα (s) sv ( sv x, sv ) axis axis (sv x, sv ) (V x, V ) sv V x axis x axis
21 Άλλες Πράξεις με Διανύσματα Other Vector Operations Υπάρχουν και άλλες σημαντικές λειτουργίες (πράξεις) όπως: Scalar product (dot product) Vector product (cross product) a [a1, a2,..., an] b [b1, b2,..., bn]
22 Πίνακες - Matrices Ένας πίνακας είναι μια διάταξη από αριθμούς 1 10 2 11 0 1 6 [ 1 2 ]. 6.7 1.2 16 8 2 1 2 Με την χρήση πινάκων μπορούμε να εκτελέσουμε πολλές μαθηματικές πράξεις, που απαιτούνται στα γραφικά, πολύ γρήγορα
2 Πράξεις με Πίνακες-Matrix Operations Οι πιο συχνές πράξεις με πίνακες (matrices) που χρησιμοποιούμε στα γραφικά: Πολ/σμός με παράγοντα (Scalar multiplication) Πρόσθεση (Matrix addition) Πολ/σμός (Matrix multiplication) Αναστροφή (Matrix transpose) Ορίζουσα ενός πινακα (Determinant a matrix) Αντιστροφή (Matrix inverse)
2 Πράξεις με Ορίζουσες: Πολ/σμός με παράγοντα (scalar multiplication) Πολ/ζουμε κάθε στοιχείο της ορίζουσας με τον παράγοντα s * a d g b e h c f i s * a s * d s * g s* b s * e s * h s * c s * f s * i Παράδειγμα: 2 * 8 1 10 16 6 12 18 6 2 2 12 8 18 6
2 Πράξεις με Πινακας : Πρόσθεση (addition) Προσθέτουμε όλα τα στοιχεία της μιας ορίζουσας με τα αντίστοιχα στοιχεία της άλλης ορίζουσας Παράδειγμα: z i h x g w f v e u d t c s b r a z x w v u t s r i h g f e d c b a 7 29 2 21 17 1 9 19 17 1 1 11 9 7 18 16 1 12 10 8 6 2 Και οι δυο ορίζουσες πρέπει να έχουν τις ίδιες διαστάσεις
26 Πράξεις με Πινάκων: Πολ/σμος (Matrix Multiplication) Μπορούμε να πολ/σουμε δυο πίνακες A επί B αν ο αριθμός των στηλών της A είναι ίσος με τον αριθμό γραμμών της B Εάν έχουμε μια m x n πίνακα A και μια n x q πίνακα B τότε ο πολ/σμός αυτών: CAB όπου C είναι ένας m x q πίνακας του οποίου τα στοιχεία υπολογίζονται ως: c ij n k 1 a ik b ki
27 Πράξεις με Πίνακες: Πολ/σμος (Matrix Multiplication) (2) Παραδείγματα: 28 8 22 26 8* 2*2 7* *2 1)* ( 0*2 8* 2*1 7* *1 1)* ( 0*1 2 1 8 7 1 2 0 [ ] [ ] [ ] 2 *6 2* 1* 6 2 1 [ ] 18 12 6 1 10 12 8 6* 6*2 6*1 * *2 *1 * *2 *1 2 1 6
28 Πράξεις με Πίνακες: Πολ/σμος (Matrix Multiplication) () Προσοχή! Στον πολ/σμό των οριζουσών δεν ισχύει η αντιμεταθετική ιδιότητα: AB BA
29 Πράξεις με Πίνακα: Αναστροφή (Transpose) Ο ανάστροφος (transpose) ενός πίνακα (matrix) M, γράφετε ως M T. Λαμβάνεται απλά αλλάζοντας τις γραμμές σε στήλες και τις στήλες σε γραμμές Παράδειγμα: 1 2 6 T 1 2 6
Άλλες Πράξεις με Πίνακες Matrix Operations Υπάρχουν και άλλες πράξεις με ορίζουσες (θα τις εξηγήσουμε όταν τις χρειαστούμε) όπως Ορίζουσα ενός πίνακα (τετραγωνικοί πίνακες) Αντίστροφος πίνακας (Matrix inverse) (μόνο σε τετραγωνικούς πίνακες) Α > Α -1
1 Σύνοψη Μαθηματικά για γραφικά (μαθήματος): Βασική ιδέα Μαθηματικά των σημείων, γραμμών, και διανυσμάτων (vectors) Μαθηματικά των πινάκων Αυτά τα εργαλεία θα μας βοηθήσουν να καταλάβουμε κάποιες αρχές των γραφικών.