欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 编程资源 > 编程问答 >内容正文

编程问答

判定一个点是否在三角形内 -凯发k8官方网

发布时间:2024/10/12 编程问答 17 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 判定一个点是否在三角形内 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

三角形的面积公式如下:


在此处使用一种常见且简便的方法:如果三角形pab,pac和pbc的面积之和与三角形abc的面积相等,即可判定点p在三角形abc内(包括在三条边上)
可知,该方法的关键在于如何计算三角形的面积。幸运地是,当知道三角形顶点(a,b和c)的坐标((ax, ay),(bx, by)和(cx, cy))之后,即可计算出其面积:

= |(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

总结

以上是凯发k8官方网为你收集整理的判定一个点是否在三角形内的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图