Intersections2D

包含在二维三角形上操作的函数。

Methods

(static) clipTriangleAtAxisAlignedThreshold(threshold, keepAbove, u0, u1, u2, result) → {Array.<Number>}
在给定的轴对齐阈值处拆分一个二维三角形,并返回在阈值的给定侧上生成的多边形。生成的多边形可以有0、1、2、3或4个顶点。
Parameters:
threshold (Number) 剪裁三角形的阈值坐标值。
keepAbove (Boolean) 如果为“真”,则将三角形的部分保持在阈值以上;如果为“假”,则将三角形的部分保持在阈值以下。
u0 (Number) 三角形中第一个顶点的坐标,按逆时针顺序排列。
u1 (Number) 三角形中第二个顶点的坐标,按逆时针顺序排列。
u2 (Number) 三角形中第三个顶点的坐标,按逆时针顺序排列。
result (Array.<Number>) 要将结果复制到其中的数组。如果未提供此参数,则构造并返回一个新数组。
Example
var result = bmgl.Intersections2D.clipTriangleAtAxisAlignedThreshold(0.5, false, 0.2, 0.6, 0.4);
// result === [2, 0, -1, 1, 0, 0.25, -1, 1, 2, 0.5]
(static) computeBarycentricCoordinates(x, y, x1, y1, x2, y2, x3, y3, result) → {Cartesian3}
计算二维三角形内二维位置的重心坐标。
Parameters:
x (Number) 找到重心坐标的位置的X坐标。
y (Number) 找到重心坐标的位置的Y坐标。
x1 (Number) 三角形第一个顶点的X坐标。
y1 (Number) 三角形第一个顶点的Y坐标。
x2 (Number) 三角形第二个顶点的X坐标。
y2 (Number) 三角形第二个顶点的Y坐标。
x3 (Number) 三角形第三个顶点的X坐标。
y3 (Number) 三角形第三个顶点的Y坐标。
result (Cartesian3) 要将结果复制到其中的实例。如果未定义此参数,则创建并返回一个新实例。
Example
var result = bmgl.Intersections2D.computeBarycentricCoordinates(0.0, 0.0, 0.0, 1.0, -1, -0.5, 1, -0.5);
// result === new bmgl.Cartesian3(1.0 / 3.0, 1.0 / 3.0, 1.0 / 3.0);
(static) computeLineSegmentLineSegmentIntersection(x00, y00, x01, y01, x10, y10, x11, y11, result) → {Cartesian2}
计算两个线段之间的交点
Parameters:
x00 (Number) 第一行第一个顶点的X坐标。
y00 (Number) 第一行第一个顶点的Y坐标。
x01 (Number) 第一行第二个顶点的X坐标。
y01 (Number) 第一行第二个顶点的Y坐标。
x10 (Number) 第二行第一个顶点的X坐标。
y10 (Number) 第二行第一个顶点的Y坐标。
x11 (Number) 第二行第二个顶点的X坐标。
y11 (Number) 第二行第二个顶点的Y坐标。
result (Cartesian2) 要将结果复制到其中的实例。如果未定义此参数,则创建并返回一个新实例。
Example
var result = bmgl.Intersections2D.computeLineSegmentLineSegmentIntersection(0.0, 0.0, 0.0, 2.0, -1, 1, 1, 1);
// result === new bmgl.Cartesian2(0.0, 1.0);