Как рассчитать угол между местом на Земле и Солнцем? - PullRequest
7 голосов
/ 17 марта 2011

Для моего приложения мне нужно рассчитать угол между двумя разными линиями:

1) Первая линия находится между точкой на земле, которая определяется долготой и широтой, и центром солнца.

2) Вторая линия находится между точкой на земле, которая определяется долготой и широтой, и поверхностью на Луне с наименьшим расстоянием от Земли.

Понятия не имею, с чего мне начать. Есть намеки?

Ответы [ 5 ]

5 голосов
/ 17 марта 2011

Предполагая, что вы фактически рассчитали все три точки интереса, рассчитанные уже [*], где O - это положение наблюдателя (на Земле), S - это положение Солнца, а M - это точка на Луне, тогда:

OM . OS = |OM| * |OS| * cos(theta)

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

[*] ваш вопрос требует только угла между двумя линиями - если вместо этого вы хотите узнать, как рассчитать фактические линии для любого момента времени, вам следует переписать свой вопрос.

1 голос
/ 17 марта 2011

Как связанный ответ на эту проблему. Знаете ли вы, Wolframalpha.com может решить эту проблему?

Например, если вы ищете:

Вы можете сделать то же самое с ядром Mathematica и вызывать на Java.

1 голос
/ 17 марта 2011

Возможно, вы захотите покопаться в источниках Селестии , чтобы найти уравнения, которые позволили бы вам определить положение точки на земле относительно центра Луны и Солнца.

Если у вас есть эти координаты, примените предложение Альнитака к вектору dot product s

1 голос
/ 17 марта 2011

Ну, во-первых, вопросы в какой момент времени. Луна вращается вокруг Земли, которая, в свою очередь, вращается вокруг Солнца, поэтому упомянутые вами расстояния и углы в разные моменты времени различны.

Например, когда у вас есть затмение, угол близок к нулю.

Таким образом, без информации о времени и точных данных о положении Земли, Луны и Солнца в данный момент вычисление невозможно.

0 голосов
/ 17 марта 2011

Я бы предложил следующее: преобразовать все координаты в одну уникальную систему координат (например, положение солнца и луны в долготе / широте точек, привязанных к земле). Тогда вы можете легко вычислить угол в этой системе координат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...