Как я могу создать набор точек, равномерно распределенных по периметру эллипса?

Если я хочу сгенерировать группу точек, равномерно распределенных по кругу, я могу сделать это (python):

r = 5  #radius
n = 20 #points to generate
circlePoints = [
    (r * math.cos(theta), r * math.sin(theta))
    for theta in (math.pi*2 * i/n for i in range(n))
]

Однако , та же самая логика не генерирует однородные точки на эллипсе: точки на «концах» расположены ближе друг к другу, чем точки на «сторонах».

r1 = 5
r2 = 10
n = 20 #points to generate
ellipsePoints = [
    (r1 * math.cos(theta), r2 * math.sin(theta))
    for theta in (math.pi*2 * i/n for i in range(n))
]

Есть ли простой способ генерировать точки на равных расстояниях вокруг эллипса?

13
задан Eric 3 November 2016 в 12:58
поделиться