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

iOS开发中,根据三个点获得之间的夹角

2016-04-28 19:16 369 查看
以三个点A、B、C,计算ㄥABC为例,贴代码:

+ (CGFloat)getAnglesWithThreePoint:(CGPoint)pointA pointB:(CGPoint)pointB pointC:(CGPoint)pointC {

CGFloat x1 = pointA.x - pointB.x;
CGFloat y1 = pointA.y - pointB.y;
CGFloat x2 = pointC.x - pointB.x;
CGFloat y2 = pointC.y - pointB.y;

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

CGFloat angle = acos(x/sqrt(x*x+y*y));

return angle;
}


以所得角度最大为π,因工程中AB为竖直方向固定,需要得到顺时针角度,最大2π,故添加如下:

if (pointC.x < pointB.x) {
angle = M_PI*2 - angle;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: