通过面积法,判断点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

微信公众号 扫一扫关注

如何判断一个点在任意四边形内相关推荐

  1. 判断一个点在任意四边形内

    通过面积法,判断点P是否在四边形(A,B,C,D)内. 如果在四边形内,则四边形的面积=面积(P,A,B)+面积(P,B,C)+面积(P,C,D)+面积(P,D,A); 反之不在四边形内. Java代 ...

  2. Java 判断一个点是否在一个三角形内

    题目描述:   如何判断一个点是否在一个三角形内. 测试样例: 自定义的POINT类: class POINT{int x;int y;public POINT(int x,int y){this.x ...

  3. 能否构成三角形的条件代码_Java 如何判断一个点是否在一个三角形内

    题目描述: 如何判断一个点是否在一个三角形内. 测试样例: 自定义的POINT类: class POINT{ int x; int y; public POINT(int x,int y){ this ...

  4. HDU1756(判断一个点是否在多边形内)

    以下内容是在自己学习中总结出来了的,如果有什么错误,请指出,谢谢! 判断一个点是否在多边形内: (1)判断方法一(具有一定的局限性):将测试点的Y坐标与多边形的每一个点进行比较,将得到一 个与多边形的 ...

  5. 【寒江雪】判断一个点是否在网格内

    判断一个点是否在多边形网格内   根据前几天看到的博客--<判断一个点是否在多边形内>--突发奇想,设计一个算法判断一个点是否在多面体网格内.   这里假设该网格物体都是由许多个三角面构成 ...

  6. Algorithm: 如何判断一个点是否在一个三角形内

    昨日因为机缘巧合,做了一道阿里的实习生编程题.题目很有趣,其中涉及到了如何判断一个点是否在一个三角形内. 其中,判断这个问题最简单的方法是面积法.(图片来源:http://www.cnblogs.co ...

  7. 判断点是否在给定四边形内的算法

    注意:凹凸多边形的定义 凸多边形:每个内角都是锐角或钝角,也就是没有大于180°的优角的多边形. 凹多边形:至少有一个优角的多边形.凸多边形就是把一个多边形任意一边向两方无限延长成为一条直线,如果多边 ...

  8. 面试高频算法题补充系列:如何判断一个点是否在三角形内?

    前言 了解更多常考高频算法题可以关注 公众号:一个搬砖的胖子 企业面试题库:https://codetop.cc/ 小程序:CodeTop 该题曾出现在字节跳动.腾讯.网易.美团.小马智行等公司的面试 ...

  9. MFC判断一个点是否在一个区域内

    1.判断一点是否在矩形区域内的方法: CRect rc (point_1,point_2);//构造矩形区域 调用CRect::PtInRect     BOOL flag = rc.PtInRect ...

最新文章

  1. javascript 代码_如何使您JavaScript代码保持简单并提高其可读性
  2. java线程池的概念_Java线程池的基本概念以及生命周期
  3. python学习干货教程(11):元组
  4. 无线网络渗透测试-使用Aircrack-ng工具破解无线网络
  5. php熊掌号怎么设置json-ld,dedecms织梦系统怎么对接百度熊掌号并添加JSON_LD数据
  6. 雷凌linux车机升级_绿老师学堂:15万合资车谁更“聪明”?体验思域/福克斯/雷凌车机...
  7. python资料-100G Python从入门到精通全套资料!
  8. Redis数据类型SortedSET
  9. 机器学习——seaborn可视化
  10. 游戏运行库java下载官网_游戏运行库合集安装包(Visual C++,Microsoft .NET,Microsoft XNA,Microsoft XML等几十种)...
  11. 吴恩达深度学习课程第二章第三周编程作业(pytorch实现)
  12. html语言代码大全,html常用代码大全 寻找最全的HTML语言代码大全
  13. HTML:设置背景颜色和图片
  14. waterline mysql_sails 框架下的 orm 实现 - Waterline
  15. 搞定java面试系列--jvm3 gc垃圾回收
  16. linux驱动(一):linux驱动框架
  17. 甲骨文发布移动版Java发展路线图
  18. AcWing 844. 走迷宫(迷宫问题+最短路径+BFS+最短路径输出)
  19. 每天一个IDA小技巧(二):基本代码转换
  20. python时间模块

热门文章

  1. 如何在CDN边缘节点执行你的JavaScript?
  2. 从遇见到信任 | Apache Dubbo 的毕业之旅
  3. 如何将深度学习训练速度提升一百倍?PAISoar 来了
  4. 语义分割概念及应用介绍
  5. 这个阿里程序员,干了件很轴的事儿
  6. 加速引擎SmartFlow助力浪潮云海超融合2021H1中国市场增速第一
  7. 五大数据库理念,读懂亚马逊云科技的数据库布局
  8. 作为一名通信老司机,我是如何看待翼龙通信无人机救灾的?
  9. 【建议珍藏系列】如果你这样回答「什么是线程安全」,面试官都会对你刮目相看!...
  10. Docker简介与简单使用 | 技术头条