Dessin d'art optique avec deformation surpython

Messages postés
1
Date d'inscription
dimanche 27 octobre 2019
Statut
Membre
Dernière intervention
27 octobre 2019
- - Dernière réponse : Modaak
Messages postés
56
Date d'inscription
mercredi 30 mai 2018
Statut
Membre
Dernière intervention
15 novembre 2019
- 10 nov. 2019 à 18:52


"""
projet de fin de formation du MOOC apprendre a programmer avec python
fait par Engelbert Modo
le 26 octobre 2019
le programme produit des tableaux d'art optique representé par des figures geometrique avec differentes
couleurs et deformations elles sera faite
"""

import turtle
from math import cos, sin, pi
import deformation
def hexagone(coordonnee, longueur, col, centre, rayon):
turtle.speed(0)
turtle.up()
x=coordonnee[0] #coordonnee d'origine du premier cube corespondant au coin inferieur gauche
y=coordonnee[1]#coin superieur droite de la fenetre du dessin
p=(x, y, 0)
turtle.goto(x,y)
turtle.down()
#dessin de la premiere face du cube
turtle.color(col[0])
turtle.begin_fill()
x=x+longueur*(cos(0))
y=y+longueur*(sin(0))
p=(x,y,0)
pprim=deformation(p, centre, rayon)
turtle.goto(pprim[0], pprim[1])
x=x+longueur*(cos(-1*pi/3))
y=y+longueur*(cos(-1*pi/3))
p=(x, y,0)
pprim=deformation(p, centre, rayon)
turtle.goto(pprim[0], pprim[1])
x=x+longueur*(cos(-1*pi))
y=y+longueur*(sin(-1*pi))
p=(x, y, 0)
pprim=deformation(p, centre, rayon)
turtle.goto(pprim[0], pprim[1])
x=x+longueur*(cos(-120*pi/180))
y=y+longueur*(sin(120*pi/180))
p=(x, y, 0)
pprim=(deformation(p, centre, rayon))
turtle.goto(pprim[0], pprim[1])
turtle.end_fill()
turtle.mainloop()
# dessin de la deuxieme face du cube
turtle.color(col[1])
turtle.begin_fill()
x=x+longueur*(cos(-60*pi/180))
y=y+longueur*(sin(-60*pi/180))
p=(x, y, 0)
pprim=deformation(p, centre, rayon)
turtle.goto(pprim[0], pprim[1])
x=x+longueur*(cos(-120*pi/180))
y=y+longueur*((sin-120*pi/180))
p=(x, y, 0)
pprim=deformation(p, centre, rayon)
turtle.goto(pprim[0], pprim[1])
x=x+longueur*(cos(-240*pi/180))
y=y+longueur*(sin(-240*pi/180))
p=(x, y, 0)
pprim=deformation(p, centre, rayon)
turtle.goto(pprim[0], pprim[1])
x=x+longueur*(cos(60*pi/180))
y=y+longueur*(sin(60*pi/180))
p=(x, y, 0)
pprim=deformation(p, centre, rayon)
turtle.goto(pprim[0], pprim[1])
turtle.end_fill()
# dessin de la troisieme face du cube
turtle.color(col[2])
turtle.down()
turtle.begin_fill()
x=x+longueur*(cos(0*pi/180))
y=y+longueur*(sin(0*pi/180))
p=(x, y, 0)
pprim=deformation(p, centre, rayon)
turtle.goto(pprim[0], pprim[1])
x=x+longueur*(cos(-120*pi/180))
y=y+longueur*(sin(-120*pi/180))
p=(x, y, 0)
pprim=deformation(p, centre, rayon)
turtle.goto(pprim[0], pprim[1])
x=x+longueur*(cos(-180*pi/180))
y=y+longueur*(sin(-180*pi/180))
p=(x, y, 0)
pprim=deformation(p, centre, rayon)
turtle.goto(pprim[0], pprim[1])
x=x+longueur*(cos(60*pi/180))
y=y+longueur*(sin(60*pi/180))
p=(x, y, 0)
pprim=deformation(p, centre, rayon)
turtle.goto(pprim[0], pprim[1])
turtle.end_fill()
turtle.mainloop()
#fonction pavage qui dessine des paves du cube
def pavage(inf_gauche, sup_droit, longueur, col, centre, rayon):
n=1 #cnombre de ligne du polygone
angle=pi/3
sup_droit1=sup_droit #qui est la nouvelle position du polygone apres chaque ligne
pas=3*longueur #espace entre deux polygone
new_inf_gauche=int(inf_gauche-longueur*(1+cos(angle)))# position de depart pour les lignes paire
new_sup_droit=int(sup_droit+longueur*(1+cos(angle))) #positions finale
while(sup_droit1>inf_gauche):
if(n%2!=0):
for x in range(inf_gauche, sup_droit, pas):
coordonnee=(x, sup_droit1)
print(coordonnee)
hexagone(coordonnee, longueur, col, centre, rayon)
n+=1
else:
for x in range(new_inf_gauche, new_sup_droit, pas):
coordonnee=(x, sup_droit1)
hexagone(coordonnee, longueur, col, centre, rayon)
n+=1
sup_droit1=sup_droit1-longueur*sin(angle)
turtle.done()

pavage(inf_gauche, sup_droit, longueur, col, centre, rayon)

inf_gauche=int(input())
sup_droit=int(input())
longueur=int(input())
col1='red'
col2='blue'
col3='black'
col=(col1, col2, col3)
centre1=int(input())
centre2=int(input())
centre3=int(input())
centre=(centre1, centre2, centre3)
rayon=int(input())




s'il vous plait besoin d'aide c'est pour mon projet de fin de formation a remettre lundi
Afficher la suite 

1 réponse

Messages postés
56
Date d'inscription
mercredi 30 mai 2018
Statut
Membre
Dernière intervention
15 novembre 2019
0
Merci
bonsoir, peux tu mettre ton code python dans une balise <code> comme ça il y aura les tabulations et c'est quoi dans ton code IMPORT deformation et je n'ai pas compris ton problème !
Commenter la réponse de Modaak