iOS开发中,根据三个点获得之间的夹角
2016-04-28 19:16
369 查看
以三个点A、B、C,计算ㄥABC为例,贴代码:
以所得角度最大为π,因工程中AB为竖直方向固定,需要得到顺时针角度,最大2π,故添加如下:
+ (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; }
相关文章推荐
- iOS 加载HTML的相关问题(与JS的互相调用和WKWebView加载本地网页)
- iOS 通知与消息机制
- iOS8之后,新的注册通知方式,解决注册通知失败问题
- IOS-TextField控件详解
- iOS社会化分享(干货)
- iOS字典创建后,没有key。。。
- iOS——数据安全性问题小结
- Windows下搭建IOS开发环境(二)
- 进程间通信 (OSX/iOS)
- Windows下搭建IOS开发环境(一)
- iOS 开发 Pch 文件的正确使用
- iOS开发多线程篇—创建线程
- 仿IOS通讯录效果,实现获取手机通讯录、字母排序显示、搜索联系人、拨打电话
- 《招聘一个靠谱的 iOS》—参考答案(下)
- IOS上路_01-Win7+VMWare9+MacOSX10.8+XCode4.6.3
- iOS语音书写功能(语音转文本)
- iOS开发多线程篇—多线程简单介绍
- iOS之常用第三方库的介绍
- 简单讲解iOS应用开发中的MD5加密的相关使用
- github优秀开源项目大全-iOS