Methods
static Cesium.Intersections2D.clipTriangleAtAxisAlignedThreshold (threshold, keepAbove, u0, u1, u2, result ) → Array.<Number>
以给定的轴对齐阈值分割2D三角形并返回结果阈值给定边上的多边形。产生的多边形可能具有0、1、23或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:
var 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 | 可选 将结果复制到的实例。如果这个参数 未定义,则创建新实例并返回。 |
Returns:
三角形内位置的重心坐标。
Example:
var 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:
var result = Cesium.Intersections2D.computeLineSegmentLineSegmentIntersection(0.0, 0.0, 0.0, 2.0, -1, 1, 1, 1);
// result === new Cesium.Cartesian2(0.0, 1.0);