Methods
static LSGlobe.IntersectionTests.grazingAltitudeLocation (ray, ellipsoid) → Cartesian3
提供沿射线的最接近椭球的点。
Name | Type | Description |
---|---|---|
ray
|
Ray | 射线。 |
ellipsoid
|
Ellipsoid | 椭圆形。 |
Returns:
射线上最近的行星点。
static LSGlobe.IntersectionTests.lineSegmentPlane (endPoint0, endPoint1, plane, result ) → Cartesian3
计算线段和平面的交点。
Name | Type | Description |
---|---|---|
endPoint0
|
Cartesian3 | 线段的终点。 |
endPoint1
|
Cartesian3 | 线段的另一个端点。 |
plane
|
Plane | 飞机。 |
result
|
Cartesian3 | 可选 将结果存储到的对象。 |
Returns:
相交点;如果没有相交,则为undefined。
Example:
var origin = LSGlobe.Cartesian3.fromDegrees(-75.59777, 40.03883);
var normal = ellipsoid.geodeticSurfaceNormal(origin);
var plane = LSGlobe.Plane.fromPointNormal(origin, normal);
var p0 = new LSGlobe.Cartesian3(...);
var p1 = new LSGlobe.Cartesian3(...);
// find the intersection of the line segment from p0 to p1 and the tangent plane at origin.
var intersection = LSGlobe.IntersectionTests.lineSegmentPlane(p0, p1, plane);
static LSGlobe.IntersectionTests.lineSegmentSphere (p0, p1, sphere, result ) → Interval
计算线段与球体的相交点。
Name | Type | Description |
---|---|---|
p0
|
Cartesian3 | 线段的终点。 |
p1
|
Cartesian3 | 线段的另一个端点。 |
sphere
|
BoundingSphere | 球形。 |
result
|
Interval | 可选 要存储结果的结果。 |
Returns:
包含沿射线的标量点的间隔,如果没有相交,则为不确定。
static LSGlobe.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:
相交点;如果没有相交,则为undefined。
static LSGlobe.IntersectionTests.rayEllipsoid (ray, ellipsoid) → Interval
计算射线与椭球的交点。
Name | Type | Description |
---|---|---|
ray
|
Ray | 射线。 |
ellipsoid
|
Ellipsoid | 椭圆形。 |
Returns:
包含沿射线的标量点的间隔,如果没有相交,则为不确定。
static LSGlobe.IntersectionTests.rayPlane (ray, plane, result ) → Cartesian3
计算射线和平面的交点。
Name | Type | Description |
---|---|---|
ray
|
Ray | 射线。 |
plane
|
Plane | 飞机。 |
result
|
Cartesian3 | 可选 将结果存储到的对象。 |
Returns:
相交点;如果没有相交,则为undefined。
static LSGlobe.IntersectionTests.raySphere (ray, sphere, result ) → Interval
计算射线与球体的交点。
Name | Type | Description |
---|---|---|
ray
|
Ray | 射线。 |
sphere
|
BoundingSphere | 球形。 |
result
|
Interval | 可选 要存储结果的结果。 |
Returns:
包含沿射线的标量点的间隔,如果没有相交,则为不确定。
static LSGlobe.IntersectionTests.rayTriangle (ray, p0, p1, p2, cullBackFaces , result ) → Cartesian3
将射线和三角形的交点计算为笛卡尔3坐标。由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:
相交点;如果没有相交,则为undefined。
计算射线和三角形的交点作为沿输入射线的参数距离。当三角形在光线后面时,结果为负。由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:
具有属性的对象
职位
和
指标
,它们是代表三个不与平面交叉的三角形的阵列。 (如果不存在相交,则为未定义)
Example:
var origin = LSGlobe.Cartesian3.fromDegrees(-75.59777, 40.03883);
var normal = ellipsoid.geodeticSurfaceNormal(origin);
var plane = LSGlobe.Plane.fromPointNormal(origin, normal);
var p0 = new LSGlobe.Cartesian3(...);
var p1 = new LSGlobe.Cartesian3(...);
var p2 = new LSGlobe.Cartesian3(...);
// convert the triangle composed of points (p0, p1, p2) to three triangles that don't cross the plane
var triangles = LSGlobe.IntersectionTests.trianglePlaneIntersection(p0, p1, p2, plane);