Рассчитать эллипс с учетом орбитального эксцентриситета и вершины из центральной точки

Вычисление эллиптической орбиты планеты вокруг Солнца включает формулу:

е = с / а

где:

c это расстояние от центра до фокуса и

a это расстояние от этого фокуса до вершины

Как создать программу для расчета проблемы такого типа, когда эллиптические фигуры (а именно в C ++) используют не фокусы, а максимальные расстояния x и y?

В настоящее время у меня есть функция, которая создает эллипс с заданной (x, y) центральной точкой и длиной x и y.

У меня проблемы с преобразованием реальной функции эллиптической орбиты e= c/a в функцию эллипса программ ellipse(x, y, xDistance, yDistance),

Есть ли какая-то система для этого или как мне это сделать? Намерение состоит в том, чтобы нарисовать масштабную модель орбиты планет вокруг Солнца, используя фактические данные для каждой планеты.

IE:
Меркурий:

  • 0.39 а.е. от солнца (расстояние)
  • Эксцентриситет орбиты: 0,2056

1

Решение

Чтобы быть более точным:

Учитывая строку 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 там.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]