Turtle, opérations de base et fractales

Soyez le premier à donner votre avis sur cette source.

Vue 13 152 fois - Téléchargée 715 fois

Description

Source en lien avec le tutoriel Introduction à Turle

Ce programme propose un ensemble de fonctions visant à explorer les fonctionnalités de Turtle ainsi qu'un traceur de fractales.

Source / Exemple :


# Imporation de la librairie Turtle #####################################
from turtle import *                                                    #
#########################################################################

# Dessin d'un trait #####################################################
def Trait(x,y,n):                                                       #
    #(x,y) sont les coordonnées du point de départ.                     #
    # n est la taille du trait                                          #
    up()                                                                #
    goto(x,y)                                                           #
    down()                                                              #
    forward(n)                                                          #
#########################################################################
   

# Dessin d'un carré #####################################################
def Carre(x,y,n) :                                                      #
    #(x,y) sont les coordonnées du coin supérieur gauche.               #
    # n est la taille d’un coté                                   #
    up()                                                                #
    goto(x,y)                                                           #
    down()                                                              #
    for i in range(4) :                                                 #
        forward(n)                                                      #
        left(90)                                                        #
#########################################################################

# Dessin d'un triangle ##################################################
def Triangle(longueur,x,y,orientation):                                 #
    #Cette fonction dessine un triangle équilatéral.                    #
    #longueur est la longueur d'un coté.                                #
    #(x,y) sont les coordonnées du coin gauche.                         #
    #orientation=1 pour un triangle tourné vars le haut                 #
    #orientation=-1 pour un triangle tourné vars le base                #
    up()                                                                #
    goto(x,y) #On positionne le curseur                                 #
    down()                                                              #
    for i in range(0,3): # On trace les trois cotés du triangle         #
        forward(longueur)                                               #
        left(orientation*120) #Un triangle équilatéral a 3 angles de 60°#
#########################################################################

# Dessin d'une étoile ###################################################
def Etoile(longueur,x,y):                                               #
    #Cette fonction dessine une étoile avec la fonction triangle        #
    #longueur est la longueur d'un coté.                                #
    #l'axe (x) est l'axe horizontale sur lequel repose l'étoile         #
    #l'axe(y) est l'axe vertical sur lequel repose l'étoile             #
    #couleur est la couleur du dessin.                                  #
    h=sqrt(3)*longueur/2                                                #
    #h est la hauteur d'un triangle équilatéral,                        #
    Triangle(longueur,x,y+h/3,1)                                        #
    Triangle(longueur,x,y+h,-1)                                         #
    #Ainsi on obtient une étoile parfaitement symétrique                #
    up()                                                                #
    goto(x,y+longueur)                                                  #
    down()                                                              #
#########################################################################

# Dessin d'un polygone régulier #########################################
def Poly(x,y,n,c):                                                      #
    #(x,y) sont les coordonnées du coin supérieur gauche.               #
    # n est la taille d’un coté                                   #
    # c est le nombre de cotés                                          #
    up()                                                                #
    goto(x,y)                                                           #
    down()                                                              #
    angle=360/c                                                         #
    for i in range(c) :                                                 #
        forward(n)                                                      #
        right(angle)                                                    #
#########################################################################

# Dessin d'un cercle ####################################################
def Cercle(x,y,r) :                                                     #
    # (x,y) sont les coordonnées du haut du cercle                      #
    # r est son rayon                                                   #
    Poly(x,y,1,360)                                                     #
#########################################################################

# Dessin de fractales ###################################################
def Dessin(Chaine, n, x, X0, Y0):                                       #
    for i in range(0,len(Chaine)):                                      #
        if Chaine[i]=='A':                                              #
            forward(n)                                                  #
        elif Chaine[i]=='+':                                            #
            right(x)                                                    #
        elif Chaine[i]=='-':                                            #
            left(x)                                                     #
def Substitution(Chaine, regle):                                        #
    #Cette fonction va remplacer 'A' dans la chaine par la regle.       #
    C2=str()                                                            #
    #C2 sera la nouvelle chaine, notre sortie                           #
    for i in range(0,len(Chaine)):                                      #
        if Chaine[i]=='A':                                              #
            C2=C2+regle                                                 #
        elif Chaine[i]=="-":                                            #
            C2=C2 + "-"                                                 #
        elif Chaine[i]=="+":                                            #
            C2=C2 + "+"                                                 #
    return(C2)                                                          #
def Fractale(Chaine, regle, n):                                         #
    #Cette fonction sert a tracer des fractales a partir d'une chaine   #
    C=Chaine                                                            #
    for k in range(0,n):                                                #
        C=Substitution(C,regle)                                         #
    Dessin(C,2,60,-200,0)                                               #
#########################################################################

Fractale('A',"A-A++A-A", 5)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
382
Date d'inscription
mercredi 23 août 2006
Statut
Membre
Dernière intervention
8 novembre 2010
11
Retour sur une source que je n'avais pas vu en son temps.
Turtle cette petite grenouille qui ma bien fait ch*er dans le tuto de GS pour je ne sais qu'elle raison (je suis comme ca je butte parfois sur 1+1 après avoir intégrer entre 0 et +inf :p).

Un bon boulot claire et propre comme tes autres sources que j'ai regardé brièvement (sauf celle sur les carré je suis toujours sur le c*l)

J'ai de gros effort à faire sur la présentation (cf mes jolies codes bien baveux ...), mais ici c'est vraiment bien présenté ... Allez un petit 10/10
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
294
Ha d'accord. Ça m'étonnais un peu.

Il faut dire qu'en Python, on peut dire que je suis un débutant
Messages postés
336
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
8 novembre 2011
1
Petit quiproquo, quand je dit abandonné je ne parle pas que la bibliothèque soit absente, je voulait dire que elle était très peu utilisée, sauf par les débutants !

Je voulais donc dire :

C'est simpas de donner une utilité a cette bibliothèque qui sert normalement uniquement d'introduction a l'interface graphique
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
294
turtle a été abandonnée, je ne le savais pas, dans quelle version ?
Messages postés
336
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
8 novembre 2011
1
10/10

Très bon travail :p

C'est simpas de donner une utilitée a cette bibliotheque "abandonnée"

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.