如何在椭圆路径上放置均匀间隔的圆圈?

How to place evenly spaced circles on an elliptical path?

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

(http://s24.postimg.org/89r1zmgl1/Untitled.png)<--- 椭圆

我想在上面 link 中看到的椭圆上出现任意数量的圆圈。椭圆和圆都是用Tkinter定义的。

class NetworkFrame:
    def __init__(self, master, number_of_people):

       DisplayFrame = Canvas(master, bg="white", width=720, height=300)
       DisplayFrame.grid(row=0, columnspan=7, column=0, sticky='W', padx=5, pady=5)
       DisplayFrame.create_oval(20, 20, 700, 280, width=1)

所以我的想法是——用户输入一定的数字(number_of_people),就会在椭圆定义的路径上出现一定数量的圆,间隔均匀,对称放置。

理想情况下,这就是我想要发生的事情,因此我可以将其调整为我之前定义的任何形状,但如果有另一种方法可以使它们看起来遵循椭圆路径,那也是可以接受的。

感谢您的宝贵时间!

万一有人需要这个,多亏了 link 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")