0

私は2つの位置の緯度と経度を持っています。

この2つの位置の間の距離はすでにわかっています。

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];

今、私はこの2つの位置の間の角度を見つけたい.

中央には 1 つのユーザーの位置があり、その Cicle 内の他のユーザーの位置を適切な角度で表示したいと考えています。

手伝ってくれてありがとう。

ここに画像の説明を入力

4

1 に答える 1

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;    

}

于 2013-03-28T12:24:14.203 に答える