2013-03-28 2 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

관련 문제