Calcul trigonométrique avec des coordonnés
Résolu
Joseph_Hocquet
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
Joseph_Hocquet Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
Joseph_Hocquet Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Calcul trigonométrique avec des coordonnés
- Calcul moyenne excel - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Logiciel gratuit calcul surface m2 - Télécharger - Outils professionnels
6 réponses
Bonjour,
Sur le papier OK
Maintenant, il faudrait voir le code Python pour contrôler la façon dont c'est implémenté ...
L'indentation étant importante en Python, merci de copier/coller ici ton code complet avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :
Sur le papier OK
Maintenant, il faudrait voir le code Python pour contrôler la façon dont c'est implémenté ...
L'indentation étant importante en Python, merci de copier/coller ici ton code complet avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :
def test(): print('test') test()
Merci d'avoir répondu aussi vite !
Je suis vraiment désolé... En retravaillant mon code pour le rendre plus lisible, j'ai remarqué que j'avais interverti 2 variables... J'ai réessayé et ça marche à merveille. Ça fait 2 mois que je bloquais dessus. Excuse-moi pour t'avoir fait perdre ton temps.
Voici le code pour ceux qui veulent aussi représenter un cube.
x et y sont les coordonnés du point du quel vous voulez faire partir votre vecteur.
La liste fuite contient les coordonnés du point de fuite.
Je suis vraiment désolé... En retravaillant mon code pour le rendre plus lisible, j'ai remarqué que j'avais interverti 2 variables... J'ai réessayé et ça marche à merveille. Ça fait 2 mois que je bloquais dessus. Excuse-moi pour t'avoir fait perdre ton temps.
Voici le code pour ceux qui veulent aussi représenter un cube.
x et y sont les coordonnés du point du quel vous voulez faire partir votre vecteur.
La liste fuite contient les coordonnés du point de fuite.
def carre() : x=random.randint(0,1280) y=random.randint(0,657) point=[] point.append(x+(cos(atan((fuite[1]-y)/(fuite[0]-x))))*30) # le "*30" c'est la longueur de mon vecteur point.append(y+(sin(atan((fuite[1]-y)/(fuite[0]-x))))*30) canv.create_line(x,y,point[0],point[1]) from tkinter import * from math import* import random fen=Tk() fen.geometry("1280x657") canv=Canvas(fen) canv.place(x=0,y=0,height=657,width=1280) fuite=[300,100] canv.create_rectangle(295,95,305,105) carre() fen.mainloop()
Bonjour,
Bizarre ton truc : ca affiche juste un petit rectangle et une petite ligne un peu plus loin ...

En plus pour ne pas répéter 1280 et 857 partout, je ferais ça:
Bizarre ton truc : ca affiche juste un petit rectangle et une petite ligne un peu plus loin ...
En plus pour ne pas répéter 1280 et 857 partout, je ferais ça:
from tkinter import * from math import* import random def carre() : x1,y1=random.randint(0,WIDTH), random.randint(0,HEIGHT) x2 = (x1+(cos(atan((fuite[1]-y1)/(fuite[0]-x1))))*lvec) y2 = (y1+(sin(atan((fuite[1]-y1)/(fuite[0]-x1))))*lvec) canv.create_line(x1,y1,x2,y2) fuite=[300,100] WIDTH, HEIGHT = 1280, 657 lvec = 30 fen=Tk() fen.geometry(str(WIDTH)+"x"+str(HEIGHT)) canv=Canvas(fen) canv.place(x=0,y=0,height=HEIGHT,width=WIDTH) canv.create_rectangle(295,95,305,105) carre() fen.mainloop()
Bonjour, oui Le programme c'était pour vérifier mes calculs donc le carré c'est juste un moyen de situer le point de fuite et la ligne part d'un coin de la face de mon cube que je n'ai pas affiché. Ces jours-ci j'ai peu avancé mais voila mon programme. j'ai juste des réglages à faire afin qu'en reliant les vecteurs on obtienne un carré et que la longueur de mon vecteur diminue si la distance entre le point de fuite et le coin du carré est inférieur à 30. Pour le programme il suffit de cliquer où on veut pour faire apparaitre un cube avec encore quelques soucis.
def souris(aaa) : carre(aaa.x,aaa.y) def carre(x,y) : canv.create_rectangle(x-20,y-20,x+20,y+20,fill="blue", outline="white") point=[] for a in (20,-20) : for z in (20,-20) : if fuite[0]<x+a : e=-1 else: e=1 point.append(x+a+(cos(atan((fuite[1]-y-z)/(fuite[0]-x-a)))*e)*30) point.append(y+z+(sin(atan((fuite[1]-y-z)/(fuite[0]-x-a)))*e)*30) if fuite[1]<y-20 : canv.create_polygon(x-20,y-20,x+20,y-20,point[2],point[3],point[6],point[7],outline="white") if fuite[1]>y+20 : canv.create_polygon(x-20,y+20,x+20,y+20,point[0],point[1],point[4],point[5],outline="white") if fuite[0]<x-20 : canv.create_polygon(x-20,y-20,x-20,y+20,point[4],point[5],point[6],point[7],outline="white") if fuite[0]>x+20 : canv.create_polygon(x+20,y-20,x+20,y+20,point[0],point[1],point[2],point[3],outline="white") from tkinter import * from math import* import random fen=Tk() fen.geometry("1280x657") canv=Canvas(fen) canv.place(x=0,y=0,height=657,width=1280) fuite=[600,250] canv.create_rectangle(fuite[0]-5,fuite[1]-5,fuite[0]+5,fuite[1]+5) fen.bind("<ButtonPress-1>",souris) fen.mainloop()
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ok, mais en principe, on met les imports, puis les fonctions, puis le programme principal,
et on aère un peu :
et on aère un peu :
from tkinter import * from math import* import random def souris(aaa) : carre(aaa.x,aaa.y) def carre(x,y) : canv.create_rectangle(x-20,y-20,x+20,y+20,fill="blue", outline="white") point=[] for a in (20,-20) : for z in (20,-20) : if fuite[0]<x+a : e=-1 else: e=1 point.append(x+a+(cos(atan((fuite[1]-y-z)/(fuite[0]-x-a)))*e)*30) point.append(y+z+(sin(atan((fuite[1]-y-z)/(fuite[0]-x-a)))*e)*30) if fuite[1]<y-20 : canv.create_polygon(x-20,y-20,x+20,y-20,point[2],point[3],point[6],point[7],outline="white") if fuite[1]>y+20 : canv.create_polygon(x-20,y+20,x+20,y+20,point[0],point[1],point[4],point[5],outline="white") if fuite[0]<x-20 : canv.create_polygon(x-20,y-20,x-20,y+20,point[4],point[5],point[6],point[7],outline="white") if fuite[0]>x+20 : canv.create_polygon(x+20,y-20,x+20,y+20,point[0],point[1],point[2],point[3],outline="white") WIDTH, HEIGHT = 1280, 657 fuite=[600,250] fen=Tk() fen.geometry(str(WIDTH)+"x"+str(HEIGHT)) fen.bind("<ButtonPress-1>",souris) canv=Canvas(fen) canv.place(x=0,y=0,height=HEIGHT,width=WIDTH) canv.create_rectangle(fuite[0]-5,fuite[1]-5,fuite[0]+5,fuite[1]+5) fen.mainloop()
Merci ! C'est vrai que je ne présente jamais mes programme à d'autres personnes donc je ne savais pas comment faire la présentation. Pour l'instant, j'arrive à afficher correctement un cube seulement en bas à droite du point de fuite. J'essaye donc d'adapter mon programme pour le faire dans toute les configurations.
Merci encore pour ton aide.
Merci encore pour ton aide.