Μια χελώνα στη Python είναι ένα μικρό μαύρο βέλος που κινείται αργά πάνω στην οθόνη.
Με τη χρήση της χελώνας μπορούμε να σχεδιάσουμε μια σειρά από σχήματα και γραμμές στην οθόνη.
ΒΙΒΛΙΟΘΗΚΗ TURTLE
- Η βιβλιοθήκη turtle μας επιτρέπει να σχεδιάζουμε διανυσματικά γραφικά τα οποία αποτελούνται από απλά γεωμετρικά σχήματα (γραμμές, κουκίδες, τόξα κλπ.).
- Με την εισαγωγή της βιβλιοθήκης turtle στο πρόγραμμα, μπορούμε να καλέσουμε τις συναρτήσεις που περιέχει.
- Για να την εισάγουμε, γράφουμε import turtle.
ΔΗΜΙΟΥΡΓΙΑ ΚΑΜΒΑ
- Ο καμβάς (canvas) είναι μια άδεια περιοχή σχεδίασης των γραφικών μας.
- Καλώντας τη συνάρτηση Pen()της βιβλιοθήκης turtle δημιουργούμε ένα αντικείμενο Pen που είναι υπεύθυνο για τη σχεδίαση σχημάτων στον καμβά.
- Ταυτόχρονα, ανοίγει ένα άδειο παράθυρο με ένα μαύρο βέλος (χελώνα) στο κέντρο του.
ΣΥΝΑΡΤΗΣΕΙΣ ΚΙΝΗΣΗΣ
- Μπορούμε να δώσουμε εντολές σε μία χελώνα καλώντας αντίστοιχες συναρτήσεις της βιβλιοθήκης turtle.
- Οι πιο κοινές συναρτήσεις της βιβλιοθήκης είναι:
- forward() - Κινεί μπροστά τη χελώνα ένα αριθμό από pixels.
- backward() - Κινεί πίσω τη χελώνα ένα αριθμό από pixels.
- left() - Στρίβει αριστερά τη χελώνα ένα αριθμό μοιρών.
- right() - Στρίβει δεξιά τη χελώνα ένα αριθμό μοιρών.
- reset() - Καθαρίζει τον καμβά και τοποθετεί τη χελώνα πίσω στην αρχική θέση.
- clear() - Καθαρίζει τον καμβά και αφήνει τη χελώνα στη τρέχουσα θέση.
- undo() - Ακυρώνει τα αποτελέσματα της τελευταίας εντολής.
- stamp() & clearstamp() - Σφραγίζει το σχήμα της χελώνας στη τρέχουσα θέση του καμβά. Επιστρέφει ένα αριθμό σφραγίδας (stamp_id), που είναι χρήσιμος όταν θέλουμε να τη διαγράψουμε με την συνάρτηση clearstamp(stamp_id).
Παράδειγμα: Χρησιμοποιούμε τις βασικές συναρτήσεις της βιβλιοθήκης turtle για να κάνουμε τη χελώνα t να σχεδιάσει ένα σχήμα.
Συντομεύσεις
t.forward() = t.fd()
t.backward() = t.back()
ON-LINE ΜΕΝΟΥ
- Όταν γράφουμε μια εντολή, το Python IDLE ανοίγει ένα πτυσσόμενο μενού που παρέχει μια λίστα με όλες τις διαθέσιμες συναρτήσεις.
ΠΕΡΙΓΡΑΦΗ ΣΥΝΑΡΤΗΣΗΣ
- Όταν γράφουμε μια συνάρτηση, το Python IDLE προβάλει μια σύντομη περιγραφή της συνάρτησης.
ΣΧΗΜΑΤΑ ΧΕΛΩΝΑΣ
- Αν και το βασικό σχήμα χελώνας είναι ένα τρίγωνο, μπορούμε να αλλάξουμε το σχήμα της σε χελώνα.
- Για να το κάνουμε, καλούμε τη συνάρτηση shape() της βιβλιοθήκης turtle με το όρισμα "turtle".
ΣΥΝΑΡΤΗΣΗ exitonclick()
- Αν γράψουμε τις εντολές σε ένα αρχείο, βλέπουμε ότι το παράθυρο της χελώνας εξαφανίζεται μετά την εκτέλεση των εντολών.
- Η Python τερματίζει όταν η χελώνα ολοκληρώνει.
- Για να το αποτρέψουμε, καλούμε τη συνάρτηση exitonclick() στο τέλος του αρχείου. Έτσι, το παράθυρο παραμένει ανοικτό έως ότου κάνουμε κλικ.
ΥΠΟΛΟΓΙΣΜΟΣ ΜΟΙΡΩΝ
- Οι μοίρες περιστροφής κυμαίνονται μεταξύ 0 και 360.
- Στο παρακάτω σχήμα, βλέπουμε τις μοίρες σε ένα πλήρη κύκλο καθώς κινούμαστε προς τα δεξιά με βήμα 30 μοίρες τη φορά.
t.left(90) = t.right(270)
t.right(90) = t.left(270)
ΣΧΕΔΙΑΣΗ ΤΕΤΡΑΓΩΝΟΥ
- Το τετράγωνο είναι το ευκολότερο σχήμα για αρχή.
Παράδειγμα: Σχεδιάζουμε ένα τετράγωνο με 50 pixels πλευρά και στο τέλος, επιστρέφουμε στην αρχική θέση και κατεύθυνση.
ΣΧΕΔΙΑΣΗ ΤΡΙΓΩΝΟΥ
- Το τρίγωνο είναι το επόμενο σχήμα που σχεδιάζουμε.
Παράδειγμα: Σχεδιάζουμε ένα τρίγωνο με 100 pixels πλευρά και στο τέλος, επιστρέφουμε στην αρχική θέση και κατεύθυνση.
ΒΡΟΧΟΣ FOR
- Αντί να γράφουμε επαναλαμβανόμενα τις ίδιες εντολές, μπορούμε να χρησιμοποιήσουμε ένα βρόχο for.
ΔΗΜΙΟΥΡΓΙΑ ΠΑΡΑΛΛΗΛΟΓΡΑΜΜΟΥ
Παράδειγμα: Σχεδιάζουμε ένα παραλληλόγραμμο με 100x80 pixels πλευρές και στο τέλος επιστρέφουμε στην αρχική θέση και κατεύθυνση.
ΘΕΩΡΗΜΑ ΠΛΗΡΟΥΣ ΔΙΑΔΡΟΜΗΣ
- Για να σχεδιάσουμε ένα κλειστό πολύγωνο, η χελώνα περιστρέφεται συνολικά 360 μοίρες για να ολοκληρώσει την κίνηση της γύρω από το σχήμα, καθώς και να επιστρέψει στην αρχική θέση και κατεύθυνση.
τετράγωνο
360 μοίρες = 4 * 90 μοίρες
εξάγωνο
360 μοίρες = 6 * 60 μοίρες
οκτάγωνο
360 μοίρες = 8 * 45 μοίρες
Παράδειγμα: Δημιουργούμε μια συνάρτηση square που σχεδιάζει ένα τετράγωνο και δέχεται ως παράμετρο το μήκος της πλευράς του.
ΣΧΕΔΙΑΣΗ ΑΣΤΕΡΙΩΝ
- Για τη σχεδίαση ενός αστεριού, η χελώνα καλύπτει ένα πολλαπλάσιο των 360 μοιρών (π.χ. 720, 1080, 1440, 1800 κλπ.) προκειμένου να ολοκληρώσει τη διαδρομή της γύρω από το αστέρι και να επιστρέψει στην αρχική θέση και κατεύθυνση.
ΣΥΝΑΡΤΗΣΕΙΣ ΣΧΕΔΙΑΣΗΣ
- penup(), pu(),up() - Σηκώνει το στυλό έτσι ώστε η χελώνα να κινείται χωρίς να αφήνει το ίχνος της.
- pendown(), pd(), down() - Κατεβάζει το στυλό έτσι ώστε η χελώνα να αφήνει το ίχνος της καθώς κινείται.
- pensize(), width() - Αλλάζει το πάχος γραμμής. Αν δεν δοθεί όρισμα, επιστρέφει το τρέχον πάχος π.χ. pensize(10).
- isdown() - Επιστρέφει True αν το στυλό είναι κάτω, διαφορετικά επιστρέφει False.
- clone() - Δημιουργεί ένα κλώνο της χελώνας με την ίδια θέση, κατεύθυνση και τις άλλες ιδιότητες.
Παράδειγμα: Σχεδιάζουμε ένα γραφικό χρησιμοποιώντας τις συναρτήσεις reset(), up() και down() της βιβλιοθήκης turtle.
ΣΥΝΑΡΤΗΣΕΙΣ ΘΕΣΗΣ
- goto(), setpos() - Κινεί τη χελώνα σε μία συγκεκριμένη θέση π.χ. goto(100,200), setpos(-200,100).
- setx() - Αλλάζει την πρώτη συντεταγμένη θέσης της χελώνας αφήνοντας τη δεύτερη αμετάβλητη π.χ. setx(-10).
- sety() - Αλλάζει τη δεύτερη συντεταγμένη θέσης της χελώνας αφήνοντας τη πρώτη αμετάβλητη π.χ. sety(50).
- setheading(), seth() - Αλλάζει την κατεύθυνση της χελώνας - (0 = βορράς, 90 = ανατολή, 180 = δύση, 270 = νότος)
- home() - Μετακινεί τη χελώνα στην αρχική θέση (συντεταγμένες 0,0) με την αρχική της κατεύθυνση.
ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΤΑΣΤΑΣΗΣ
- position(), pos() - Επιστρέφει την τρέχουσα θέση (x, y) της χελώνας.
- xcor(), ycor() - Επιστρέφει τη συντεταγμένη x και τη συντεταγμένη y της χελώνας αντίστοιχα.
- heading() - Επιστρέφει την τρέχουσα κατεύθυνση της χελώνας.
- distance() - Επιστρέφει την απόσταση της χελώνας από το σημείο (x, y), ή άλλη χελώνα π.χ. distance(0,0), distance(t1)
- towards() - Επιστρέφει τη γωνία σε μοίρες μεταξύ της θέσης της χελώνας και του σημείου (x, y), ή κάποιας άλλης χελώνας π.χ. towards(100,0), towards(t1)
ΣΥΝΑΡΤΗΣΗ color()
- color() - Επιστρέφει το τρέχον χρώμα στυλό και το τρέχον χρώμα γεμίσματος σαν ζεύγος από strings.
- color(str) - Χρησιμοποιεί το str για να αλλάξει το χρώμα στυλό π.χ. color("red")
- color(str1,str2) - Χρησιμοποιεί το str1 για χρώμα στυλό και το str2 για χρώμα γεμίσματος π.χ. color("red","blue")
- color("#R,G,B") - Χρησιμοποιεί το μοντέλο R,G,B για να αλλάξει το χρώμα στυλό και γεμίσματος π.χ. color("#ff0000")
ΣΥΝΑΡΤΗΣΕΙΣ ΧΡΩΜΑΤΩΝ
- color() - Επιστρέφει ή αλλάζει το χρώμα στυλό και το χρώμα γεμίσματος ως ένα ζεύγος από strings.
- pencolor() - Επιστρέφει ή αλλάζει μόνο το χρώμα στυλό.
- fillcolor() - Επιστρέφει ή αλλάζει μόνο το χρώμα γεμίσματος.
- begin_fill() - Καλείται πριν τη σχεδίαση ενός σχήματος που πρόκειται να γεμιστεί με χρώμα.
- end_fill() - Καλείται μετά τη σχεδίαση ενός σχήματος προκειμένου να γεμιστεί με χρώμα.
Παράδειγμα: Σχεδιάζουμε ένα αμάξι βασισμένοι στις συναρτήσεις χρώματος της προηγούμενης σελίδας.
ΜΟΝΤΕΛΟ RGB
- Η συνάρτηση color() μπορεί να δεχτεί 3 παραμέτρους βάσει του μοντέλου RGB (Red, Green, Blue).
- Κάθε παράμετρος παριστάνει την ποσότητα του αντίστοιχου χρώματος και παίρνει τιμές μεταξύ 0 και 1. (0 = 0% χρώμα) - (1 = 100% χρώμα).
color(1,0,0)
Ο συνδυασμός των 3 βασικών χρωμάτων παράγει άλλα χρώματα.
Παράδειγμα: Δημιουργούμε τη συνάρτηση mycircle για να σχεδιάσουμε ένα γεμισμένο κύκλο χρησιμοποιώντας 3 παραμέτρους που παριστάνουν την ποσότητα του κόκκινου, πράσινου και μπλε χρώματος αντίστοιχα.
Παράδειγμα: Δημιουργούμε τη συνάρτηση mysquare για τη σχεδίαση ενός τετραγώνου χρησιμοποιώντας 5 παραμέτρους που παριστάνουν το μήκος πλευράς, το χρώμα του σχήματος και τη πληροφορία αν το σχήμα θα είναι γεμισμένο ή όχι.
ΣΥΝΑΡΤΗΣΕΙΣ ΟΡΑΤΟΤΗΤΑΣ
- showturtle(), st() - Κάνει τη χελώνα ορατή.
- hideturtle(), ht() - Κάνει τη χελώνα αόρατη.
- isvisible() - Επιστρέφει True αν η χελώνα είναι ορατή, ή False αν η χελώνα είναι αόρατη.
ΣΥΝΑΡΤΗΣΕΙΣ ΕΜΦΑΝΙΣΗΣ
- shape() - Τροποποιεί το σχήμα της χελώνας με πιθανές τιμές("turtle", "arrow", "circle", "square", "triangle", "classic").
- tilt() - Περιστρέφει το σχήμα της χελώνας κατά μία γωνία χωρίς να μεταβάλλει την κατεύθυνση της.
- tiltangle() - Επιστρέφει την τρέχουσα κλίση του σχήματος της χελώνας.
- settiltangle() - Περιστρέφει το σχήμα της χελώνας σε ένα συγκεκριμένο σημείο που έχει καθοριστεί.
ΣΥΝΑΡΤΗΣΕΙΣ ΟΘΟΝΗΣ
- bgcolor() - Τροποποιεί ή επιστρέφει το χρώμα οθόνης π.χ. screen.bgcolor('yellow').
- bgpic() - Αλλάζει ή επιστρέφει την εικόνα οθόνης (.gif) π.χ. screen.bgpic('car.gif').
- resetscreen() - Καθαρίζει τον καμβά και τοποθετεί τη χελώνα στην αρχική θέση π.χ. screen.resetscreen().
- clearscreen() - Διαγράφει όλα τα γραφικά και τις χελώνες που υπάρχουν στην οθόνη π.χ. screen.clearscreen().
- screensize() - Καθορίζει ή επιστρέφει το πλάτος και το ύψος του καμβά π.χ. screen.screensize(500,400).
ΑΛΛΕΣ ΣΥΝΑΡΤΗΣΕΙΣ
- speed() - Καθορίζει την ταχύτητα κίνησης της χελώνας με έναν ακέραιο μεταξύ 0..10. (Ελάχιστο = 1, Κανονικό = 6, Γρήγορο = 10, Μέγιστο = 0).
- delay() - Καθορίζει την καθυστέρηση σε ms (χρόνος μεταξύ δύο συνεχόμενων ανανεώσεων της οθόνης). Όσο μεγαλύτερη είναι η αυτή, τόσο αργότερη γίνεται η κίνηση της χελώνας π.χ. screen.delay(0).
- bye() - Τερματίζει το παράθυρο της οθόνης της χελώνας.
- title() - Καθορίζει τον τίτλο του παραθύρου της χελώνας π.χ. screen.title("Hello Turtle").
ΣΥΝΑΡΤΗΣΗ pen()
- Επιστρέφει ή τροποποιεί τις ιδιότητες του στυλό.
- Κάποιες από τις παραμέτρους της είναι οι επόμενες:
- shown - True/False
- pendown - True/False
- pencolor - Χρώμα ως string
- fillcolor - Χρώμα ως string
- pensize - Θετικός αριθμός
- speed - Αριθμός μεταξύ 0..10
ΣΥΝΑΡΤΗΣΗ write()
- Εμφανίζει κείμενο στη τρέχουσα θέση της χελώνας βάσει της ακόλουθης σύνταξης:
- write(str, move = False, align = 'left', font = ('Arial', 10, 'normal’))
- str = το κείμενο που εμφανίζεται στην οθόνη.
- move = True (το στυλό μετακινείται στην κάτω-δεξιά γωνία του κειμένου), False (προκαθορισμένη τιμή).
- align = στοίχιση κειμένου (left/center/right).
- font = γραμματοσειρά (όνομα, μέγεθος, τύπος)
ΣΥΝΑΡΤΗΣΗ setup()
- Καθορίζει το μέγεθος και τη θέση του παραθύρου της οθόνης βάσει της επόμενης σύνταξης:
- setup(width = Num, height = Num, startx = Num, starty = Num)
- width - Αν είναι ακέραιος, είναι το πλάτος σε pixels, αν είναι πραγματικός, είναι το ποσοστό κάλυψης (default 50%).
- height - Αν είναι ακέραιος, είναι το ύψος σε pixels, αν είναι πραγματικός, είναι το ποσοστό κάλυψης (default 75%).
- startx - Είναι η θέση εκκίνησης από την αριστερή πλευρά της οθόνης.
- starty - Είναι η θέση εκκίνησης από την πάνω πλευρά της οθόνης.
ΣΥΝΑΡΤΗΣΗ help()
- Πριν χρησιμοποιήσουμε μια συνάρτηση πρέπει να γνωρίζουμε την υπογραφή της (λειτουργία και σύνταξη) π.χ. τι παραμέτρους χρησιμοποιεί εντός παρένθεσης.
- Για το λόγο αυτό, χρησιμοποιούμε τη συνάρτηση help() και εντός παρενθέσεων γράφουμε τη λέξη turtle, μια τελεία και το όνομα της συνάρτησης για την οποία ψάχνουμε βοήθεια.
Μακρής Ηλίας Π.Ε. Πληροφορικής