Τεχνολογία Παιγνίων Τεχνολογία Παιγνίων 4. Πράξεις Διανυσμάτων 5. Πράξεις Πινάκων 4. Πράξεις Διανυσμάτων 5. Πράξεις Πινάκων Εισαγωγή Διανύσματα Διανύσματα και Βαθμωτά μεγέθη Πολικές και Καρτεσιανές συντεταγμένες Πρόσθεση και Αφαίρεση Διανυσμάτων Πολλαπλασιασμός με σταθερά Εσωτερικό γινόμενο (dot product) Εξωτερικό γινόμενο (cross product) Πίνακες Ισότητα Πρόσθεση / Αφαίρεση Πολλαπλασιασμός με σταθερά Πολλαπλασιασμός πινάκων Αναστροφή (transpose) Διάνυσμα και βαθμωτά μεγέθη Βαθμωτό μέγεθος, π.χ. ένας αριθμός (καμία αναφορά σε κατεύθυνση) π.χ., χρόνος, απόσταση, ταχύτητα Διάνυσμα: χαρακτηρίζεται από μέγεθος και την κατεύθυνση που δείχνει π.χ., μετατόπιση, ταχύτητα, δύναμη, επιτάχυνση Game Technologies Slide 4
Καρτεσιανές και Πολικές Συντεταγμένες Μετατροπές: Πολικές <-> Καρτεσιανές συντεταγμένες Καρτεσιανές Συνταγμένες B = b 1 i + b 2 j = b x i + b y j b 1, b 2 βαθμωτά μεγέθη i,j τα μοναδιαία διανύσματα στις +x και +y κατευθύνσεις Πολικές Συντεταγμένες A = (A,θ) όπου Α: το μέγεθος του διανύσματος θ: η γωνία κατεύθυνσής του Καρτεσιανές->Πολικές B = b 1 i + b 2 j = b x i + b y j Τότε B = (B,θ) με 2 2 B b 1 b και θ = atan(b 2 /b 1 ) 2 Πολικές->Καρτεσιανές Αν B = (B,θ), τότε B = b 1 i + b 2 j, όπου b 1 = B cos(θ) b 2 = B sin(θ) Game Technologies Slide 5 Game Technologies Slide 6 Διανυσματική Πρόσθεση και Αφαίρεση Πολλαπλασιασμός Διανυσμάτων με σταθερά A + B = B + A = (a 1 +b 1 )i + (a 2 +b 2 )j A - B = (a 1 -b 1 )i + (a 2 -b 2 )j Προφανής επέκταση και σε 3D Σε Καρτεσιανές συντεταγμένες: ca = (ca 1 )i + (ca 2 )j, όπου το c είναι ένας αριθμός Σε Πολικές Συντεταγμένες: ca= (ca, θ) Παράδειγμα: Κανονικοποίηση: Το διάνυσμά μας να έχει μοναδιαίο μήκος, διατηρώντας την κατεύθυνσή του Σε Καρτεσιανές συντ/νες: Με A=a 1 i+a 2 j = (a 1,a 2 ) : A = sqrt(a 12 + a 22 ) Το μοναδιαίο διάνυσμα κατά μήκος του A είναι: n(a) = (a 1 i + a 2 j) / A = A -1 (a 1,a 2 ) Σε Πολικές συντεταγμένες: Με A=(A,θ) : n(a) = (1,θ) Game Technologies Slide 7 Game Technologies Slide 8
Εσωτερικό γινόμενο διανυσμάτων Απόδειξη του τύπου συνημίτονου για το εσωτερικό γινόμενο Για τα διανύσματα A = [a 1,a 2, a 3 ] και B = [b 1,b 2, b 3 ] ορίζουμε το εσωτερικό γινόμενο ως: A B = a 1 b 1 + a 2 b 2 + a 3 b 3 (ένας αριθμός!) Γιατί είναι χρήσιμο? Τύπος συνημίτονου για το εσωτερικό γινόμενο: A B = A B cosθ, έτσι A B = 0 <=> A B A B > 0 θ < 90 A B < 0 θ > 90 Χρήση του κανόνα των συνημίτονων για τρίγωνα: v w 2 = w 2 + v 2 2 v w cosθ Τώρα, παρατηρείστε ότι: v w 2 =(v w) (v w) = v v v w w v+w w = v v 2(v w)+w w = v 2 + w 2 2(v w) Εξισώνοντας αυτές τις 2 εκφράσεις ως προς v w 2 παίρνουμε v 2 + w 2 2(v w) = w 2 + v 2 2 v w cosθ or 2(v w) = 2( v w cosθ) or v w= v w cosθ Game Technologies Slide 9 Game Technologies Slide 10 Παράδειγμα Λύση cos(θ) θ(rad) θ(deg) 0.952381 0.309845 17.75279 Μια κάμερα με γωνία θέασης (FOV) of 36 o τοποθετείται στο σημείο C:[3,-2,1] και δείχνει απευθείας στο σημείο V:[5,2,5]. Σε κάποιο χρόνο t, ένα σημειακό αντικείμενο βρίσκεται στη θέση P:[5,1,7]. Βλέπει η κάμερα το αντικείμενο? Σημείωση: Γωνία Θέασης είναι η γωνία ανοίγματος του συνδυασμού κάμερας + φακού. Για παράδειγμα, μια γωνία θέασης των 30 o σημαίνει ότι η κάμερα βλέπει ένα κώνο με γωνία 15 o. Διάνυσμα OC = [3,-2,1] Διάνυσμα OV = [5,2,5] Διάνυσμα OP = [5,1,7] Διάνυσμα CP = OP - OC = [5-3,1+2,7-1] = [2,3,6] Διάνυσμα θέασης τη Κάμερας: CV = OV OC = [5-3,2+2,5-1] = [2,4,4] Χρήση νόμων των συνημίτονων στα διανύσματα CV, CP για να υπολογίσουμε την γωνία θ μεταξύ τους: CV CP = CV CP cosθ CV CP = [2,4,4]. [2,3,6] = 2x2+4x3+4x6 = 4+12+24=40 CV = SQRT((2 2 +4 2 +4 2 ) = SQRT(4+16+16)=SQRT(36)=6 CP = SQRT(2 2 +3 2 +6 2 ) = SQRT(4+9+36)=SQRT(49)=7 cosθ = 40/(6x7) = 0.9523 => θ = 17.75 ο Εφόσον 17.75 ο < 18 ο = 36 ο /2, η κάμερα βλέπει το αντικείμενο! Game Technologies Slide 11 Game Technologies Slide 12
Εξωτερικό γινόμενο διανυσμάτων Ο τύπος ημιτόνου για το εξωτερικό γινόμενο Για τα διανύσματα A = [a1 a2 a3] και B = [b1 b2 b3], ορίζουμε το διανυσματικό τους γινόμενο ως: A x B = [(a 2 b 3 a 3 b 2 ), (a 3 b 1 a 1 b 3 ), (a 1 b 2 a 2 b 1 )] δηλ. είναι ένα διάνυσμα!! έχει νόημα μόνο σε 3D, αφού A x B είναι κάθετο και στο A και στο B Σημειώστε ότι: A x B = (B x A) Χρήσιμες Ιδιότητες: Εάν τα διανύσματα Α και Β είναι ανήκουν σε ένα επίπεδο, τότε το εξωτερικό γινόμενό τους μας δίνει ένα διάνυσμα κάθετο στο επίπεδο. Ομοίως μπορούμε να υπολογίσουμε ένα τοπικά κάθετο διάνυσμα σε μια κυρτή επιφάνεια από οποιαδήποτε δύο διανύσματα εφάπτονται αυτής στο σημείο ενδιαφέροντος. Αποδείξτε ότι: AxB = A B sinθ vxw 2 = w 2 + v 2 2 v w cosθ Απόδειξη: Πρώτα αποδείξτε την ταυτότητα Lagrange : AxB 2 = A 2 B 2 (A B) 2 με επαλήθευση και μετά χρησιμοποιείστε την ταυτότητα cos 2 θ = 1 sin 2 θ Game Technologies Slide 13 Game Technologies Slide 14 Ισότητα πινάκων, πρόσθεση, πολλαπλασιασμός με σταθερά Τεχνολογία Παιγνίων 4. Πράξεις Διανυσμάτων 5. Πράξεις Πινάκων Ισότητα πινάκων: Δύο πίνακες είναι ίσοι αν και μόνο αν οι πίνακες αυτοί έχουν ίδιες διαστάσεις και τα στοιχεία τους είναι έναπρος-ένα ίσα: Για A = [Aij], B = [Bij], A = B <=> aij = bij i,j Πρόσθεση Πινάκων: Πολλαπλασιασμός με σταθερά: Game Technologies Slide 16
Πολλαπλασιασμός Πινάκων Πολλαπλασιασμός Πινάκων (παράδειγμα) Αν A είναι ένας πίνακας n m και B είναι ένας πίνακας m p, τότε το γινόμενό τους AB ορίζεται μόνο εάν ο αριθμός των στηλών m στον A είναι ίσος με τον αριθμό των γραμμών m στο B, το δε αποτέλεσμα του πολλαπλασιασμού τους είναι ένας πίνακας n p. Π.χ., για τους παρακάτω πίνακες ο πίνακας AB υπολογίζεται ως: όπου: Αντιμετωπίζοντας τις γραμμές και στήλες σε κάθε πίνακα σαν διανύσματα, κάθε στοιχείο του πίνακα ΑΒ υπολογίζεται ως εσωτερικό γινόμενο των κατάλληλων διανυσμάτων, δηλαδή: Αποδείξτε ότι, εν γένει, AB <> BA στον πολλαπλασιασμό πινάκων Game Technologies Slide 17 Game Technologies Slide 18 Αναστροφή πίνακα (transpose) Η πράξη αναστροφής ανταλλάσσει τις γραμμές και στήλες του πίνακα, όπως στο παράδειγμα: Game Technologies Slide 19 AV Production Slide 20
Ασκήσεις 1. Δώστε μερικά παραδείγματα βαθμωτών μεγεθών 2. Δώστε μερικά παραδείγματα διανυσματικών μεγεθών 3. Στο παιγνίδι που σχεδιάζετε, ο παίκτης σας αρχίζει από τη θέση [0,20], προχωρά 80 pixel δεξιά, μετά ανεβαίνει 100 pixel και τέλος στρίβει αριστερά και προχωρά για 50 pixel. Πόση είναι η απόσταση που κάλυψε; Πόσο μετατοπίστηκε στην τελική του θέση από την αρχική; Εάν μετακινείται με μηχανάκι, η βενζίνη που έκαψε εξαρτάται από ποιο από τα δύο παραπάνω μεγέθη και γιατί; 4. Η ταχύτητα του παίκτη σας σε πολικές συντεταγμένες είναι 20m/sec σε γωνία 30 ο. Υπολογίστε την ταχύτητα σε καρτεσιανές συντεταγμένες. 5. Μετατρέψετε το διάνυσμα Α = [3,4] σε πολικές συντεταγμένες 6. Ο πολλαπλασιασμός ενός διανύσματος με μια σταθερά επηρεάζει το μέγεθος ή την κατεύθυνση του; Ασκήσεις (συνέχεια) 7. Κανονικοποιείστε το διάνυσμα Β = [3,4] σε καρτεσιανές και πολικές συντεταγμένες 8. Υποθέστε ότι στο παιχνίδι σας σημαδεύετε με ένα τόξο το σημείο [2,3,4] στην πλάτη ενός τέρατος. Στο σημείο αυτό, δύο διανύσματα που εφάπτονται στο skin του τέρατος είναι τα A = [1,4] και B = [4,1]. Υπολογίστε το A B Υπολογίστε το Α x B Ποια είναι η γωνία των A και B; Τι μπορείτε να συμπεράνετε από τα παραπάνω αποτελέσματά σας για τα διανύσματα Α και Β; Υπολογίστε την ευθεία (δώστε την εξίσωσή της) κατά μήκος της οποίας πρέπει να στείλετε το βέλος σας (αγνοώντας τη βαρύτητα) ώστε να πετύχετε το τέρας ακριβώς στο σημείο που σημαδεύετε. 9. Υποθέστε πως στο παιχνίδι σας η κάμερα είναι τοποθετημένη στο σημείο [0,0], έχει άνοιγμα 60 ο και κοιτάζει κατά μήκος του διανύσματος [4,9]. Βλέπει ένα μικρό bot στη θέση [3, 2] ; Game Technologies Slide 21 Game Technologies Slide 22