2013-03-28 6 views
0

У меня есть широта и долгота двух позиций.Найти угол между двумя позициями

Я уже узнал расстояние между этими двумя положениями.

CLLocation *locA = [[CLLocation alloc] initWithLatitude:[player.strLatitude floatValue] longitude:[player.strLongitude floatValue]]; 
CLLocation *locB = [[CLLocation alloc] initWithLatitude:app.lat longitude:app.lag]; 
CLLocationDistance distance = [locB distanceFromLocation:locA]; 
NSLog(@"Distance%f",distance); 
[locA release]; [locB release]; 

Теперь я хочу найти угол между этими двумя положениями.

В центре есть одно пользовательское положение, и я хочу отобразить другое местоположение пользователя в этом Cicle на углу apporipate.

Спасибо за помощь.

enter image description here

+0

Вы просто ищете функции atan2f? –

+0

Извините, я не знаю о функции atan2f. Можете ли вы предоставить ссылку? – Impossible

+0

вы пропустили элементарные классы математики ...? – holex

ответ

1

может быть, это поможет вам

- (CGFloat)angleBetweenLinesInRadians:(CGPoint)line1Start 
         line1End:(CGPoint)line1End 
         line2Start:(CGPoint)line2Start 
         line2End:(CGPoint)line2End 
{ 
CGFloat a = line1End.x - line1Start.x; 
CGFloat b = line1End.y - line1Start.y; 
CGFloat c = line2End.x - line2Start.x; 
CGFloat d = line2End.y - line2Start.y; 

CGFloat line1Slope = (line1End.y - line1Start.y)/(line1End.x - line1Start.x); 
CGFloat line2Slope = (line2End.y - line2Start.y)/(line2End.x - line2Start.x); 

CGFloat degs = acosf(((a*c) + (b*d))/((sqrt(a*a + b*b)) * (sqrt(c*c + d*d)))); 


return (line2Slope > line1Slope) ? degs : -degs;  

}

+0

У меня нет 4 точек, как предлагает ваша функция. У меня две позиции (долгота и широта) – Impossible

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