Article de reference

Graphismes de tortue

En infographie , les graphismes tortues sont des graphismes vectoriels utilisant un curseur relatif (la « tortue ») sur un plan cartésien (axes x et y). Les graphismes tortues c...

En infographie , les graphismes tortues sont des graphismes vectoriels utilisant un curseur relatif (la « tortue ») sur un plan cartésien (axes x et y). Les graphismes tortues constituent une caractéristique essentielle du langage de programmation Logo . Ils représentent également une méthode simple et didactique pour gérer les images animées .

Aperçu

Une animation montrant comment la tortue est utilisée pour créer des graphismes en combinant les commandes d'avancer et de tourner pendant qu'un stylo touche le papier
Une spirale dessinée avec un algorithme de graphisme itératif de type tortue
Un motif graphique de tortue dessiné avec un programme Python

La tortue possède trois attributs : une position, une orientation (ou direction) et un stylo. Le stylo possède également des attributs : une couleur, une largeur et un état marche/arrêt (également appelé abaissé et relevé ).

La tortue se déplace grâce à des commandes relatives à sa position, telles que « avancer de 10 cases » et « tourner à gauche de 90 degrés ». Le stylo qu'elle porte peut également être contrôlé : on peut l'activer, en choisir la couleur ou l'épaisseur. Un élève peut comprendre (et prédire et raisonner sur) les mouvements de la tortue en imaginant ce qu'il ferait à sa place. Seymour Papert a nommé ce raisonnement « syntonique corporel ».

Un système graphique complet basé sur la méthode des tortues nécessite un flux de contrôle, des procédures et la récursivité : de nombreux programmes de dessin de tortues ne le permettent pas. À partir de ces éléments de base, on peut construire des formes plus complexes comme des carrés, des triangles, des cercles et d’autres figures composées. Le concept de la méthode des tortues, par exemple, est utile dans un système Lindenmayer pour la génération de fractales .

La géométrie tortue est également parfois utilisée dans les environnements graphiques comme alternative à un système graphique strictement adressé par coordonnées.

Histoire

Les graphismes tortues sont souvent associés au langage de programmation Logo . Seymour Papert a intégré la prise en charge des graphismes tortues à Logo à la fin des années 1960 pour sa version du robot tortue , un robot simple contrôlé depuis le poste de travail de l'utilisateur et conçu pour réaliser les fonctions de dessin qui lui sont assignées à l'aide d'un petit stylo rétractable intégré ou fixé à son corps. La géométrie tortue fonctionne différemment de la géométrie cartésienne ( x , y ) , étant principalement vectorielle (c'est-à-dire direction relative et distance par rapport à un point de départ), contrairement aux systèmes d'adressage par coordonnées tels que les images bitmap ou raster. Concrètement, l'utilisation de la géométrie tortue, au lieu d'un modèle plus traditionnel, imite la logique de mouvement du robot tortue. La tortue est traditionnellement et le plus souvent représentée par un triangle ou une icône (bien qu'elle puisse être représentée par n'importe quelle icône).

Aujourd'hui, la bibliothèque standard du langage de programmation Python inclut un module graphique Turtle. À l'instar de son prédécesseur Logo, l'implémentation Python de Turtle permet aux programmeurs de contrôler une ou plusieurs tortues dans un espace bidimensionnel. La syntaxe, le flux de contrôle et les structures de données standard de Python étant compatibles avec le module Turtle, ce dernier est devenu un outil populaire pour les programmeurs apprenant Python et souhaitant se familiariser avec les bases du langage.

Extension à trois dimensions

Graphismes 3D de tortues générés avec
Motif dessiné avec un programme Python

Les principes de la représentation graphique de la tortue peuvent être étendus à l'espace tridimensionnel. Ceci est réalisé grâce à différents modèles de coordonnées. Une configuration courante est cartésienne-rotationnelle, comme pour la tortue 2D originale : un vecteur « haut » supplémentaire ( vecteur normal ) détermine le plan de rotation du vecteur « avant » 2D de la tortue ; ce vecteur « haut » pivote lui-même autour du vecteur « avant ». De fait, la tortue possède deux angles de direction différents : l'un dans le plan et l'autre déterminant l'angle du plan. Généralement, modifier l'angle du plan ne déplace pas la tortue, conformément à la configuration traditionnelle.

Verhoeff 2010 met en œuvre l'approche à deux vecteurs ; une commande de roulis est utilisée pour faire pivoter le vecteur « haut » autour du vecteur « avant ». L'article développe ensuite une théorie algébrique permettant de démontrer des propriétés géométriques à partir des propriétés syntaxiques des programmes de tortue sous-jacents. L'une des conclusions est qu'une commande de plongée est en réalité un raccourci pour une séquence virage-roulis-virage.

Cheloniidae Turtle Graphics est une bibliothèque 3D de tortues pour Java . Elle comprend une commande de roulis (équivalente au roulis ) et une commande de tangage (équivalente à la plongée ) pour la « tortue cartésienne rotationnelle ». D'autres modèles de coordonnées, y compris les géométries non euclidiennes, sont autorisés mais non inclus.

Exemple de code

Le code Python suivant utilise le module turtle pour créer une spirale arc-en-ciel :

importer la tortue comme tt.forme ( « tortue » )x = 1 t . vitesse ( 10 ) couleurs = [ "rouge" , "orange" , "jaune" , "vert" , "bleu" , "violet" ]pour i dans la plage ( 100 ): pour i dans les couleurs : t . avant ( x * 0,3 ) t . gauche ( 60 ) t . couleur ( i ) t . droite ( 30,5 ) x = x + 1

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index