Intersections2D

包含用于操作 2D 三角形的函数。

Methods

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

在给定的轴对齐阈值处拆分一个 2D 三角形,并返回阈值一侧的结果多边形。 结果多边形可能有 0、1、2、3 或 4 个顶点。
Name Type Description
threshold number 用于裁剪三角形的阈值坐标。
keepAbove boolean 如果为 true,则保留阈值上方的三角形部分;如果为 false,则保留阈值下方的部分。
u0 number 三角形中第一个顶点的坐标,按逆时针顺序。
u1 number 三角形中第二个顶点的坐标,按逆时针顺序。
u2 number 三角形中第三个顶点的坐标,按逆时针顺序。
result Array.<number> optional 将结果复制到的数组。如果未提供此参数,将构造并返回一个新数组。
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

计算 2D 三角形中某个 2D 位置的重心坐标。
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 optional 要将结果复制到的实例。如果此参数未定义,将创建并返回一个新实例。
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

计算两条线段之间的交点。
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 optional 要将结果复制到的实例。如果此参数未定义,将创建并返回一个新实例。
Returns:
交点,如果没有交点或线重合则返回 undefined。
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);
需要帮助?获得答案的最快方法是来自社区和团队 Cesium Forum.