Methods
-
staticSuperMap3D.IntersectionTests.lineSegmentSphere(options, p0, p1, sphere, result) → Interval
-
计算线段与球体的交点。
Name Type Description options
Object 具有以下属性的对象: p0
Cartesian3 线段的终点。 p1
Cartesian3 线段的另一个端点。 sphere
BoundingSphere 球体。 result
Interval optional 存储结果的结果。 Returns:
包含沿射线的标量点的区间,如果没有交点,则为未定义的区间。 -
staticSuperMap3D.IntersectionTests.lineSegmentTriangle(options, v0, v1, p0, p1, p2, cullBackFaces, result) → Cartesian3
-
计算线段和三角形的交点。
Name Type Default Description options
Object 具有以下属性的对象: v0
Cartesian3 线段的端点。 v1
Cartesian3 线段的另一个端点。 p0
Cartesian3 三角形的第一个顶点。 p1
Cartesian3 三角形的第二个顶点。 p2
Cartesian3 三角形的第三个顶点。 cullBackFaces
Boolean false
optional 如果为 true ,将只计算与三角形正面的交点,并为与背面的交点返回 undefined。 result
Cartesian3 optional 存储结果的 Cartesian3 。 Returns:
如果没有交点,则交点或未定义。 -
staticSuperMap3D.IntersectionTests.raySphere(options, ray, sphere, result) → Interval
-
计算射线与球体的交点。
Name Type Description options
Object 具有以下属性的对象: ray
Ray 射线。 sphere
BoundingSphere 球体。 result
Interval optional 存储结果的结果。 Returns:
包含沿射线的标量点的区间,如果没有交点,则为未定义的区间。 -
staticSuperMap3D.IntersectionTests.rayTriangle(options, ray, p0, p1, p2, cullBackFaces, result) → Cartesian3
-
以直角坐标系的形式计算射线和三角形的交点。 计算射线和三角形的交点作为Cartesian。由 Tomas Moller 和 Ben Trumbore 实现{@link https://cadxfem.org/inf/Fast%20MinimumStorage%20RayTriangle%20Intersection.pdf| Fast Minimum Storage Ray/Triangle Intersection}。
Name Type Default Description options
Object 具有以下属性的对象: ray
Ray 射线。 p0
Cartesian3 三角形的第一个顶点。 p1
Cartesian3 三角形的第二个顶点。 p2
Cartesian3 三角形的第三个顶点。 cullBackFaces
Boolean false
optional 如果为 true ,将只计算与三角形正面的交点,并为与背面的交点返回 undefined。 result
Cartesian3 optional 存储结果的 Cartesian3 。 Returns:
如果没有交点,则交点或未定义。 -
计算射线与三角形的交点,作为沿输入射线的参数距离。 将光线和三角形的交点计算为沿输入光线的参数距离。 当三角形位于射线后面时,结果为负。由 Tomas Moller 和 Ben Trumbore 实现Fast Minimum Storage Ray/Triangle Intersection
Name Type Default Description options
Object 具有以下属性的对象: ray
Ray 射线。 p0
Cartesian3 三角形的第一个顶点。 p1
Cartesian3 三角形的第二个顶点。 p2
Cartesian3 三角形的第三个顶点。 cullBackFaces
Boolean false
optional 如果 true
,将只计算与三角形正面的交集,并返回与背面交集的未定义。Returns:
交点作为沿射线的参数距离,如果没有交点则未定义。 -
staticSuperMap3D.IntersectionTests.grazingAltitudeLocation(options, ray, ellipsoid) → Cartesian3
-
沿射线提供离椭球最近的点。
Name Type Description options
Object 具有以下属性的对象: ray
Ray 射线。 ellipsoid
Ellipsoid 椭球体。 Returns:
射线上最近的定行星点。 -
staticSuperMap3D.IntersectionTests.lineSegmentPlane(options, endPoint0, endPoint1, plane, result) → Cartesian3
-
计算线段和平面的交点。
Name Type Description options
Object 具有以下属性的对象: endPoint0
Cartesian3 线段的终点。 endPoint1
Cartesian3 线段的另一个端点。 plane
Plane 平面。 result
Cartesian3 optional 存储结果的对象。 Returns:
如果没有交点,则交点或未定义。Example:
var origin = SuperMap3D.Cartesian3.fromDegrees(-75.59777, 40.03883); var normal = ellipsoid.geodeticSurfaceNormal(origin); var plane = SuperMap3D.Plane.fromPointNormal(origin, normal); var p0 = new SuperMap3D.Cartesian3(...); var p1 = new SuperMap3D.Cartesian3(...); // find the intersection of the line segment from p0 to p1 and the tangent plane at origin. var intersection = SuperMap3D.IntersectionTests.lineSegmentPlane(p0, p1, plane);
-
staticSuperMap3D.IntersectionTests.rayEllipsoid(options, ray, ellipsoid) → Interval
-
计算射线与椭球的交点。
Name Type Description options
Object 具有以下属性的对象: ray
Ray 射线。 ellipsoid
Ellipsoid 椭球体。 Returns:
包含沿射线的标量点的区间,如果没有交点,则为未定义的区间。 -
staticSuperMap3D.IntersectionTests.rayPlane(options, ray, plane, result) → Cartesian3
-
计算射线与平面的交点。
Name Type Description options
Object 具有以下属性的对象: ray
Ray 射线。 plane
Plane 平面。 result
Cartesian3 optional 存储结果的对象。 Returns:
如果没有交点,则交点或未定义。 -
计算三角形和平面的交点。
Name Type Description options
Object 具有以下属性的对象: p0
Cartesian3 三角形的第一个点。 p1
Cartesian3 三角形的第二个点。 p2
Cartesian3 三角形的第三点。 plane
Plane 相交平面。 Returns:
具有属性 positions 和 indices 的对象,它们是表示三个不穿过平面的三角形的数组。 (如果不存在交集,则未定义)Example:
var origin = SuperMap3D.Cartesian3.fromDegrees(-75.59777, 40.03883); var normal = ellipsoid.geodeticSurfaceNormal(origin); var plane = SuperMap3D.Plane.fromPointNormal(origin, normal); var p0 = new SuperMap3D.Cartesian3(...); var p1 = new SuperMap3D.Cartesian3(...); var p2 = new SuperMap3D.Cartesian3(...); // convert the triangle composed of points (p0, p1, p2) to three triangles that don't cross the plane var triangles = SuperMap3D.IntersectionTests.trianglePlaneIntersection(p0, p1, p2, plane);