您的位置:首页 > 移动开发 > IOS开发

iOS 求三点夹角

2015-12-03 00:00 489 查看
下边这个是原公式, 已知ABC三点,求 B 作为中间点时,也就是 ABC的夹角,注意和 BAC夹角的区别

// x1 = A.x-B.x ; y1 = A.y-B.y
// x2 = C.x-B.x ; y2 = C.y-B.y
// x = x1*x2+y1*y2
// y = x1*y2-x2*y1
// if(x > 0 )
//角度<90
// else
//角度>=90
// angle = acos(x/sqrt(x*x+y*y));

代码中需要求 AB两点组成的线和水平线的夹角,于是代码改成了这样

-(CGFloat)getAngleOfThreePointA:(CGPoint)A :(CGPoint)B :(CGPoint)C
{
CGFloat x1 = A.x - B.x;
CGFloat y1 = A.y - B.y;
CGFloat x2 = C.x - B.x;
CGFloat y2 = C.y - B.y;

CGFloat x = x1 * x2 + y1 * y2;
CGFloat y = x1 * y2 - x2 * y1;

CGFloat angle;
if(x > 0)
{
angle = acos(x / sqrt(x * x + y * y));
}
else
{
angle = acos(x / sqrt(x * x + y * y));
}
//NSLog(@"%.2f", angle);
return angle;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息