点是否在三角形内的判断函数。
Cesium.Math.pointInsideTriangle(point, v1, v2, v3)
point
:类型为 Cartesian3
的点对象。v1、v2、v3
:类型为 Cartesian3
对象的三个顶点。如果点在三角形内,返回 true
,否则返回 false
。
const point = new Cesium.Cartesian3(0.5, 0.5, 0.0);
const v1 = new Cesium.Cartesian3(0.0, 0.0, 0.0);
const v2 = new Cesium.Cartesian3(1.0, 0.0, 0.0);
const v3 = new Cesium.Cartesian3(0.0, 1.0, 0.0);
const isInTriangle = Cesium.Math.pointInsideTriangle(point, v1, v2, v3);
console.log(isInTriangle); // true
该函数使用 点和三角形的关系 来判断点是否在三角形内。如果点在三角形内,那么它肯定在三角形的每一条线段的同一侧,因此可以用点积的正负来判断点是否在对应边的同一侧。如果点在三角形内,则对任意选择的一条直线,该点到直线的距离均具有类似三角形中垂线的性质,可以用叉积来判断点是否在三角形内。