Вычисление эллиптической орбиты планеты вокруг Солнца включает формулу:
е = с / а
где:
c
это расстояние от центра до фокуса и
a
это расстояние от этого фокуса до вершины
Как создать программу для расчета проблемы такого типа, когда эллиптические фигуры (а именно в C ++) используют не фокусы, а максимальные расстояния x и y?
В настоящее время у меня есть функция, которая создает эллипс с заданной (x, y) центральной точкой и длиной x и y.
У меня проблемы с преобразованием реальной функции эллиптической орбиты e= c/a
в функцию эллипса программ ellipse(x, y, xDistance, yDistance)
,
Есть ли какая-то система для этого или как мне это сделать? Намерение состоит в том, чтобы нарисовать масштабную модель орбиты планет вокруг Солнца, используя фактические данные для каждой планеты.
IE:
Меркурий:
Чтобы быть более точным:
Учитывая строку L
называется директриса, точка F
не на L
называется фокус, и положительное число e
, Позволять d(X,L)
обозначить расстояние от точки X
в L
, и разреши |X|
обозначить норму X
, Набор C
из точек X
сытный
|X - F| = e d(X,L)
называется коническое сечение с эксцентричность e
, Это называется эллипс если e < 1
, парабола если e = 1
и гипербола если e > 1
,
Теперь то, что вы хотите, это Декартово уравнение конического в стандартная форма. Если e < 1
или же e > 1
и директриса параллельна y
ось коническая C
это набор точек X = (x,y)
сытный
x^2 / a^2 + y^2 / [a^2 (1 - e^2)] = 1
где a = e d / (1 - e^2)
а также d = d(F,L)
это расстояние от фокуса до директрисы.
Если e < 1
(чтобы a > 0
), позволять b = a sqrt(1 - e^2)
, Затем получим уравнение эллипса в стандартная форма
x^2 / a^2 + y^2 / b^2 = 1
где a,b
называются полуглавная а также полуосновная ось соответственно. В этой форме
(0,0)
,x
ось в точке (d,0)
,(-c,0)
, (c,0)
где c = a e
а также c^2 = a^2 - b^2
,x
ось в точках (-a,0)
, (a,0)
, а такжеy
ось в точках (0,-b)
, (0,b)
,Так что ваши a
это расстояние от x
вершина к центру и не сосредоточиться. Тем не менее, обратите внимание, что c
это расстояние от y
вершина фокуса. Это может быть источником путаницы.
Ты это видишь a
, b
ты пропал xDistance
, yDistance
, Похоже, вы получили a
а также e
так что вам нужно только вычислить b
как указано выше.
Конечно, вы всегда можете проверить эллипс @wikipedia. Эта фигура поможет визуализировать мои предыдущие описания, но обратите внимание, что мой c
обозначается как f
там.
Других решений пока нет …