三角形的面积公式如下:

在此处使用一种常见且简便的方法:如果三角形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));}
}

转载于:https://www.cnblogs.com/berylqliu/p/6261492.html

判定一个点是否在三角形内相关推荐

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

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

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

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

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

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

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

    转自:https://www.cnblogs.com/simplekinght/p/9218310.html 面积法:若点P在三角形ABC内,则三角形ABP+三角形ACP+三角形BCP的面积等于三角形 ...

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

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

  6. 射线与三角形求交,并判断是否在三角形内的完整代码(带测试)

    // Det.cpp : Defines the entry point for the console application. // #include "stdafx.h" # ...

  7. 判断一个点是否在指定三角形内(1)

    问题:判断点P是否在三角形ABC内 判断一个点是否在在三角形内,最常用的两种方法:面积法.向量同向法.算法虽然很简单,但要做到高效却不容易,要考虑到二维.三维的区别,还要考虑到坐标是用浮点数还是用整数 ...

  8. Java黑皮书课后题第3章:**3.27(几何:点是否在三角形内)假设一个平面上有一个直角三角形。编写程序,提示用户输入一个点的x坐标和y坐标,然后判断这个点是否在该三角形内

    **3.27(几何:点是否在三角形内)假设一个平面上有一个直角三角形.编写程序,提示用户输入一个点的x坐标和y坐标,然后判断这个点是否在该三角形内 题目 题目描述 破题 运行示例 代码 题目 题目描述 ...

  9. 三角形一点到三边距离最小_三角形内有没有一个点到三边距离之和最小 -

    不论是不是内心, 一个点到三边的距离都是垂线段的长度, 相互之间不能直接比较. 正确的结论是这样的: ①若三角形不等腰, 则平面上到三边距离和最小的点是最大内角的顶点. ②若三角形等腰, 而底边大于腰 ...

最新文章

  1. 斯坦福被炮轰:用算法分配5000支新冠疫苗,医护人员只有7支
  2. 【深度学习】Squeeze-and-Excitation (SE) 模块优势解读
  3. java把对象转成json_java 把对象 对象转换成json字符串 | 学步园
  4. 烧脑又过瘾!关于c²= b² + a²,你不知道的N个事实
  5. 空心点_空心水泥砖的多种花园用途,总有一款GET你的点!
  6. 做了5年程序员才明白,这项能力原来这么重要
  7. platform设备的添加
  8. 大数据如何进行创新与变革
  9. Matlab 绘制箱线图
  10. 实现Codeblock支持C99标准
  11. java赛马游戏_Java程序之赛马游戏
  12. xp 无法关闭计算机,xp系统不能关机了怎么办
  13. 配置VRRP负载分担
  14. 达梦数据库DM8支持Seata事务框架
  15. 流利说英语level4_英语流利说level4原文graph?分享一下我的经验?
  16. 人工智能 漆桂林_认识一下计算机的新成员——人工智能
  17. 基于pyqt5的登录界面及人脸识别功能界面相互跳转的设计(1)
  18. MySQL 正负数排序
  19. python中的./与../
  20. PLSQL添加和删除字段

热门文章

  1. spring boot部署war包打包插件配置
  2. Java访问修饰符public,private,protected,以及不写(默认)时的区别?
  3. RedisTemplate操作hash数据类型示例
  4. dms系统与mysql_关于MySQL与DMsql探寻
  5. python文件读写库_【8】python文件的读写方法
  6. arch检验python_Python实现端口检测
  7. java《算法》第四版一些API方法笔记
  8. deepin root密码_Deepin安装MySQL
  9. informix和mysql数据量_informix数据库知识积累
  10. python格式化字符串_Python笔记7:三种方式构建字符串-格式化