Σχεδίαση και υλοποίηση κύβων tangible computing
65
Εικόνα 3.11: Κώδικας της συνάρτησης blit_rotate_center
Σε αυτό το σημείο αξίζει να αναφερθεί ότι όλες οι εικόνες στην pygame αποτελούν ένα
τετράγωνο στο οποίο εμπεριέχεται στην ουσία η εικόνα. Οπότε εάν η εικόνα περιστραφεί,
περιστρέφεται το τετράγωνο και κατ’ επέκταση η εικόνα που εμπεριέχεται σε αυτό.
Επομένως για να αποφευχθούν τυχόν θόρυβοι και παρεμβολές δημιουργήθηκε και
εφαρμόστηκε η παραπάνω συνάρτηση κατά την οποία περιστρέφεται το κέντρο της εικόνας
παρά η πάνω αριστερά γωνία της όπως θα γινόταν σύμφωνα με μία απλή εφαρμογή έτοιμης
συνάρτησης περιστροφής μιας εικόνας από την pygame .
3.5.2.2 Κίνηση υπό γωνία
H κίνηση της εικόνας αυτή καθ’ εαυτή κατά μήκος ή κατά πλάτος του παραθύρου
προβολής αποτελεί μία σχετικά απλή διαδικασία για την pygame. Η κίνηση του αυτοκινήτου
όμως στις διαστάσεις του παραθύρου προβολής, με το μπροστινό μέρος του να κοιτά στο
σημείο που θα θέλει ο καθοδηγητής του να στρίψει και υπό τη γωνία που επιθυμεί αποτελεί
αντιθέτως μία αρκετά περίπλοκη διαδικασία. Για τις ανάγκες της συγκεκριμένης κίνησης
χρησιμοποιήθηκαν βασικές γνώσεις τριγωνομετρίας καθώς και σχετικές συναρτήσεις της
(συνημίτονο και ημίτονο) οι οποίες αποτυπώθηκαν με τη μορφή κώδικα και εφαρμόστηκαν
στη συνάρτηση κίνησης του αυτοκινήτου (Εικόνα 3.13). Στο παρακάτω γράφημα (Εικόνα
3.12) παρουσιάζεται η γενική ιδέα της μελέτης της κίνησης του αυτοκινήτου υπό γωνία. Στο
συγκεκριμένο παράδειγμα απεικονίζονται με βέλη οι πιθανές πορείες του αυτοκινήτου με το
διαγώνιο βέλος να αναπαριστά την επιθυμητή πορεία. Η θέση λοιπόν που γυρίζει η
μπροστινή όψη του αυτοκινήτου ως προς τους άξονες x και y υπολογίζεται με το συνδυασμό
του αποτελέσματος του πολλαπλασιασμού του ημιτόνου της γνωστής γωνίας θ με το γνωστό
V (που αντιστοιχεί στη λέξη velocity που μεταφράζεται ως ταχύτητα), με του αντίστοιχου
αποτελέσματος του πολλαπλασιασμού του συνημίτονου της γωνίας θ με το V.