IntersectionTests

用于计算几何形状(例如射线,平面,三角形和椭圆形)之间的交点的函数。

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。

static LSGlobe.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 LSGlobe.IntersectionTests.trianglePlaneIntersection (p0, p1, p2, plane) Object

计算三角形和平面的交点
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);