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