Dessin Turtle python

Anicet -  
 Ann -
Bonjour, je dois faire une sorte de 'collier' avec des sortes de 'perles' en Turtle python.
J'ai déjà créé toutes les perles et je dois maintenant les mettre sur le fil (ici juste un arc de cercle) et je galère a faire cette étape. Pouvez vous m'aider ?
Voici le code de toutes les perles :

from turtle import *

def perleA(n, couleur):
    import math
    reset()
    fillcolor(couleur)
    width(1)
    circle(n,360)
    up()
    left(90)
    forward(n/2)
    up()
    left(45)
    down()
    color(couleur)
    begin_fill()
    for i in range(4):
        forward(math.sqrt(2*((n/2)**2)))
        right(90)
    end_fill()
    
def perleB(m, couleur):
    import math
    reset()
    fillcolor(couleur)
    width(1)
    circle(m,360)
    up()
    left(90)
    forward(m/(3.3/4))
    down()
    left(150)
    color(couleur)
    begin_fill()
    forward(math.sqrt(((m*1.3/4)**2)+(m*1/6)**2))
    left(30)
    circle(m*(1/6),180)
    left(30)
    forward(math.sqrt(((m*1.3/4)**2)+(m*1/6)**2))
    ht()
    end_fill()
    
def perleC(rayon, n, couleur):
    reset()
    width(1)
    for i in range(n):
        if i%2 == 0:
            color('black')
        else:
            fillcolor(couleur)
            begin_fill()
        circle(rayon*i, 360)
        up()
        right(90)
        forward(rayon)
        left(90)
        down()
        end_fill()
        
def perleD(rayon, couleur1, couleur2):
    reset()
    speed(10)
    #tracé du cercle (contour de la perle)
    circle(rayon, 360)
    up()
    left(90)
    forward(rayon)
    left(90)
    down()
    #partie de couleur couleur1 du logo "python"
    width(2)
    color('black')
    fillcolor(couleur1)
    begin_fill()
    forward(rayon/8)
    circle(rayon/8, 90)
    forward(rayon/8)
    right(90)
    forward(rayon/8)
    right(240)
    circle(rayon/2, -60)
    left(120)
    forward(rayon*3/8)
    backward(rayon/4)
    left(90)
    forward(rayon/8)
    right(240)
    circle(rayon/2, -60)
    left(120)
    forward(rayon/4)
    right(180)
    circle(rayon/8, -90)
    right(180)
    forward(rayon/8)
    end_fill()
    up()
    forward(rayon/8)
    circle(rayon/8, 90)
    forward(rayon/8)
    down()
     #tracé de la partie de couleur couleur2 du logo "python"
    color('255,222,217')
    fillcolor(couleur2)
    begin_fill()
    forward(rayon/8)
    left(60)
    circle(rayon/2, 60)
    left(60)
    forward(rayon/8)
    left(90)
    forward(rayon/4)
    backward(rayon*3/8)
    right(120)
    circle(rayon/2, 60)
    left(60)
    forward(rayon/8)
    left(90)
    forward(rayon/8)
    right(180)
    circle(rayon/8, -90)
    right(180)
    forward(rayon/4)
    circle(rayon/8, 90)
    left(180)
    end_fill()
    up()
    #cercle blanc dans la partie de couleur couleur1
    forward(rayon*7/16)
    right(90)
    forward(rayon/8)
    fillcolor('white')
    begin_fill()
    circle(rayon/32, 360)
    end_fill()
    up()
    #cercle blanc dans la partie de couleur couleur2
    right(90)
    forward(rayon/2+rayon/8+rayon/16)
    left(90)
    forward(rayon/2-rayon/4)
    down()
    color('white')
    fillcolor('white')
    begin_fill()
    circle(rayon/32, 360)
    end_fill()
    ht()

7 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
comment penses-tu faire cela?
0
Anicet
 
Peut être faire l'arc de cercle pour le collier et appeler les autres fonctions pour poser les perles dessus
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Anicet
 
as-tu programmé cela?
0
Anicet > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
pour l'instant je n'ai programmé que les 'perles'
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Anicet
 
c'est le moment de programmer le reste.
0
Anicet > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
J'ai fais ça pour le fil du collier (le debut):
def collier(nb_perles, couleur):
    reset()
    circle(150, -60)
    left(90)
    circle(10, 360)
    right(90)
    circle(300 ,60)
    right(90)
    circle(10, 360)
0
Lamoulagui
 
Salut ta perle C a un petit problème et as tu finis pour le reste?
0
Anicet
 
effectivement et je n'arrive pas a mettre la couleur dans les cercles alterné (comme une sorte de cible).
Sinon oui le reste est correct
Merci
0
Anicet
 
Je viens de résoudre le problème des couleurs sir la perle C. Il me reste plus qu'a mettre les perles sur le collier. (et il faut en plus choisir un nombre aléatoire de perles qui vont être posés sur le collier)
0
Kelim
 
Qu'as tu fait pour résoudre le problème de ta perle C ?
0
Ann
 
Comment tu a fait stp
0
Ann > Ann
 
Pour le colier
0
Anicet > Ann
 
Juste le collier ou le collier avec les perles dessus ?
0
Ann > Anicet
 
Le colier avec les perle
Stppppppp
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Anicet
 
Voici mon code pour la perleC :
def perleC(rayon, n, couleur):
    reset()
    width(1)
    for i in range(1,(n+1)):
        if i%2 == 0:
            color('black')
            fillcolor('white')
            begin_fill()
        else:
            fillcolor(couleur)
            begin_fill()
        circle(rayon-(rayon/n*i), 360)
        up()
        right(90)
        backward(rayon/n)
        left(90)
        down()
        end_fill()
0
Kelim
 
et du coup pour le collier t'as fait comment ?
0
Bernard
 
tu peux envoyer le code de ton collier?
0
Anicet
 
le code de mon collier (sans les perles dessus) :
def collier():
    reset()
    circle(200, -60)
    left(90)
    circle(10, 360)
    right(90)
    circle(200 ,60)
    circle(200, 60)
    right(90)
    circle(10, 360)
    left(90)
0