通过两点坐标计算角度
2015-09-24 10:07
369 查看
/**获取角度*/ // 求3点形成的夹角 public float getAngle(Point pt1, Point pt2, Point pt0) { double ma_x = pt1.getX() - pt0.getX(); double ma_y = pt1.getY() - pt0.getY(); double mb_x = pt2.getX() - pt0.getX(); double mb_y = pt2.getY() - pt0.getY(); double k = (ma_x * mb_y - mb_x * ma_y); if (k != 0) { k = (k / Math.sqrt(k * k)); } else { k = 1; } double v1 = (ma_x * mb_x) + (ma_y * mb_y); double ma_val = Math.sqrt(ma_x * ma_x + ma_y * ma_y); double mb_val = Math.sqrt(mb_x * mb_x + mb_y * mb_y); double cosM = v1 / (ma_val * mb_val); return (float) (Math.acos(cosM) * 180 / Math.PI * k); }
p1:起始坐标
p2:最后坐标
p0:原点,可以和起始坐标一致,更加功能自由选择
相关文章推荐
- mac下设置命令别名
- Clone Graph 解答
- Cocos2d-js创建构造注册事件监听回调函数
- 安装配置Kafka
- NSMutableAttributedString与NSString相互转换
- 安装配置Kafka
- Codeforces Round #321 (Div. 2) ABC
- Difference Between ZIP and GZIP
- <%的几种不同
- 在写一篇关于elance odesk的
- App分享到QQ空间、微信等功能,而被拒
- Menu控件+SQLServer实现动态多级菜单
- Simplify Path
- J2SE基础
- c语言学习笔记(6)注释符号,接续符号和转义符号的用法
- Unity3D之Mecanim动画系统学习笔记(八):Animator Layers(动画分层)
- Map接口之HashSet、Hashtable、LinkedHashMap、TreeMap、WeakHashMap、IdentityHashMap、EnumMap
- 为提高系统Nucleus OS 模块间的独立性,对Nucleus Plus内核模块分析和优化的归纳
- 苹果预售提前结束,销量超以往
- Hive drop table卡住的问题