如何判断一个点在任意四边形内
通过面积法,判断点P是否在四边形(A,B,C,D)内。如果在四边形内,则四边形的面积=面积(P,A,B)+面积(P,B,C)+面积(P,C,D)+面积(P,D,A),反之不在四边形内。
此处我将判断方法定义成了静态方法,方便其他类访问,代码如下:
public class IsInQuadrangle {public IsInQuadrangle() {super();}/*** 判断p是否在abcd组成的四边形内* @param a* @param b* @param c* @param d* @param p* @return 如果p在四边形内返回true,否则返回false.*/public static boolean pInQuadrangle(Point a, Point b, Point c, Point d,Point p) {double dTriangle = triangleArea(a, b, p) + triangleArea(b, c, p)+ triangleArea(c, d, p) + triangleArea(d, a, p);double dQuadrangle = triangleArea(a, b, c) + triangleArea(c, d, a);return dTriangle == dQuadrangle;}// 返回三个点组成三角形的面积private static double triangleArea(Point a, Point b, Point c) {double result = Math.abs((a.x * b.y + b.x * c.y + c.x * a.y - b.x * a.y- c.x * b.y - a.x * c.y) / 2.0D);return result;}
}
技术交流、商务合作请直接联系博主
扫码或搜索:猿说python
猿说python
微信公众号 扫一扫关注
如何判断一个点在任意四边形内相关推荐
- 判断一个点在任意四边形内
通过面积法,判断点P是否在四边形(A,B,C,D)内. 如果在四边形内,则四边形的面积=面积(P,A,B)+面积(P,B,C)+面积(P,C,D)+面积(P,D,A); 反之不在四边形内. Java代 ...
- Java 判断一个点是否在一个三角形内
题目描述: 如何判断一个点是否在一个三角形内. 测试样例: 自定义的POINT类: class POINT{int x;int y;public POINT(int x,int y){this.x ...
- 能否构成三角形的条件代码_Java 如何判断一个点是否在一个三角形内
题目描述: 如何判断一个点是否在一个三角形内. 测试样例: 自定义的POINT类: class POINT{ int x; int y; public POINT(int x,int y){ this ...
- HDU1756(判断一个点是否在多边形内)
以下内容是在自己学习中总结出来了的,如果有什么错误,请指出,谢谢! 判断一个点是否在多边形内: (1)判断方法一(具有一定的局限性):将测试点的Y坐标与多边形的每一个点进行比较,将得到一 个与多边形的 ...
- 【寒江雪】判断一个点是否在网格内
判断一个点是否在多边形网格内 根据前几天看到的博客--<判断一个点是否在多边形内>--突发奇想,设计一个算法判断一个点是否在多面体网格内. 这里假设该网格物体都是由许多个三角面构成 ...
- Algorithm: 如何判断一个点是否在一个三角形内
昨日因为机缘巧合,做了一道阿里的实习生编程题.题目很有趣,其中涉及到了如何判断一个点是否在一个三角形内. 其中,判断这个问题最简单的方法是面积法.(图片来源:http://www.cnblogs.co ...
- 判断点是否在给定四边形内的算法
注意:凹凸多边形的定义 凸多边形:每个内角都是锐角或钝角,也就是没有大于180°的优角的多边形. 凹多边形:至少有一个优角的多边形.凸多边形就是把一个多边形任意一边向两方无限延长成为一条直线,如果多边 ...
- 面试高频算法题补充系列:如何判断一个点是否在三角形内?
前言 了解更多常考高频算法题可以关注 公众号:一个搬砖的胖子 企业面试题库:https://codetop.cc/ 小程序:CodeTop 该题曾出现在字节跳动.腾讯.网易.美团.小马智行等公司的面试 ...
- MFC判断一个点是否在一个区域内
1.判断一点是否在矩形区域内的方法: CRect rc (point_1,point_2);//构造矩形区域 调用CRect::PtInRect BOOL flag = rc.PtInRect ...
最新文章
- javascript 代码_如何使您JavaScript代码保持简单并提高其可读性
- java线程池的概念_Java线程池的基本概念以及生命周期
- python学习干货教程(11):元组
- 无线网络渗透测试-使用Aircrack-ng工具破解无线网络
- php熊掌号怎么设置json-ld,dedecms织梦系统怎么对接百度熊掌号并添加JSON_LD数据
- 雷凌linux车机升级_绿老师学堂:15万合资车谁更“聪明”?体验思域/福克斯/雷凌车机...
- python资料-100G Python从入门到精通全套资料!
- Redis数据类型SortedSET
- 机器学习——seaborn可视化
- 游戏运行库java下载官网_游戏运行库合集安装包(Visual C++,Microsoft .NET,Microsoft XNA,Microsoft XML等几十种)...
- 吴恩达深度学习课程第二章第三周编程作业(pytorch实现)
- html语言代码大全,html常用代码大全 寻找最全的HTML语言代码大全
- HTML:设置背景颜色和图片
- waterline mysql_sails 框架下的 orm 实现 - Waterline
- 搞定java面试系列--jvm3 gc垃圾回收
- linux驱动(一):linux驱动框架
- 甲骨文发布移动版Java发展路线图
- AcWing 844. 走迷宫(迷宫问题+最短路径+BFS+最短路径输出)
- 每天一个IDA小技巧(二):基本代码转换
- python时间模块