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

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    comment penses-tu faire cela?
    0
    1. Anicet
       
      Peut être faire l'arc de cercle pour le collier et appeler les autres fonctions pour poser les perles dessus
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Anicet
         
        as-tu programmé cela?
        0
      2. Anicet > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        pour l'instant je n'ai programmé que les 'perles'
        0
      3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Anicet
         
        c'est le moment de programmer le reste.
        0
      4. Anicet > yg_be Messages postés 23437 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
  2. Lamoulagui
     
    Salut ta perle C a un petit problème et as tu finis pour le reste?
    0
  3. 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
  4. 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
    1. Kelim
       
      Qu'as tu fait pour résoudre le problème de ta perle C ?
      0
    2. Ann
       
      Comment tu a fait stp
      0
    3. Ann > Ann
       
      Pour le colier
      0
    4. Anicet > Ann
       
      Juste le collier ou le collier avec les perles dessus ?
      0
    5. Ann > Anicet
       
      Le colier avec les perle
      Stppppppp
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
    1. Kelim
       
      et du coup pour le collier t'as fait comment ?
      0
  7. Bernard
     
    tu peux envoyer le code de ton collier?
    0
  8. 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