-
staticSuperMap3D.Transforms.computeFixedToIcrfMatrix(date, result) → Matrix3
-
计算旋转矩阵,以便在给定时间内将一个点或矢量从地球固定框架轴(ITRF)转换到国际天体参考框架(GCRF/ICRF)惯性框架轴。
如果尚未加载进行转换所需的数据,该函数可能会返回未定义的结果。
Name |
Type |
Description |
date |
JulianDate
|
计算旋转矩阵的时间。 |
result |
Matrix3
|
optional
存储结果的对象。如果未指定该参数,将创建并返回一个新实例。 |
Returns:
旋转矩阵,如果尚未加载进行转换所需的数据,则为未定义。
Example:
// Transform a point from the ICRF axes to the Fixed axes.
var now = SuperMap3D.JulianDate.now();
var pointInFixed = SuperMap3D.Cartesian3.fromDegrees(0.0, 0.0);
var fixedToIcrf = SuperMap3D.Transforms.computeIcrfToFixedMatrix(now);
var pointInInertial = new SuperMap3D.Cartesian3();
if (SuperMap3D.defined(fixedToIcrf)) {
pointInInertial = SuperMap3D.Matrix3.multiplyByVector(fixedToIcrf, pointInFixed, pointInInertial);
}
See:
-
staticSuperMap3D.Transforms.computeIcrfToFixedMatrix(date, result) → Matrix3
-
计算旋转矩阵,以便在给定时间内将一个点或矢量从国际天体参考框架(GCRF/ICRF)惯性框架轴转换到地球固定框架轴(ITRF)。
如果尚未加载进行转换所需的数据,该函数可能会返回未定义的结果。
Name |
Type |
Description |
date |
JulianDate
|
计算旋转矩阵的时间。 |
result |
Matrix3
|
optional
存储结果的对象。如果未指定该参数,将创建并返回一个新实例。 |
Returns:
旋转矩阵,如果尚未加载进行转换所需的数据,则为未定义。
Example:
scene.preRender.addEventListener(function(scene, time) {
var icrfToFixed = SuperMap3D.Transforms.computeIcrfToFixedMatrix(time);
if (SuperMap3D.defined(icrfToFixed)) {
var offset = SuperMap3D.Matrix4.multiplyByPoint(camera.transform, camera.position, new SuperMap3D.Cartesian3());
var transform = SuperMap3D.Matrix4.fromRotationTranslation(icrfToFixed)
var inverseTransform = SuperMap3D.Matrix4.inverseTransformation(transform, new SuperMap3D.Matrix4());
SuperMap3D.Matrix4.multiplyByPoint(inverseTransform, offset, offset);
camera.lookAtTransform(transform, offset);
}
});
See:
-
staticSuperMap3D.Transforms.computeTemeToPseudoFixedMatrix(date, result) → Matrix3
-
计算旋转矩阵,将一个点或矢量从真赤道均分(TEME)轴转换到给定时间的伪固定轴。 该方法将UT1 时间标准等同于 UTC。
Returns:
修改后的结果参数,或者一个新的 Matrix3 实例(如果没有提供)。
Example:
//Set the view to in the inertial frame.
scene.preRender.addEventListener(function(scene, time) {
var now = SuperMap3D.JulianDate.now();
var offset = SuperMap3D.Matrix4.multiplyByPoint(camera.transform, camera.position, new SuperMap3D.Cartesian3());
var transform = SuperMap3D.Matrix4.fromRotationTranslation(SuperMap3D.Transforms.computeTemeToPseudoFixedMatrix(now));
var inverseTransform = SuperMap3D.Matrix4.inverseTransformation(transform, new SuperMap3D.Matrix4());
SuperMap3D.Matrix4.multiplyByPoint(inverseTransform, offset, offset);
camera.lookAtTransform(transform, offset);
});
-
staticSuperMap3D.Transforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, fixedFrameTransformOrResult, result) → Quaternion
-
以提供的原点为中心,根据航向-间距-滚动角计算出的轴线,从参考框架中计算出一个四元数。方位是指从本地北方向旋转,正角向东增大。
俯仰角是从当地东-北平面开始的旋转。正俯仰角在平面上方。负俯仰角在平面以下。滚转是围绕当地东轴线的第一次旋转。
Returns:
修改后的结果参数,或一个新的 Matrix4 实例(如果没有提供)。
Example:
// Get the quaternion from local heading-pitch-roll at cartographic (0.0, 0.0) to Earth's fixed frame.
var center = SuperMap3D.Cartesian3.fromDegrees(0.0, 0.0);
var heading = -SuperMap3D.Math.PI_OVER_TWO;
var pitch = SuperMap3D.Math.PI_OVER_FOUR;
var roll = 0.0;
var hpr = new HeadingPitchRoll(heading, pitch, roll);
var quaternion = SuperMap3D.Transforms.headingPitchRollQuaternion(center, hpr);
-
staticSuperMap3D.Transforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, fixedFrameTransformOrResult, result) → Matrix4
-
从参考框架计算一个 4x4 变换矩阵,参考框架的坐标轴是由以提供的原点为中心的航向-俯仰-滚动角计算出来的,变换矩阵则是由提供的椭球体固定参考框架计算出来的。方位是指从本地北方向旋转,正角向东增大。
俯仰角是从当地的东-北平面开始的旋转。正俯仰角在平面上方。负俯仰角在平面以下。滚转是围绕本地东轴的第一次旋转。
Returns:
修改后的结果参数,或一个新的 Matrix4 实例(如果没有提供)。
Example:
// Get the transform from local heading-pitch-roll at cartographic (0.0, 0.0) to Earth's fixed frame.
var center = SuperMap3D.Cartesian3.fromDegrees(0.0, 0.0);
var heading = -SuperMap3D.Math.PI_OVER_TWO;
var pitch = SuperMap3D.Math.PI_OVER_FOUR;
var roll = 0.0;
var hpr = new SuperMap3D.HeadingPitchRoll(heading, pitch, roll);
var transform = SuperMap3D.Transforms.headingPitchRollToFixedFrame(center, hpr);
-
staticSuperMap3D.Transforms.localFrameToFixedFrameGenerator(firstAxis, secondAxis) → localFrameToFixedFrameGenerator~resultat
-
生成一个函数,该函数计算从给定原点为中心的参考系到给定椭球体的固定参考系的4x4变换矩阵。
Name |
Type |
Description |
firstAxis |
String
|
本地参考系的第一个轴的名称。必须是“东”、“北”、“上”、“西”、“南”或“下”。 |
secondAxis |
String
|
本地参考系的第二个轴的名称。必须是“东”、“北”、“上”、“西”、“南”或“下”。 |
Returns:
函数将从参考系计算4x4变换矩阵,第一轴和第二轴符合参数。
-
staticSuperMap3D.Transforms.pointToWindowCoordinates(modelViewProjectionMatrix, viewportTransformation, point, result) → Cartesian2
-
将一个点从模型坐标转换为窗口坐标。
Name |
Type |
Description |
modelViewProjectionMatrix |
Matrix4
|
4x4 模型-视角-投影矩阵。 |
viewportTransformation |
Matrix4
|
4x4 视口变换。 |
point |
Cartesian3
|
转变的要点。 |
result |
Cartesian2
|
optional
存储结果的对象。 |
Returns:
修改后的结果参数,或者一个新的 Cartesian2 实例(如果没有提供)。
-
staticSuperMap3D.Transforms.preloadIcrfFixed(timeInterval) → Promise.<undefined>
-
在给定的时间间隔内,预载在 ICRF 轴和固定轴之间进行任一方向转换所需的数据。该函数返回一个Promise,当该Promise被解析时,表示预加载已完成。
Returns:
一个Promise,解析后表示预加载已完成,对固定轴和 ICRF 轴之间的变换进行评估时,在时间间隔内将不再返回未定义的结果。
Example:
var interval = new SuperMap3D.TimeInterval(...);
when(SuperMap3D.Transforms.preloadIcrfFixed(interval), function() {
// the data is now loaded
});
See: