[PYTHON] Jouez avec une tortue avec des graphiques de tortue (partie 1)

Qu'est-ce que Turtle Graphics

Il y a une tortue avec un stylo. Lorsque vous déplacez la tortue à l'aide d'une simple commande, le stylo que possède la tortue dessine une ligne comme marque de mouvement de la tortue. Comme vous pouvez vous déplacer en soulevant le stylo, vous pouvez dessiner des personnages qui ne sont pas dessinés d'un seul trait. Vous pouvez également modifier la couleur et l'épaisseur du stylo.

Turtle Graphics est apparu pour la première fois en 1967 avec le langage LOGO et est également utilisé dans l'enseignement de la programmation pour les enfants. Il est facile à comprendre car l'opération par l'instruction est visible, et il sera plus rapide de comprendre la programmation en combinant diverses instructions. http://en.wikipedia.org/wiki/Turtle_graphics

Graphiques de tortues en Python

Sous Windows, vous pouvez également utiliser Turtle Graphics en installant Python. Autre que Window, vous devrez peut-être installer des bibliothèques graphiques externes supplémentaires.

Vérification de fonctionnement et démonstration de fonctionnement

Tout d'abord, assurez-vous que python est installé. Pour le système d'exploitation Windows, reportez-vous à ce qui suit et cochez Ajouter python.exe au chemin pour installer python.

installation de python dans l'environnement Windows http://qiita.com/maisuto/items/404e5803372a44419d60

Ensuite, vérifions si la tortue bouge.

C:\Users\home> python -m turtle

Cela devrait fonctionner correctement sur le système d'exploitation Windows. Dans d'autres environnements, vous pouvez voir une erreur similaire à la suivante:

$ python -m turtle
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/lib/python2.7/lib-tk/turtle.py", line 107, in <module>
    import Tkinter as TK
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 42, in <module>
    raise ImportError, str(msg) + ', please install the python-tk package'
ImportError: No module named _tkinter, please install the python-tk package

Dans le cas de cette erreur, vous devez installer le package python-tk comme décrit sur la dernière ligne. Pour Debian / Ubuntu Linux, installez le package comme suit.

$ sudo apt-get install python-tk

Si cela ne fonctionne pas du tout, essayez d'installer la dernière version de Python.

Jouez avec une tortue

Préparation

Lancez l'interpréteur Python et importez le package turtle.

C:\Users\home> python
>>> from turtle import *

Que puis-je faire?

Vous pouvez vérifier ce que vous pouvez commander à la tortue avec dir () et help ().

>>> dir()
['Pen', 'RawPen', 'RawTurtle', 'Screen', 'ScrolledCanvas', 'Shape', 'Terminator', 'Turtle', 'TurtleScreen', 'Vec2D', '__builtins__', '__doc__', '__name__', '__package__', 'acos', 'addshape', 'asin', 'atan', 'atan2', 'back', 'backward', 'begin_fill', 'begin_poly', 'bgcolor', 'bgpic', 'bk', 'bye', 'ceil', 'circle', 'clear', 'clearscreen', 'clearstamp', 'clearstamps', 'clone', 'color', 'colormode', 'cos', 'cosh', 'degrees', 'delay', 'distance', 'done', 'dot', 'down', 'e', 'end_fill', 'end_poly', 'exitonclick', 'exp', 'fabs', 'fd', 'fill', 'fillcolor', 'floor', 'fmod', 'forward', 'frexp', 'get_poly', 'getcanvas', 'getpen', 'getscreen','getshapes', 'getturtle', 'goto', 'heading', 'hideturtle', 'home', 'ht', 'hypot', 'isdown', 'isvisible', 'ldexp', 'left', 'listen', 'log', 'log10', 'lt', 'mainloop', 'mode', 'modf', 'onclick', 'ondrag', 'onkey', 'onrelease', 'onscreenclick', 'ontimer', 'pd', 'pen', 'pencolor', 'pendown', 'pensize', 'penup', 'pi', 'pos', 'position', 'pow', 'pu', 'radians', 'register_shape', 'reset', 'resetscreen','resizemode', 'right', 'rt', 'screensize', 'seth', 'setheading', 'setpos', 'setposition', 'settiltangle', 'setundobuffer', 'setup', 'setworldcoordinates', 'setx', 'sety', 'shape', 'shapesize', 'showturtle', 'sin', 'sinh', 'speed', 'sqrt', 'st', 'stamp', 'tan', 'tanh', 'tilt', 'tiltangle', 'title', 'towards', 'tracer','turtle', 'turtles', 'turtlesize', 'undo', 'undobufferentries', 'up', 'update','width', 'window_height', 'window_width', 'write', 'write_docstringdict', 'xcor', 'ycor']
>>> help(Turtle)
>>> help(foward)
>>> help(back)
>>> help(left)
>>> help(right)
>>> help(up)
>>> help(down)
>>> help(color)
>>> help(clear)
>>> help(bye)

Pour plus d'informations, reportez-vous à la documentation en ligne. http://docs.python.jp/2/library/turtle.html

Déplacement simple

Pour commencer, déplaçons simplement la tortue.

>>> forward(100)    #Faites 100 pas
>>> circle(100)     #Tracez un cercle avec un rayon de 100
>>> left(90)        #90 degrés vers la gauche
>>> color('red')    #Tenez un stylo rouge
>>> forward(100)    #Faites 100 pas

turtle1.png

Dessinez un motif

Répétons le processus et laissons-le dessiner un motif.

>>> for i in range(0, 360, 30):  #Tous les 30 degrés de 0 degrés à 360 degrés
...     circle(50)               #Entrez la touche TAB au début de la ligne à indenter(Démissionner)
...     left(30)                 #Entrez la touche TAB au début de la ligne à indenter(Explication omise ci-après)
... #L'opération commence par la saisie d'un saut de ligne au début de la ligne
>>> color('green'):
>>> for i in range(0, 360, 30):
...     circle(30)
...     left(30)
...     forward(10)
... #L'opération commence par la saisie d'un saut de ligne au début de la ligne

turtle2.png

Essayez de définir une fonction de dessin

Dessinons une étoile en utilisant l'opération consistant à dessiner une étoile en tant que fonction.

>>> def star(size):
...     for i in 1,2,3,4,5:
...         forward(size)
...         right(180 - 180/5)
... #La définition de la fonction se termine par la saisie d'un saut de ligne au début de la ligne
>>> reset()
>>> star(100)
>>> color('green')
>>> begin_fill()
>>> star(50)
>>> end_fill()

turtle3.png

Dessinez une figure fractale

>>> def fractal(size, depth=0):
...    if depth <= 0:
...       forward(size)                          #Ligne droite
...    else:
...       fractal(size/3, depth-1); left(60)     #1/Dessin fractal d'une longueur de 3, orienté à 60 degrés vers la gauche
...       fractal(size/3, depth-1); left(-120)   #1/Dessin fractal d'une longueur de 3, face à 120 degrés vers la droite
...       fractal(size/3, depth-1); left(60)     #1/Dessin fractal d'une longueur de 3, orienté à 60 degrés vers la gauche
...       fractal(size/3, depth-1)               #1/Dessin fractal d'une longueur de 3
... (Entrée de ligne vide) #La définition de la fonction se termine par la saisie d'un saut de ligne au début de la ligne
... reset(); fractal(200)
... reset(); fractal(200, 1)
... reset(); fractal(200, 2)
... reset(); fractal(200, 3)

turtle4.png

>>> reset(); goto(-100,-100); clear()
>>> for i in "12345":
...     fractal(200, 3)
...     left(360/5)
... (Entrée de ligne vide)

turtle5.png

C'est tout pour la première partie. Dans la deuxième partie, je jouerai avec plusieurs tortues et ajouterai de nouveaux mouvements aux tortues.

Recommended Posts

Jouez avec une tortue avec des graphiques de tortue (partie 1)
Jouez avec Turtle sur Google Colab
[Python] Chapitre 03-01 graphiques de tortues (création d'une tortue)
Jouez des nombres manuscrits avec python, partie 2 (identifier)
Jouez comme une application Web avec ipywidgets
[Python] Dessiner un motif de tourbillon avec une tortue
Dessinez un graphique avec PyQtGraph Part 1-Drawing
Jouez avec Prophet
Jouez avec PyTorch
Jouez avec 2016-Python
Jouez avec CentOS 8
Jouez avec Pyramid
Jouez avec Fathom
Tweet les prévisions météo avec le bot Partie 2
[Piyopiyokai # 1] Jouons avec Lambda: création d'une fonction Lambda
Dessinez un graphique avec les paramètres PyQtGraph Partie 3-PlotWidget
[Python] Dessinez un Mickey Mouse avec une tortue [Débutant]
Dessinez un graphique avec les paramètres PyQtGraph Part 4-PlotItem
Dessinez un graphique avec PyQtGraph Partie 6 - Affichage d'une légende
Dessinez un graphique avec PyQtGraph Partie 5-Augmentez l'axe Y
Format A4 avec python-pptx
J'ai créé un serveur syslog prêt à l'emploi avec Play with Docker
[AWS] Play with Step Functions (SAM + Lambda) Part.3 (Branch)
Jouer avec Othello (Reversi)
[Jouons avec Python] Créer un livre de comptes de ménage
Comment faire un jeu de tir avec toio (partie 1)
bac à sable avec neo4j partie 10
[AWS] Play with Step Functions (SAM + Lambda) Part.1 (Basic)
[Piyopiyokai # 1] Jouons avec Lambda: créez un compte Twitter
Dessinez un graphique avec PyQtGraph Partie 2 - Paramètres de tracé détaillés
Décorer avec un décorateur
[Piyopiyokai # 1] Jouons avec Lambda: création d'un script Python
[Python] Road to the Serpent (5) Jouez avec Matplotlib
[AWS] Play with Step Functions (SAM + Lambda) Part.2 (Paramètres)
Jouez avec le module de caméra Raspberry Pi Zero WH Partie 1
Créez un plug-in tky2jgd sans praticité avec QGIS Partie 2
Créer un plug-in tky2jgd sans praticité avec QGIS Partie 1
Créez une application de tableau d'affichage à partir de zéro avec Django. (Partie 2)
Créez une application de tableau d'affichage à partir de zéro avec Django. (Partie 3)
Traitement d'image avec Python (partie 2)
Jouons avec la 4e dimension 4e
Etudier Python avec freeCodeCamp part1
Créer un backend Blueqat ~ Partie 1
Jouons avec les données Amedas - Partie 1
Images en bordure avec python Partie 1
Apprenez librosa avec un tutoriel 1
Dessinez un graphique avec NetworkX
Grattage avec Selenium + Python Partie 1
Jouez avec les notifications push avec imap4lib
Créer un backend Blueqat ~ Partie 2
Essayez de programmer avec un shell!
Jouez avec les partitions Linux
Créer une page d'accueil avec django
Jouons avec les données Amedas - Partie 4
Etudier Python avec freeCodeCamp part2
Traitement d'image avec Python (partie 1)
Jouer avec Jupyter Notebook (IPython Notebook)
[Python] Jouez avec le Webhook de Discord.
Résolution de Nampre avec Python (partie 2)
Utiliser une imprimante avec Debian 10