判定一个点是否在三角形内
来源:互联网 发布:iphone6手机壳淘宝 编辑:程序博客网 时间:2024/06/05 14:40
三角形的面积公式如下:
在此处使用一种常见且简便的方法:如果三角形PAB,PAC和PBC的面积之和与三角形ABC的面积相等,即可判定点P在三角形ABC内(包括在三条边上)。
可知,该方法的关键在于如何计算三角形的面积。幸运地是,当知道三角形顶点(A,B和C)的坐标((Ax, Ay),(Bx, By)和(Cx, Cy))之后,即可计算出其面积:
S = |(Ax * By + Bx * Cy + Cx * Ay - Ay * Bx - By * Cx - Cy * Ax) / 2|
代码如下:
public final class Demo {public static boolean isInTriangle(POINT A, POINT B, POINT C, POINT P){if(A.x<0||A.x>99||B.x<0||B.x>99||C.x<0||C.x>99||A.y<0||A.y>99||B.y<0||B.y>99||C.y<0||C.y>99)return false;/*在这里完成代码*/double d1=area(A,B,C);double d2=area(A,B,P)+area(A,C,P)+area(B,C,P);if(Math.abs(d1-d2)<0.0001) //一定要记得加绝对值,否则不对,由于浮点数的计算存在着误差, //故指定一个足够小的数,用于判定两个面积是否(近似)相等。return true;return false;}private static double area(POINT a, POINT b, POINT c) {return Math.abs(0.5*(a.x*b.y+b.x*c.y+c.x*a.y-a.y*b.x-b.y*c.x-c.y*a.x));}}
0 0
- 判定一个点是否在三角形内
- 判定一个点是否在三角形内
- 判定一个点是否在三角形内
- 判定一个点是否在三角形内部
- 判断一个点是否在三角形内
- 一个点是否在三角形内
- 判断一个点是否在三角形内
- 判断一个点是否在三角形内
- 判断一个点是否在三角形内
- 判断一个点是否在三角形内
- 判断一个点是否在三角形内
- 一个点是否在不规则图形内的判定
- 点是否在三角形内
- 点是否在三角形内
- 判断一个点是否在一个三角形内(二维)
- 转载:判断一个点是否在一个三角形面内
- Algorithm: 如何判断一个点是否在一个三角形内
- Java 判断一个点是否在一个三角形内
- leetCode 8. String to Integer (atoi) (字符串转整形) 解题思路和方法
- 键盘事件的调用顺序及获取键盘大小
- Linux内核很吊之 module_init解析 (下)
- 关于分支管理的问题
- 马斯克超等高铁或起首在亚洲建成
- 判定一个点是否在三角形内
- hdu 5276 YJCtricks time
- ecshop 调试分类页面技巧 debug_print_backtrace
- java 反射详解
- A. Case of the Zeros and Ones
- Android的帧动画补间动画,新手复习
- 回头一望,继续向前
- request exceeds 8192 bytes
- 2015年7月4日解决问题:eclipse连接access数据库问题//java五中布局及其应用方法//equals()与==的区别等