Cercle

Fermé
loupiote03 Messages postés 3 Date d'inscription vendredi 10 juillet 2015 Statut Membre Dernière intervention 28 avril 2017 - 10 juil. 2015 à 22:55
 loupiote03 - 16 juil. 2015 à 22:07
yo tout le monde!

Je cherche à tracer un cercle sous python et à y ajouter un nombre variable de points, qui seraient à distance égales les uns des autres.

mais je n'arrive pas à les faire équidistant, quelqu'un saurait-il m'aider svp? merci!

2 réponses

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
11 juil. 2015 à 16:02
'lut, ce serait déjà bien de préciser ce que tu utilises pour faire l'affichage...
Ceci dit mathématiquement, chaque point ce trouve a une coodonnée
(cos(x)*r+Ox, sin(x)*r+Oy)

-
r
le rayon du cercle
-
Ox
et
Oy
coordonnées de l'origine du cercle
-
x
est l'angle du point, en radian équivalent à
k*(2π/n)
,
n
étant le nombre total de points et
k
le numéro du point
0
loupiote03 Messages postés 3 Date d'inscription vendredi 10 juillet 2015 Statut Membre Dernière intervention 28 avril 2017
Modifié par loupiote03 le 12/07/2015 à 14:19
exact, j'utilise tkinter, c'est pas super efficace mais je sais pas utiliser autre chose pour l'instant.
Merci pour ta réponse je vais essayer d'avancer :D
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 14/07/2015 à 09:54
Inspire-toi de ceci:
#! /usr/bin/python3
from tkinter import *
from math import pi, cos, sin
master = Tk()

canvas_width = 320
canvas_height = 320
w = Canvas(master, 
           width=canvas_width,
           height=canvas_height)
#st = master.Label(text="Message")

message = Label( master, text = "Message:" )
message.pack( side = LEFT )
entrymessage=Entry(master)
w.pack()
w.create_oval( 10 , 10, 310, 310, fill="#3377FF")

n=10
delta = 2 * pi /n
theta=0

for dummy  in range(0, n):
    x = 160 + 150 * cos(theta)
    y = 160 + 150 * sin(theta)
    theta += delta
    w.create_oval(x - 2, y - 2, x + 2, y + 2, fill="#FF0000")
 
mainloop()

 


Voir par exemple Canvas Widgets
Gates gave ^W sold you the windows.
GNU gave us the whole house.(Alexandrin)
0
c'est gentil mais en fait j'ai fini mon programme ^_^ Merci quand même :D
0