2013-08-20 5 views
0

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

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

ответ

0

Dot продукта:

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)

Или:

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

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

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) - нет.

+0

Здравствуйте, спасибо за ваш ответ. Я думал об этом сам, но могу ли я просто предположить, что широта = х и долгота = у? Или я понимаю это неправильно? И куда входит заголовок компаса? Или мне нужно просто создать новую точку lat/long из моего пункта назначения с помощью заголовка компаса? Могу ли я в этом случае предположить, что подшипник = заголовок компаса? Sry, если я не понял вас, но я действительно новичок в AR, компасе, lat/long и таких вещах;) – user1990524

+0

@ user1990524 Система координат lat/long не совсем прямоугольная, но если вы предполагаете ее прямоугольной, так как это ответ подсказывает, что разница будет намного меньше, чем вы можете измерить с помощью карманного компаса. Тем не менее, заголовок, который вы вычисляете, будет относиться к истинному северу, а не к магнитному северу, как ваш компас. Чтобы получить правильный заголовок компаса, вам нужно будет скрытно использовать [магнитное склонение] (http://en.wikipedia.org/wiki/Magnetic_declination) для области, в которой вы находитесь. [Калькулятор склонения] (http: // www.ngdc.noaa.gov/geomag-web/#declination) может помочь. – Joe

+0

Я использую компас в iphone. И вы можете получить истинный заголовок (я предполагаю, что это означает географический север). Поэтому нет необходимости использовать магнитное склонение – user1990524

Смежные вопросы