Intersections2D

包含对二维三角形进行操作的函数。

Methods

static Cesium.Intersections2D.clipTriangleAtAxisAlignedThreshold (threshold, keepAbove, u0, u1, u2, result ) Array.<Number>

在给定的轴对齐阈值处拆分二维三角形,并在阈值的给定侧返回生成的多边形。生成的多边形可能有 0、1、2、3 或 4 个顶点。
Name Type Description
threshold Number 裁剪三角形的阈值坐标值。
keepAbove Boolean true 保持三角形的部分高于阈值,或 false 保持低于阈值的部分。
u0 Number 三角形中第一个顶点的坐标,按逆时针顺序排列。
u1 Number 三角形中第二个顶点的坐标,按逆时针顺序排列。
u2 Number 三角形中第三个顶点的坐标,按逆时针顺序排列。
result Array.<Number> 可选 要将结果复制到其中的数组。如果未提供此参数,则构造并返回一个新数组。
Returns:
剪辑后生成的多边形,指定为顶点列表。顶点按逆时针顺序指定。每个顶点要么是现有列表中的索引(标识为 0、1 或 2),要么是 -1,表示不在原始三角形中的新顶点。对于新顶点,-1 后跟三个附加数字:形成新顶点所在线段的两个原始顶点中的每一个的索引,以及从第一个顶点到第二个顶点的距离的分数。
Example:
const result = Cesium.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 Cesium.Intersections2D.computeBarycentricCoordinates (x, y, x1, y1, x2, y2, x3, y3, result ) Cartesian3

计算二维三角形内二维位置的重心坐标。
Name Type Description
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 可选 要将结果复制到其中的实例。如果此参数未定义,则创建并返回一个新实例。
Returns:
三角形内位置的重心坐标。
Example:
const result = Cesium.Intersections2D.computeBarycentricCoordinates(0.0, 0.0, 0.0, 1.0, -1, -0.5, 1, -0.5);
// result === new Cesium.Cartesian3(1.0 / 3.0, 1.0 / 3.0, 1.0 / 3.0);

static Cesium.Intersections2D.computeLineSegmentLineSegmentIntersection (x00, y00, x01, y01, x10, y10, x11, y11, result ) Cartesian2

计算 2 条线段之间的交点
Name Type Description
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 可选 要将结果复制到其中的实例。如果此参数未定义,则创建并返回一个新实例。
Returns:
交点,如果没有交点或线重合,则未定义。
Example:
const result = Cesium.Intersections2D.computeLineSegmentLineSegmentIntersection(0.0, 0.0, 0.0, 2.0, -1, 1, 1, 1);
// result === new Cesium.Cartesian2(0.0, 1.0);