Dessin Turtle python

Fermé
Anicet - 3 nov. 2021 à 20:14
 Ann - 13 nov. 2021 à 11:03
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 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 Ambassadeur 1 556
4 nov. 2021 à 12:24
bonjour,
comment penses-tu faire cela?
0
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 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 1 556 > Anicet
4 nov. 2021 à 12:31
as-tu programmé cela?
0
Anicet > yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024
4 nov. 2021 à 19:08
pour l'instant je n'ai programmé que les 'perles'
0
yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 1 556 > Anicet
4 nov. 2021 à 20:49
c'est le moment de programmer le reste.
0
Anicet > yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024
5 nov. 2021 à 16:03
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
Salut ta perle C a un petit problème et as tu finis pour le reste?
0
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
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
Qu'as tu fait pour résoudre le problème de ta perle C ?
0
Comment tu a fait stp
0
Pour le colier
0
Anicet > Ann
10 nov. 2021 à 18:19
Juste le collier ou le collier avec les perles dessus ?
0
Ann > Anicet
12 nov. 2021 à 22:59
Le colier avec les perle
Stppppppp
0

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

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