Угол между направлением взгляда и широтой/долготой

Я немного экспериментирую с AR. У меня есть угол направления, на которое я смотрю по компасу в градусах. Я знаю свое собственное положение и положение другого объекта (POI), положение задается в виде широты и долготы.

Теперь я хотел бы знать, как я могу рассчитать угол между направлением, в котором я смотрю, и POI.


person jjuser19jj    schedule 20.08.2013    source источник


Ответы (1)


Скалярное произведение:

a . b = ||a|| ||b|| cos(t)
t = acos( (a.b)/(||a|| ||b||) )


||vector|| = length of vector (magnitude)
t          = angle between the two vectors

Вероятно, вам придется сделать это пару раз для каждого самолета, который у вас есть. (1x для 2D, 2x для 3D)

Or:

    /|
   / |
h /  | y
 /   |
/____|
  x

t — нижний левый угол, который, как мы предполагаем, является вашим объектом, верхний правый угол будет другим вашим объектом.

x = obj2.x - obj1.x
y = obj2.y - obj1.y
h = sqrt( (x*x) + (y*y) )

sin(t) = y/h
cos(t) = x/h
tan(t) = y/x

t = asin(y/h)
t = acos(x/h)
t = atan(y/x)

Что делает первый метод лучше, так это то, что он учитывает вашу текущую ротацию. Второй метод (с использованием atan, asin и acos) не работает.

person Wolfgang Skyler    schedule 20.08.2013
comment
Здравствуйте, спасибо за ваш ответ. Я сам думал об этом, но могу ли я просто предположить, что широта = x и долгота = y? Или я неправильно это понимаю? И при чем здесь направление компаса? Или я должен просто создать новую точку широты/долготы от пункта назначения с помощью направления компаса? Могу ли я в этом случае предположить, что пеленг = курс по компасу? Извините, если я вас не понял, но я действительно новичок в AR, компасе, широте/долготе и подобных вещах;) - person jjuser19jj; 20.08.2013
comment
@ user1990524 Система координат широта / долгота не совсем прямоугольная, но если вы предполагаете, что она прямоугольная, как предполагает этот ответ, разница будет намного меньше, чем вы можете измерить с помощью портативного компаса. Однако курс, который вы рассчитываете, будет относиться к истинному северу, а не к магнитному северу, как ваш компас. Чтобы получить правильное направление по компасу, вам нужно будет использовать магнитное склонение для области, в которой вы находитесь. калькулятор склонения может помочь. - person Joe; 20.08.2013
comment
Я пользуюсь компасом в айфоне. И вы можете получить истинный курс (я думаю, это означает географический север), поэтому нет необходимости использовать магнитное склонение. - person jjuser19jj; 20.08.2013