IntersectionTests

用于计算几何体(例如射线、平面、三角形和椭球体)之间的交集的函数。

Methods

static Cesium.IntersectionTests.grazingAltitudeLocation (ray, ellipsoid) Cartesian3

沿射线提供离椭球最近的点。
Name Type Description
ray Ray 射线。
ellipsoid Ellipsoid 椭球体。
Returns:
射线上最近的定行星点。

static Cesium.IntersectionTests.lineSegmentPlane (endPoint0, endPoint1, plane, result ) Cartesian3

计算线段和平面的交点。
Name Type Description
endPoint0 Cartesian3 线段的终点。
endPoint1 Cartesian3 线段的另一个端点。
plane Plane 飞机。
result Cartesian3 可选 存储结果的对象。
Returns:
如果没有交点,则交点或未定义。
Example:
const origin = Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883);
const normal = ellipsoid.geodeticSurfaceNormal(origin);
const plane = Cesium.Plane.fromPointNormal(origin, normal);

const p0 = new Cesium.Cartesian3(...);
const p1 = new Cesium.Cartesian3(...);

// find the intersection of the line segment from p0 to p1 and the tangent plane at origin.
const intersection = Cesium.IntersectionTests.lineSegmentPlane(p0, p1, plane);

static Cesium.IntersectionTests.lineSegmentSphere (p0, p1, sphere, result ) Interval

计算线段与球体的交点。
Name Type Description
p0 Cartesian3 线段的终点。
p1 Cartesian3 线段的另一个端点。
sphere BoundingSphere 球体。
result Interval 可选 存储结果的结果。
Returns:
包含沿射线的标量点的区间,如果没有交点,则为未定义的区间。

static Cesium.IntersectionTests.lineSegmentTriangle (v0, v1, p0, p1, p2, cullBackFaces , result ) Cartesian3

计算线段和三角形的交点。
Name Type Default Description
v0 Cartesian3 线段的端点。
v1 Cartesian3 线段的另一个端点。
p0 Cartesian3 三角形的第一个顶点。
p1 Cartesian3 三角形的第二个顶点。
p2 Cartesian3 三角形的第三个顶点。
cullBackFaces Boolean false 可选 如果为 true ,将只计算与三角形正面的交点,并为与背面的交点返回 undefined。
result Cartesian3 可选 存储结果的 Cartesian3
Returns:
如果没有交点,则交点或未定义。

static Cesium.IntersectionTests.rayEllipsoid (ray, ellipsoid) Interval

计算射线与椭球的交点。
Name Type Description
ray Ray 射线。
ellipsoid Ellipsoid 椭球体。
Returns:
包含沿射线的标量点的区间,如果没有交点,则为未定义的区间。

static Cesium.IntersectionTests.rayPlane (ray, plane, result ) Cartesian3

计算射线与平面的交点。
Name Type Description
ray Ray 射线。
plane Plane 飞机。
result Cartesian3 可选 存储结果的对象。
Returns:
如果没有交点,则交点或未定义。

static Cesium.IntersectionTests.raySphere (ray, sphere, result ) Interval

计算射线与球体的交点。
Name Type Description
ray Ray 射线。
sphere BoundingSphere 球体。
result Interval 可选 存储结果的结果。
Returns:
包含沿射线的标量点的区间,如果没有交点,则为未定义的区间。

static Cesium.IntersectionTests.rayTriangle (ray, p0, p1, p2, cullBackFaces , result ) Cartesian3

计算射线和三角形的交点作为笛卡尔坐标。由 Tomas Moller 和 Ben Trumbore 实现 快速最小存储射线/三角形相交
Name Type Default Description
ray Ray 射线。
p0 Cartesian3 三角形的第一个顶点。
p1 Cartesian3 三角形的第二个顶点。
p2 Cartesian3 三角形的第三个顶点。
cullBackFaces Boolean false 可选 如果为 true ,将只计算与三角形正面的交点,并为与背面的交点返回 undefined。
result Cartesian3 可选 存储结果的 Cartesian3
Returns:
如果没有交点,则交点或未定义。

static Cesium.IntersectionTests.rayTriangleParametric (ray, p0, p1, p2, cullBackFaces ) Number

将光线和三角形的交点计算为沿输入光线的参数距离。当三角形位于射线后面时,结果为负。由 Tomas Moller 和 Ben Trumbore 实现 快速最小存储射线/三角形相交
Name Type Default Description
ray Ray 射线。
p0 Cartesian3 三角形的第一个顶点。
p1 Cartesian3 三角形的第二个顶点。
p2 Cartesian3 三角形的第三个顶点。
cullBackFaces Boolean false 可选 如果为 true ,将只计算与三角形正面的交点,并为与背面的交点返回 undefined。
Returns:
相交作为沿射线的参数距离,如果没有相交,则为未定义。

static Cesium.IntersectionTests.trianglePlaneIntersection (p0, p1, p2, plane) Object

计算三角形和平面的交点
Name Type Description
p0 Cartesian3 三角形的第一个点
p1 Cartesian3 三角形的第二个点
p2 Cartesian3 三角形的第三点
plane Plane 相交平面
Returns:
具有属性 positions indices 的对象,它们是表示三个不穿过平面的三角形的数组。 (如果不存在交集,则未定义)
Example:
const origin = Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883);
const normal = ellipsoid.geodeticSurfaceNormal(origin);
const plane = Cesium.Plane.fromPointNormal(origin, normal);

const p0 = new Cesium.Cartesian3(...);
const p1 = new Cesium.Cartesian3(...);
const p2 = new Cesium.Cartesian3(...);

// convert the triangle composed of points (p0, p1, p2) to three triangles that don't cross the plane
const triangles = Cesium.IntersectionTests.trianglePlaneIntersection(p0, p1, p2, plane);