Python 如何在椭圆路径上放置等间距的圆?

Python 如何在椭圆路径上放置等间距的圆?,python,canvas,tkinter,geometry,Python,Canvas,Tkinter,Geometry,我有一个小的(实际上是大的)任务要处理,我想知道是否有人能帮我解决这个问题。我已经寻找了好几次答案,但都没有成功 ()如果有人需要,多亏了Kevin发布的链接,我才能够做到这一点 下面是它的工作原理 def __init__(self, master, number_of_people, node_size): a = 350 b = 140 ellipsePoints = [(a * cos(theta), b * sin(theta))

我有一个小的(实际上是大的)任务要处理,我想知道是否有人能帮我解决这个问题。我已经寻找了好几次答案,但都没有成功


()如果有人需要,多亏了Kevin发布的链接,我才能够做到这一点

下面是它的工作原理

def __init__(self, master, number_of_people, node_size):
    a = 350
    b = 140
    ellipsePoints = [(a * cos(theta), b * sin(theta))
                     for theta in (pi*2 * i/number_of_people for i in range(number_of_people))]
    DisplayFrame = Canvas(root, bg="white", width=725, height=320)
    DisplayFrame.grid(row=0, columnspan=7, column=0, sticky='W', padx=5, pady=5)
    for i in range(number_of_people):
            DisplayFrame.create_oval(ellipsePoints[i][0]+355, ellipsePoints[i][1]+155,
                                     ellipsePoints[i][0]+355+node_size, ellipsePoints[i][1]+155+node_size, fill="red")

这可能对您有所帮助:。生成点,然后将每个点用作圆心。每个圆的直径是任意两个相邻点之间的最小直线距离。谢谢您的回答!我有点困惑,因为Tkinter要求将圆定义为“封闭在矩形中”,所以我必须在每个点周围定义一个矩形。无论如何,谢谢。
def __init__(self, master, number_of_people, node_size):
    a = 350
    b = 140
    ellipsePoints = [(a * cos(theta), b * sin(theta))
                     for theta in (pi*2 * i/number_of_people for i in range(number_of_people))]
    DisplayFrame = Canvas(root, bg="white", width=725, height=320)
    DisplayFrame.grid(row=0, columnspan=7, column=0, sticky='W', padx=5, pady=5)
    for i in range(number_of_people):
            DisplayFrame.create_oval(ellipsePoints[i][0]+355, ellipsePoints[i][1]+155,
                                     ellipsePoints[i][0]+355+node_size, ellipsePoints[i][1]+155+node_size, fill="red")