Aide Débutant Turtle - Python

Signaler
Messages postés
1
Date d'inscription
samedi 21 septembre 2019
Statut
Membre
Dernière intervention
10 octobre 2020
-
Messages postés
413
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
11 octobre 2020
-
Bonjour,

En cour de NSI, nous avons pour instruction de créer un logo portant sur cette matière en utilisant Turtle. J'ai alors décidé de créer un logo comprenant la planète (où je mettrais un @ dessus en suivant la forme du cercle), et avec les lettres N, S et I tout en haut. Il n'est pas encore finit et manque encore pleins de détails.

Problème : Le fonctionnement des lettres et de la planète fonctionne intégralement. Mais dès que je trace des lignes dans mon cercle, tout part en cacahuètes ! Les lettres s'en vont à l'autre bout de la fenêtre qu'on ne les voit même plus, le changement de couleur et de taille de pinceau ne sont plus pris en compte et au final plus rien ne va. Je n'ai aucun message d'erreur.



Et voilà le problème :




(Oui je sais c'est horrible mais je n'arrive pas à être correcte dans mes traits. Si vous avez des recommandations je suis preneuse. Du aux nombreux détails la reproduction n'est pas fidèle à la Terre mais je veux au moins que ça en ai l'air, même si les continents ne sont pas précis)


Voici le code. Du mon peu d'expérience, il y a énormément de lignes juste pour un petit déplacement car je n'arrive pas encore à bien prendre en main les fonctions. Donc tant que ça marche, je suis contente. Les lignes qui sont entre guillemets """, c'est là où je commence les courbes sur le cercle, et en l’occurrence là ou il y a problème. Quelqu'un aurait-il une solution ?

Merci d'avance.

from turtle import*
setup(width=780,height=750)


hideturtle() #cacher le curseur

bgcolor("black") #mettre le fond de couleur noir

speed(20) #vitesse du tracé

width(5) #changement de l'épaisseur du trait

pencolor("SteelBlue4")

begin_fill()
penup() #création de la planète
setposition(0,-350)
pendown()
circle(180)
color("DeepSkyBlue2")
end_fill()


"""penup() #création du coté gauche (courbes)
setposition(-75,-10)
pencolor("green")
width(3)
pendown()
begin_fill()
for x in range(13):
right(1)
forward(5)
for x in range(22):
right(8)
forward(3)
left(5)
forward(30)
for x in range(6):
left(20)
forward(15)
forward(15)
for x in range(5):
right(8)
forward(10)
for x in range(5):
left(20)
forward(10)
forward(10)
for x in range(13):
right(15)
forward(10)
forward(20)
for x in range(3):
right(10)
forward(10)
forward(5)
for x in range(5):
left(5)
forward(8)
forward(25)
for x in range(3):
left(10)
forward(4)
right(90)
forward(5)
for x in range(5): #tracage sur la ligne bleu
left(5)
forward(5)
for x in range(4):
right(10)
forward(10)
forward(50)
for x in range(3):
right(10)
forward(10)
forward(50)
for x in range(3):
left(5)
forward(5)
for x in range(3):
right(10)
forward(10)
for x in range(3):
right(5)
forward(5)
color("green")
end_fill()"""



penup() # LETTRE N
setposition(-380,150)
width(4)
pendown()
left(90)
forward(200)

x=0

for x in range(4):
right(40)
forward(10)
forward(300)

x=0

for x in range(4):
left(40)
forward(10)
forward(280)

penup() # LETTRE S
setposition(100,350)
pendown()
left(90)
forward(200)
for x in range(22):
left(8)
forward(10)
left(4)
forward(150)
for x in range(22):
right(8)
forward(10)
right(4)
forward(200)

penup() # LETTRE I
setposition(300,350)
pendown()
left(90)
forward(300)



pencolor("red") # Création des objets commplémentaires
width(3)


penup() # Téléphone (Lettre N)
setposition(-223,57) # partie basse
pendown()
right(90)
forward(157)
right(90)
forward(100)

penup()
setposition(-223,57)
pendown()
forward(20)

penup() # partie haute
setposition(-380,360)
pendown()
right(90)
forward(157)

penup()
setposition(-380,360)
pendown()
right(90)
forward(10)

width(2) # bouton d'acceuil

penup()
setposition(-310,80)
pendown()
circle(10)

width(3) # Souris (Lettre S)

penup()
setposition(100,360)
pendown()
forward(20)
for x in range(2):
left(40)
forward(5)
left(10)
forward(30)
for x in range(2):
left(40)
forward(5)

width(2)

left(10) # boucle de la souris
forward(7)
left(90)
forward(20)
right(90)
forward(5)
right(90)
forward(20)
right(90)
forward(5)
right(180)

width(3)
forward(13) # sortie de la boucle

for x in range(2):
left(40)
forward(5)
left(10)
forward(31)
for x in range(2):
left(40)
forward(5)

width(3) # Télévision (Lettre S)

penup()
setposition(-80,65)
pendown()
left(100)
forward(80)

penup() # pied de la télévision
setposition(-40,65)
width(4)
pendown()
left(90)
forward(20)

right(90) # écran de la télévision
forward(40)
left(90)
forward(30)
left(90)
forward(80)
left(90)
forward(30)
left(90)
forward(40)

exitonclick()






Configuration: Windows / Firefox 81.0

2 réponses

Messages postés
413
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
11 octobre 2020
194
Bonjour,
Sur la deuxième capture d'écran, on reconnait les lignes qui composent les lettres, mais celles-ci sont penchées sur la gauche. Cela indique que la tortue est tout simplement mal orientée.
C'est normal, après l'avoir fait se déplacer le long de la forme verte, elle n'a aucune raison de se retrouver dans la même orientation qu'avant. (Elle a un angle de 21° au lieu de 0°)
Pour résoudre le problème, il suffit de la remettre dans la bon sens après avoir tracé le continent en faisant
seth(0)
.
Messages postés
410
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
12 octobre 2020
59
Bonjour Dwenyl,


L'indentation étant importante en Python, merci de re poster ton code avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci :

def test():
    print('test')

test()