Transforms

包含将位置转换为各种参考帧的函数。

Methods

(static) computeFixedToIcrfMatrix(date, result) → {Matrix3}
计算旋转矩阵,在给定时间将点或矢量从地球固定框架轴(ITRF)转换为国际天体参考框架(GCRF/ICRF)惯性框架轴。如果尚未加载进行转换所需的数据,则此函数可能返回未定义的。
Parameters:
date (JulianDate) 计算旋转矩阵的时间。
result (Matrix3) 存储结果的对象。如果未指定此参数,将创建并返回新实例。
Example
// Transform a point from the ICRF axes to the Fixed axes.
var now = bmgl.JulianDate.now();
var pointInFixed = bmgl.Cartesian3.fromDegrees(0.0, 0.0);
var fixedToIcrf = bmgl.Transforms.computeIcrfToFixedMatrix(now);
var pointInInertial = new bmgl.Cartesian3();
if (bmgl.defined(fixedToIcrf)) {
    pointInInertial = bmgl.Matrix3.multiplyByVector(fixedToIcrf, pointInFixed, pointInInertial);
}
See:
(static) computeIcrfToFixedMatrix(date, result) → {Matrix3}
计算旋转矩阵,在给定时间将点或矢量从国际天体参考系(GCRF/ICRF)惯性系轴转换为地球固定系轴(ITRF)。如果尚未加载进行转换所需的数据,则此函数可能返回未定义的。
Parameters:
date (JulianDate) 计算旋转矩阵的时间。
result (Matrix3) 存储结果的对象。如果未指定此参数,将创建并返回新实例。
Example
scene.postUpdate.addEventListener(function(scene, time) {
  // View in ICRF.
  var icrfToFixed = bmgl.Transforms.computeIcrfToFixedMatrix(time);
  if (bmgl.defined(icrfToFixed)) {
    var offset = bmgl.Cartesian3.clone(camera.position);
    var transform = bmgl.Matrix4.fromRotationTranslation(icrfToFixed);
    camera.lookAtTransform(transform, offset);
  }
});
See:
(static) computeTemeToPseudoFixedMatrix(date, result) → {Matrix3}
计算旋转矩阵,将一个点或向量在给定时间从真正的赤道平均点(Teme)轴转换为伪固定轴。此方法将UT1时间标准视为等同于UTC。
Parameters:
date (JulianDate) 计算旋转矩阵的时间。
result (Matrix3) 存储结果的对象。
Example
//Set the view to the inertial frame.
scene.postUpdate.addEventListener(function(scene, time) {
   var now = bmgl.JulianDate.now();
   var offset = bmgl.Matrix4.multiplyByPoint(camera.transform, camera.position, new bmgl.Cartesian3());
   var transform = bmgl.Matrix4.fromRotationTranslation(bmgl.Transforms.computeTemeToPseudoFixedMatrix(now));
   var inverseTransform = bmgl.Matrix4.inverseTransformation(transform, new bmgl.Matrix4());
   bmgl.Matrix4.multiplyByPoint(inverseTransform, offset, offset);
   camera.lookAtTransform(transform, offset);
});
(static) eastNorthUpToFixedFrame(origin, ellipsoid, result) → {Matrix4}
计算一个4x4变换矩阵,从一个以给定原点为中心的东北向上轴的参考坐标系到给定椭球体的固定参考坐标系。局部轴定义为:
  • 在局部东方向上的x轴点。
  • 在局部北方向上的y轴点。
  • 在穿过该位置的椭球面法线的方向上为z轴点。
Parameters:
origin (Cartesian3) 局部参照系的中心点。
ellipsoid (Ellipsoid) (default Ellipsoid.WGS84) 在变换中使用固定框架的椭球体。
result (Matrix4) 存储结果的对象。
Example
// Get the transform from local east-north-up at cartographic (0.0, 0.0) to Earth's fixed frame.
var center = bmgl.Cartesian3.fromDegrees(0.0, 0.0);
var transform = bmgl.Transforms.eastNorthUpToFixedFrame(center);
(static) fixedFrameToHeadingPitchRoll(transform, ellipsoid, fixedFrameTransform, result) → {HeadingPitchRoll}
根据特定参考帧中的变换计算航向纵摇角。航向是从正角度向东增加的局部北向旋转。螺距是指从局部的东北平面开始的旋转。正俯仰角在平面上方。负的螺距角在平面以下。滚动是围绕局部东轴应用的第一个旋转。
Parameters:
transform (Matrix4) 转换
ellipsoid (Ellipsoid) (default Ellipsoid.WGS84) 在变换中使用固定框架的椭球体。
fixedFrameTransform (Transforms~LocalFrameToFixedFrame) (default Transforms.eastNorthUpToFixedFrame) 从参考坐标系到提供的椭球固定参考坐标系的4x4变换矩阵
result (HeadingPitchRoll) 存储结果的对象。
(static) headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result) → {Quaternion}
从参考坐标系计算四元数,坐标轴是从以提供的原点为中心的航向俯仰滚转角度计算得出的。航向是从正角度向东增加的局部北向旋转。螺距是指从局部的东北平面开始的旋转。正俯仰角在平面上方。负的螺距角在平面以下。滚动是围绕局部东轴应用的第一个旋转。
Parameters:
origin (Cartesian3) 局部参照系的中心点。
headingPitchRoll (HeadingPitchRoll) 航向、纵倾和横摇。
ellipsoid (Ellipsoid) (default Ellipsoid.WGS84) 在变换中使用固定框架的椭球体。
fixedFrameTransform (Transforms~LocalFrameToFixedFrame) (default Transforms.eastNorthUpToFixedFrame) 从参考坐标系到提供的椭球固定参考坐标系的4x4变换矩阵
result (Quaternion) 存储结果的对象。
Example
// Get the quaternion from local heading-pitch-roll at cartographic (0.0, 0.0) to Earth's fixed frame.
var center = bmgl.Cartesian3.fromDegrees(0.0, 0.0);
var heading = -bmgl.Math.PI_OVER_TWO;
var pitch = bmgl.Math.PI_OVER_FOUR;
var roll = 0.0;
var hpr = new HeadingPitchRoll(heading, pitch, roll);
var quaternion = bmgl.Transforms.headingPitchRollQuaternion(center, hpr);
(static) headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result) → {Matrix4}
从参考坐标系计算4x4变换矩阵,坐标轴从以提供的原点为中心的航向纵摇角计算到提供的椭球固定参考坐标系。航向是从正角度向东增加的局部北向旋转。螺距是指从局部的东北平面开始的旋转。正俯仰角在平面上方。负的螺距角在平面以下。滚动是围绕局部东轴应用的第一个旋转。
Parameters:
origin (Cartesian3) 局部参照系的中心点。
headingPitchRoll (HeadingPitchRoll) 航向、纵倾和横摇。
ellipsoid (Ellipsoid) (default Ellipsoid.WGS84) 在变换中使用固定框架的椭球体。
fixedFrameTransform (Transforms~LocalFrameToFixedFrame) (default Transforms.eastNorthUpToFixedFrame) 从参考坐标系到提供的椭球固定参考坐标系的4x4变换矩阵
result (Matrix4) 存储结果的对象。
Example
// Get the transform from local heading-pitch-roll at cartographic (0.0, 0.0) to Earth's fixed frame.
var center = bmgl.Cartesian3.fromDegrees(0.0, 0.0);
var heading = -bmgl.Math.PI_OVER_TWO;
var pitch = bmgl.Math.PI_OVER_FOUR;
var roll = 0.0;
var hpr = new bmgl.HeadingPitchRoll(heading, pitch, roll);
var transform = bmgl.Transforms.headingPitchRollToFixedFrame(center, hpr);
(static) localFrameToFixedFrameGenerator(firstAxis, secondAxis) → {localFrameToFixedFrameGenerator~resultat}
生成一个函数,该函数计算4x4转换矩阵,该矩阵从以提供的原点为中心的参考帧到提供的椭球的固定参考帧。
Parameters:
firstAxis (String) 本地参考帧的第一个轴的名称。必须是“东”、“北”、“上”、“西”、“南”或“下”。
secondAxis (String) 本地参考框架的第二个轴的名称。必须是“东”、“北”、“上”、“西”、“南”或“下”。
(static) northEastDownToFixedFrame(origin, ellipsoid, result) → {Matrix4}
计算从以给定原点为中心的东北下轴的参考坐标系到给定椭球体的固定参考坐标系的4x4变换矩阵。局部轴定义为:
  • 在局部北方向上的x轴点。
  • 在局部东方向y轴点。
  • 轴{ }轴点在穿过该位置的椭球面法线的相反方向。
Parameters:
origin (Cartesian3) 局部参照系的中心点。
ellipsoid (Ellipsoid) (default Ellipsoid.WGS84) 在变换中使用固定框架的椭球体。
result (Matrix4) 存储结果的对象。
Example
// Get the transform from local north-east-down at cartographic (0.0, 0.0) to Earth's fixed frame.
var center = bmgl.Cartesian3.fromDegrees(0.0, 0.0);
var transform = bmgl.Transforms.northEastDownToFixedFrame(center);
(static) northUpEastToFixedFrame(origin, ellipsoid, result) → {Matrix4}
计算一个4x4变换矩阵,该矩阵从一个坐标系,该坐标系的东北轴以提供的原点为中心,到提供的椭球体的固定坐标系。局部轴定义为:
  • x轴指向局部北向。
  • y轴指向穿过该位置的椭球面法向。
  • 轴指向局部东向。
Parameters:
origin (Cartesian3) 局部参照系的中心点。
ellipsoid (Ellipsoid) (default Ellipsoid.WGS84) 在变换中使用固定框架的椭球体。
result (Matrix4) 存储结果的对象。
Example
// Get the transform from local north-up-east at cartographic (0.0, 0.0) to Earth's fixed frame.
var center = bmgl.Cartesian3.fromDegrees(0.0, 0.0);
var transform = bmgl.Transforms.northUpEastToFixedFrame(center);
(static) northWestUpToFixedFrame(origin, ellipsoid, result) → {Matrix4}
计算一个4x4变换矩阵,该矩阵从一个以提供的原点为中心的西北向上轴坐标系到提供的椭球体的固定参照系。局部轴定义为:
  • x轴指向局部北向。
  • y轴指向局部西向。
  • 轴指向穿过位置的椭球面法向。
Parameters:
origin (Cartesian3) 局部参照系的中心点。
ellipsoid (Ellipsoid) (default Ellipsoid.WGS84) 在变换中使用固定框架的椭球体。
result (Matrix4) 存储结果的对象。
Example
// Get the transform from local north-West-Up at cartographic (0.0, 0.0) to Earth's fixed frame.
var center = bmgl.Cartesian3.fromDegrees(0.0, 0.0);
var transform = bmgl.Transforms.northWestUpToFixedFrame(center);
(static) pointToWindowCoordinates(modelViewProjectionMatrix, viewportTransformation, point, result) → {Cartesian2}
将点从模型坐标转换为窗口坐标。
Parameters:
modelViewProjectionMatrix (Matrix4) 4x4模型视图投影矩阵。
viewportTransformation (Matrix4) 4x4视区转换。
point (Cartesian3) 要转换的点。
result (Cartesian2) 存储结果的对象。
(static) preloadIcrfFixed(timeInterval) → {Promise}
在给定的间隔内,在任意方向预加载在ICRF和固定轴之间转换所需的数据。此函数返回一个承诺,即当解决此问题时,表示预加载已完成。
Parameters:
timeInterval (TimeInterval) 预加载间隔。
Example
var interval = new bmgl.TimeInterval(...);
when(bmgl.Transforms.preloadIcrfFixed(interval), function() {
    // the data is now loaded
});
See:

Type Definitions

LocalFrameToFixedFrame(origin, ellipsoid, result) → {Matrix4}
计算一个4x4变换矩阵,从一个以提供的原点为中心的参考帧到提供的椭球的固定参考帧。
Parameters:
origin (Cartesian3) 局部参照系的中心点。
ellipsoid (Ellipsoid) (default Ellipsoid.WGS84) 在变换中使用固定框架的椭球体。
result (Matrix4) 存储结果的对象。