Arduino + TFT--> Turtle Graphics (16 / 18 étapes)

Étape 16 : Dessin de récursive

Jusqu'à présent, on nous dit la tortue où tracer et elle l’a fait ce qu’il a été dit - même avec des dessins plus compliqués comme dans l’exemple de la voiture. Mais la récurrence donne la tortue une vie propre. Vous lui dire quoi faire et puis s’asseoir en arrière et regarder.

Voici un lien vers la discussion de Wikipedia de la récursivité :

www.wikipedia.org/wiki/Recursion _ (computer_science...

Ce qui est la récursivité? Pour une personne écrivant Arduino tortue fonctions graphiques, c’est une autre façon de penser. Pour la tortue qui fait du dessin, c’est une mesure de l’indépendance: « Viens m’aider à démarrer et me regarder passer! »

Remarque : l’Arduino Uno a limité la mémoire SRAM, mais toujours suffisante pour utiliser la récursivité dans nos exemples de graphiques de tortue. Si vous essayez d’utiliser trop d’étapes récursives, vos fonctions peuvent ne pas fonctionner. Cependant nous ne sommes pas parvenus qui limitent dans nos exemples, donc nous allons aller de l’avant et voir comment cela fonctionne...

Lorsque nous invoquons la récursivité, nous utilisons une fonction qui s’appelle. Comment procédons-nous ? Il est plus facile d’expliquer avec un exemple bref qui dessine un v :

void vee(length) ; Si vous exécutez cet exemple, essayez-le avec une longueur de 80 pixels

{

t.Left(45) ; turnes gauche 45 degrés

t.Forward(Length) ; dessine le bras gauche du V avec longueur spécifiée - 80 pixels, par exemple

t.Back(Length) ; retourne au début point de V

t.Right(90) ; se trouve à droite de 90 degrés - qui est 45 degrés à droite de l’orientation d’origine

t.Forward(Length) ; dessine le bras droit de V

t.Back(Length) ; retourne au point de départ

t.Left(45) ; retourne à l’orientation originale

}

Il - qui dessine un V. Nous sommes maintenant prêts à ajouter la récursivité. Après la première ligne qui déclare t.forward(length) ; ajoutez cette ligne :

Vee(length / 2) ; Il s’agit de récursivité - une fonction qui se fait appeler !

Vous avez dessiné le bras gauche du V et maintenant vous appeler la même fonction pour dessiner un autre V qui est la moitié de taille. Après que qui est terminée, la fonction initiale continue d’attirer le V original, plus grand. Il s’agit d’une façon intéressante de dessiner quelque chose. C’est en fait une façon intéressante de réflexion sur comment les choses peuvent être tirées.

Maintenant nous allons ajouter un plus petit V à l’extrémité du bras droit aussi bien. Après la deuxième t.forward(length) ; rajouter cette ligne :

Vee(length / 2) ; Il s’agit de récursivité - une fonction qui se fait appeler !

Nous avons presque terminé, sauf pour une chose - la fonction ne fonctionnera pas comme ça - il y a quelque chose à la difficulté. Récurrence a besoin d’un point d’arrêt, il ne sera pas continuer indéfiniment. (Ce l’erreur que j’ai fait quand j’ai d’abord essayé de tirer un V à l’aide de la récursivité - il n’a pas fonctionné pour moi et j’ai dû obtenir conseils.) Ajouter cette routine d’arrêt au début de la fonction :

Si (longueur < 10)

{

retour ;

}

Il. Maintenant nous avons un point d’arrêt - les bras du V sont ramenés à moins de 10 pixels (à noter que la longueur est réduite de moitié chaque fois que la fonction est appelée) - l’arrêt de la fonction.

Voici la fonction de vee complet récursive :

int longueur = 80 ; une variable qui indique la longueur des bras de la V

void vee(length) ; nomme la fonction, avec un seul paramètre, qui est la longueur des côtés de la V
{

Si (longueur < 10)
{

retour ; Cela arrête la récursivité lorsque length est inférieur à 10 pixels !

}

t.Left(45) ; tourne à gauche à 45 degrés

t.Forward(Length) ; bras gauche de tirages de V avec une longueur de 80 pixels

Vee(length / 2) ; Il s’agit de récursivité - fonction appel lui-même pour dessiner des petit V !

t.Back(Length) ; retourne en bas de la V

t.Right(90) ; tourne à droite 45 degrés

t.Forward(Length) ; dessine le bras droit de V

Vee(length / 2) ; C’est la récursivité à nouveau !

t.Back(Length) ; retourne au point de départ

t.Left(45) ; retourne à l’orientation originale

}

Maintenant, vous pouvez essayer la fonction. Essayez-le avec des valeurs différentes pour la longueur du V - regarder et voir ce qui se passe !

EXEMPLE 1 - CÔNES

Cet exemple utilise une fonction que nous avons nommé rCones dessiner deux arcs, t.arcLeft() et t.arcRight(), chacun des 360 pixels de circonférence. Après avoir dessiné le premier arc, la fonction s’appelle elle-même (!-récursivité)- et dessine un arc plus petite, plus courtes en circonférence de 30 pixels. Cela continue jusqu'à ce que la butée soit atteinte, lorsque l’arc plus petit est inférieur à 100 pixels de circonférence.

EXEMPLE 2 - UN PETIT ARBRE

L’exemple de fonction rTree est similaire à l’exemple de V ci-dessus.

EXEMPLE 3 - UN ARBRE AUX BRANCHES PLUS

Cet exemple utilise la fonction rTree même utilisée dans l’exemple 2, mais en spécifiant une taille de branche plus longtemps la fonction attire beaucoup plus de branches. Il est intéressant de voir combien de détails peut être ajouté en changeant simplement de ce paramètre.

EXEMPLE 4: UN ARBRE PLUS COMPLEX

Le principe est le même -, mais dans cette fonction, nous sommes en mesure de préciser les différentes longueurs des branches gauche et droite branches et autre angle gauche angle droit pour les branches. Aussi les branches plus courtes de la fin sont dessinés une couleur différente. Notre tortue devient assez artistique. Selon les valeurs utilisées, l’image résultante peut être sophistiquée. Essayez quelques longueurs de l’autre branche et les couleurs et voir ce qui se passe.

EXEMPLE 5 - TRIANGLES RÉCURSIVE

Cet exemple dessine des triangles de Sierpinski. En savoir plus à leur sujet sur Wikipedia :

https://en.wikipedia.org/wiki/Sierpinski_triangle

Articles Liés

Arduino TFT texte tutoriel

Arduino TFT texte tutoriel

Vous avez besoin de cette pièces :-Arduino Uno R3-TFT Display-La bibliothèque suivante d'ArduinoÉtape 1: SrcIl s'agit de la src#include#include #define LCD_CS A3 #define LCD_CD A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_RESET A4 Adafruit_TFTL
Arduino TFT affichage et polices de la bibliothèque

Arduino TFT affichage et polices de la bibliothèque

Je suis assez fan de l'Arduino comme il y a tellement logiciels déjà disponibles sur l'internet, ce qui rend remplir plus facilement de nouveaux projets !Récemment j'ai acheté quelques écrans TFT 1.8" à bas prix pour un projet, au début je ne pouvais
L’Arduino / TFT LCD connexion

L’Arduino / TFT LCD connexion

Vous dites que vous voulez brancher un écran TFT à un Arduino ? Vous êtes plaisante?No! Pour le prix d'un familier 2 x 16 LCD, vous obtenez un écran TFT de haute résolution. Pour aussi peu que 4 $ (frais de port inclus!), il est possible d'acheter un
Arduino TFT prévision Station météo avec ESP8266

Arduino TFT prévision Station météo avec ESP8266

Ce projet, s'appuie sur les prévisions météo Wunderground via Internet.Fiche technique :1. 3 jours météo (basse & haute temps, probablement des précipitations, icônes d'État)2. courant météo (température actuelle, %feelslike% temp, humidité, pression
Arduino + TFT = musique visuelle

Arduino + TFT = musique visuelle

Résumé :Audio: dans ce projet l'Arduino lit une chaîne de notes écrites dans la formule de notation musicale que nous avons appelé langue de musique facile. Il sélectionne chaque note musicale (ou reste), détermine sa fréquence et joue cette note.Gra
Turtle Graphics

Turtle Graphics

* POUR EXÉCUTER CECI, VOUS DEVEZ INSTALLER PYTHONouvrir Turtle.pySi vous souhaitez modifier cette juste ouvrez-le avec le bloc-notes
Arduino TFT oscilliscope

Arduino TFT oscilliscope

C'est ma vidéo sur l'apport d'une oscilliscope de l'arduino. L'oscilliscope était assez peu coûteux, alors Amusez-vous. Bien qu'il soit un peu brute, il fait le travail. Quelques petites choses à garder à l'esprit :Condensateur d'uf utilisation 10 1.
Arduino/traitement : Motion graphics et lumières réagissent aux audio

Arduino/traitement : Motion graphics et lumières réagissent aux audio

a pris du temps pour saisir ce que je voulais, mais il en valait la peine.
Votre Image sur un Arduino ! -TFT LCD écran Guide

Votre Image sur un Arduino ! -TFT LCD écran Guide

avez-vous déjà entendu des écrans TFT LCD ?  Ils sont d'excellents moyens pour afficher les informations de votre Arduino, ou afficher des photos.  L'équipe Arduino vient de sortir un écran TFT LCD officiel avec leur nouveau Robot à la Maker Faire 20
Arduino « Talking » Temp / humidité sur un écran TFT LCD w / relais

Arduino « Talking » Temp / humidité sur un écran TFT LCD w / relais

De l'esprit des http://arduinotronics.blogspot.comMaj : Ajout de notre bouclier SpeakEasy par synthèse vocale (TTS) pour en faire une Station météo « Parler » !Maj : Ajout d'une carte à relais 4 ports pour la télécommandeMaj : Ajout des calculs de Po
Arduino/App contrôlée Desk Light

Arduino/App contrôlée Desk Light

Pour ce projet, je voulais quelque chose qui me permettrait d'enseigner moi-même plus d'infos sur Electronique/logiciel, quelque chose je n'ai pas vraiment obtenu en encore... J'ai décidé qu'un jour serait une bonne plateforme pour cela.La conception
Aurdino toutes les choses--visualiser votre Image Arduino Tuch éboulis

Aurdino toutes les choses--visualiser votre Image Arduino Tuch éboulis

ave, avez-vous déjà entendu parler des écrans TFT LCD ?  Ils sont d'excellents moyens pour afficher les informations de votre Arduino, ou afficher des photos.  L'équipe Arduino vient de sortir un écran TFT LCD officiel avec leur nouveau Robot à la Ma
Arduino toutes les choses--S.M.A.R.T Alarm Clock Setup pour réunions, rendez-vous, rappels et tâches, cette horloge utilise un Arduino Yún et votre calendrier Google pour régler automatiquement des alarmes. et il a l’air Cool aussi !

Arduino toutes les choses--S.M.A.R.T Alarm Clock Setup pour réunions, rendez-vous, rappels et tâches, cette horloge utilise un Arduino Yún et votre calendrier Google pour régler automatiquement des alarmes. et il a l’air Cool aussi !

Réveil S.M.A.R.T.Le programme d'installation pour les réunions, rendez-vous, rappels et tâches, cette horloge utilise un Arduino Yún et votre calendrier Google pour régler automatiquement des alarmes. Et il a l'air cool aussi !Par Tony DiCola Difficu
Etch-a-Sketch LOGO - EASiLOGO

Etch-a-Sketch LOGO - EASiLOGO

Ce que vous obtenez lorsque vous traversez une tortue avec un Etch-a-Sketch ?Etch-A-Sketch LOGO interactif - « EASiLOGO » !C'est le premier langage de programmation conçu spécifiquement pour le jouet célèbre monde de Ohio Arts - le Etch-a-Sketch. Si