Учитывая векторы p, q и количество точек n, я хочу максимально приблизить форму эллипса с этими n точками. Для этого я использую параметрическое уравнение эллипса и меняю радиус и угол в двойном цикле for:
n = 10000
points = []
p = [300, 0]
q = [0, 200]
root = int(math.sqrt(n))
for a in range(root):
for b in range(root):
x = 400 + (a/root)*(p[0] - q[0])*math.cos(2*math.pi*b/root)
y = 300 - (a/root)*(p[1] - q[1])*math.sin(2*math.pi*b/root)
points.append([x, y])
for w in points:
pygame.draw.circle(screen, (200, 50, 75), (int(w[0]), int(w[1])), 1)
Здесь я использую Pygame для рисования, но это не имеет значения. С учетом этих параметров мой эллипс выглядит так:
с n = 100000. Он выглядит так:
Учитывая природу эллипса тамбольше точек в середине, используя базовую параметризацию радиуса и угла. Из-за этого мне нужно очень большое n, чтобы получить хорошую картинку. Как я могу изменить параметризацию, чтобы точки лучше распределялись по всей области?