网站地图    收藏   

主页 > 前端 > js几何数学知识 >

js求一个点是否在三角形内还是外

来源:未知    时间:2023-02-14 15:03 作者:小飞侠 阅读:

[导读] js如何判断平面内有一个三角形abc和一个点p,判断点p是否在三角形内,根据站长搜集到有多种方法判断,下面将一步一步给大家讲解。 1、重心坐标法: 请看下图: 根据点P分别做辅助...

js如何判断平面内有一个三角形abc和一个点p,判断点p是否在三角形内,根据站长搜集到有多种方法判断,下面将一步一步给大家讲解。

1、重心坐标法:

请看下图:

image.png

根据点P分别做辅助线到a,b,c, 假设P点在三角形内部话,已P为点的的三个三角形必然要小于等于三角形abc

所以根据面试公式就可以得出

点在三角形内部满足以下等式:

Sabc + Sbcp + Sacp <= Sabc

点在三角形外满足以下等式:

Sabc + Sbcp + Sacp > Sabc

三角形面积公式有很多种办法:这里用夹角公式比较好,或者三边公式

image.png

当然还有别的方法

2、同侧法:


image.png


若p在ab的左侧,且p在bc的左侧,且p在ca的左侧,则p在三角形内,否则不在三角形内



判断方法:



如图分别构造红、绿、蓝三组向量,分别进行叉乘,同号为同一侧


t0 = ab CROSS pa

t1 = bc CROSS pb

t2 = ca CROSS pc

t0,t1,t2同号为真,否则为假

3、线性组合法:

image.png

向量ab和cb确定整个平面,p可以由这两个向量的线性组合所确定,即:

p=t0*ab+t1*cb

当p在a点时,t0=1,t1=0;

当p在c点时,t0=0,t1=1;

当p点在ac线上时,p为a和c的线性组合

所以ac边就困住了p点,让其不能突破这条边,约束条件为t0+t1=1

综上所述:

p点在三角形内必须满足:t0<1,t1<1,t0+t1<=1

以上就是js求一个点是否在三角形内还是外全部内容,感谢大家支持自学php网。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论