Quaternion

new LSGlobe.Quaternion ( x , y , z , w )

一组4维坐标,用于表示3维空间中的旋转。
Name Type Default Description
x Number 0.0 可选 X组件。
y Number 0.0 可选 Y分量。
z Number 0.0 可选 Z分量。
w Number 0.0 可选 W分量。
See:

Members

static constant LSGlobe.Quaternion.IDENTITY : Quaternion

不可变的四元数实例初始化为(0.0,0.0,0.0,1.0)。

static LSGlobe.Quaternion.packedInterpolationLength : Number

用于以可插值形式将对象存储到数组中的元素数。

static LSGlobe.Quaternion.packedLength : Number

用于将对象打包到数组中的元素数。

static constant LSGlobe.Quaternion.ZERO : Quaternion

不可变的四元数实例初始化为(0.0,0.0,0.0,0.0)。
W分量。
Default Value: 0.0
X组件。
Default Value: 0.0
Y分量。
Default Value: 0.0
Z分量。
Default Value: 0.0

Methods

static LSGlobe.Quaternion.add (left, right, result) Quaternion

计算两个四元数的按分量和。
Name Type Description
left Quaternion 第一个四元数。
right Quaternion 第二四元数。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数。

static LSGlobe.Quaternion.clone (quaternion, result ) Quaternion

复制四元数实例。
Name Type Description
quaternion Quaternion 要复制的四元数。
result Quaternion 可选 将结果存储到的对象。
Returns:
修改后的结果参数或一个新的四元数实例(如果未提供)。 (如果四元数未定义,则返回未定义)

static LSGlobe.Quaternion.computeAngle (quaternion) Number

计算提供的四元数的旋转角度。
Name Type Description
quaternion Quaternion 要使用的四元数。
Returns:
旋转角度。

static LSGlobe.Quaternion.computeAxis (quaternion, result) Cartesian3

计算提供的四元数的旋转轴。
Name Type Description
quaternion Quaternion 要使用的四元数。
result Cartesian3 将结果存储到的对象。
Returns:
修改后的结果参数。

static LSGlobe.Quaternion.computeInnerQuadrangle (q0, q1, q2, result) Quaternion

计算内部四边形点。

这将计算四元数以确保小队曲线为C 1

Name Type Description
q0 Quaternion 第一个四元数。
q1 Quaternion 第二四元数。
q2 Quaternion 第三四元数。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数。
See:
  • Quaternion#squad

static LSGlobe.Quaternion.conjugate (quaternion, result) Quaternion

计算提供的四元数的共轭。
Name Type Description
quaternion Quaternion 要结合的四元数。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数。

static LSGlobe.Quaternion.convertPackedArrayForInterpolation (packedArray, startingIndex , lastIndex , result )

将压缩的数组转换为适合插值的形式。
Name Type Default Description
packedArray Array.<Number> 压缩数组。
startingIndex Number 0 可选 要转换的第一个元素的索引。
lastIndex Number packedArray.length 可选 最后要转换的元素的索引。
result Array.<Number> 可选 将结果存储到的对象。

static LSGlobe.Quaternion.divideByScalar (quaternion, scalar, result) Quaternion

将提供的四元数按比例除以提供的标量。
Name Type Description
quaternion Quaternion 要分割的四元数。
scalar Number 要除以的标量。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数。

static LSGlobe.Quaternion.dot (left, right) Number

计算两个四元数的点(标量)乘积。
Name Type Description
left Quaternion 第一个四元数。
right Quaternion 第二四元数。
Returns:
点积。

static LSGlobe.Quaternion.equals ( left , right ) Boolean

按组件比较提供的四元数并返回如果相等,则为 true ,否则为 false
Name Type Description
left Quaternion 可选 第一个四元数。
right Quaternion 可选 第二四元数。
Returns:
真正 如果左右相等 除此以外。

static LSGlobe.Quaternion.equalsEpsilon ( left , right , epsilon ) Boolean

按组件比较提供的四元数并返回 true (如果它们在提供的epsilon内),否则为 false
Name Type Default Description
left Quaternion 可选 第一个四元数。
right Quaternion 可选 第二四元数。
epsilon Number 0 可选 用于相等性测试的epsilon。
Returns:
真正 如果左右在提供的epsilon之内, 除此以外。

static LSGlobe.Quaternion.exp (cartesian, result) Quaternion

指数四元数函数。
Name Type Description
cartesian Cartesian3 笛卡尔。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数。

static LSGlobe.Quaternion.fastSlerp (start, end, t, result) Quaternion

使用提供的四元数计算t处的球面线性插值或外推。此实现比 Quaternion#slerp 快,但只能精确到10 -6
Name Type Description
start Quaternion 对应于t的值为0.0。
end Quaternion 对应于t的值为1.0。
t Number 沿t的插值点。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数。
See:
  • Quaternion#slerp

static LSGlobe.Quaternion.fastSquad (q0, q1, s0, s1, t, result) Quaternion

计算四元数之间的球面四边形插值。比 Quaternion#squad 更快的实现,但准确性较低。
Name Type Description
q0 Quaternion 第一个四元数。
q1 Quaternion 第二四元数。
s0 Quaternion 第一个内部四边形。
s1 Quaternion 第二个内部四边形。
t Number [0,1]中的时间用于插值。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数或新实例(如果未提供)。
See:
  • Quaternion#squad

static LSGlobe.Quaternion.fromAxisAngle (axis, angle, result ) Quaternion

计算表示围绕轴旋转的四元数。
Name Type Description
axis Cartesian3 旋转轴。
angle Number 以弧度为单位绕轴旋转的角度。
result Quaternion 可选 将结果存储到的对象。
Returns:
修改后的结果参数或一个新的四元数实例(如果未提供)。

static LSGlobe.Quaternion.fromHeadingPitchRoll (headingPitchRoll, result ) Quaternion

根据给定的航向,俯仰和横滚角计算旋转角度。标题是围绕负Z轴。节距是绕负y轴的旋转。滚动是关于正x轴。
Name Type Description
headingPitchRoll HeadingPitchRoll 旋转表示为航向,俯仰和横滚。
result Quaternion 可选 将结果存储到的对象。
Returns:
修改后的结果参数或新的Quaternion实例(如果未提供)。

static LSGlobe.Quaternion.fromRotationMatrix (matrix, result ) Quaternion

根据提供的Matrix3实例计算四元数。
Name Type Description
matrix Matrix3 旋转矩阵。
result Quaternion 可选 将结果存储到的对象。
Returns:
修改后的结果参数或一个新的四元数实例(如果未提供)。
See:

static LSGlobe.Quaternion.inverse (quaternion, result) Quaternion

计算提供的四元数的逆数。
Name Type Description
quaternion Quaternion 要进行标准化的四元数。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数。

static LSGlobe.Quaternion.lerp (start, end, t, result) Quaternion

使用提供的四元数计算t处的线性插值或外推。
Name Type Description
start Quaternion 对应于t的值为0.0。
end Quaternion 对应于t的值为1.0。
t Number 沿t的插值点。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数。

static LSGlobe.Quaternion.log (quaternion, result) Cartesian3

对数四元数函数。
Name Type Description
quaternion Quaternion 单元四元数。
result Cartesian3 将结果存储到的对象。
Returns:
修改后的结果参数。

static LSGlobe.Quaternion.magnitude (quaternion) Number

计算提供的四元数的大小。
Name Type Description
quaternion Quaternion 要结合的四元数。
Returns:
幅度。

static LSGlobe.Quaternion.magnitudeSquared (quaternion) Number

为提供的四元数计算大小平方。
Name Type Description
quaternion Quaternion 要结合的四元数。
Returns:
大小平方。

static LSGlobe.Quaternion.multiply (left, right, result) Quaternion

计算两个四元数的乘积。
Name Type Description
left Quaternion 第一个四元数。
right Quaternion 第二四元数。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数。

static LSGlobe.Quaternion.multiplyByScalar (quaternion, scalar, result) Quaternion

将提供的四元数按分量乘以提供的标量。
Name Type Description
quaternion Quaternion 要缩放的四元数。
scalar Number 要与之相乘的标量。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数。

static LSGlobe.Quaternion.negate (quaternion, result) Quaternion

否定提供的四元数。
Name Type Description
quaternion Quaternion 四元数要取反。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数。

static LSGlobe.Quaternion.normalize (quaternion, result) Quaternion

计算提供的四元数的规范化形式。
Name Type Description
quaternion Quaternion 要进行标准化的四元数。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数。

static LSGlobe.Quaternion.pack (value, array, startingIndex ) Array.<Number>

将提供的实例存储到提供的数组中。
Name Type Default Description
value Quaternion 要打包的值。
array Array.<Number> 要打包的数组。
startingIndex Number 0 可选 开始打包元素的数组索引。
Returns:
打包到的数组

static LSGlobe.Quaternion.slerp (start, end, t, result) Quaternion

使用提供的四元数计算t处的球面线性插值或外推。
Name Type Description
start Quaternion 对应于t的值为0.0。
end Quaternion 对应于t的值为1.0。
t Number 沿t的插值点。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数。
See:
  • Quaternion#fastSlerp

static LSGlobe.Quaternion.squad (q0, q1, s0, s1, t, result) Quaternion

计算四元数之间的球面四边形插值。
Name Type Description
q0 Quaternion 第一个四元数。
q1 Quaternion 第二四元数。
s0 Quaternion 第一个内部四边形。
s1 Quaternion 第二个内部四边形。
t Number [0,1]中的时间用于插值。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数。
Example:
// 1. compute the squad interpolation between two quaternions on a curve
var s0 = LSGlobe.Quaternion.computeInnerQuadrangle(quaternions[i - 1], quaternions[i], quaternions[i + 1], new LSGlobe.Quaternion());
var s1 = LSGlobe.Quaternion.computeInnerQuadrangle(quaternions[i], quaternions[i + 1], quaternions[i + 2], new LSGlobe.Quaternion());
var q = LSGlobe.Quaternion.squad(quaternions[i], quaternions[i + 1], s0, s1, t, new LSGlobe.Quaternion());

// 2. compute the squad interpolation as above but where the first quaternion is a end point.
var s1 = LSGlobe.Quaternion.computeInnerQuadrangle(quaternions[0], quaternions[1], quaternions[2], new LSGlobe.Quaternion());
var q = LSGlobe.Quaternion.squad(quaternions[0], quaternions[1], quaternions[0], s1, t, new LSGlobe.Quaternion());
See:
  • Quaternion#computeInnerQuadrangle

static LSGlobe.Quaternion.subtract (left, right, result) Quaternion

计算两个四元数的分量差。
Name Type Description
left Quaternion 第一个四元数。
right Quaternion 第二四元数。
result Quaternion 将结果存储到的对象。
Returns:
修改后的结果参数。

static LSGlobe.Quaternion.unpack (array, startingIndex , result ) Quaternion

从压缩数组中检索实例。
Name Type Default Description
array Array.<Number> 压缩数组。
startingIndex Number 0 可选 要解压缩的元素的起始索引。
result Quaternion 可选 将结果存储到的对象。
Returns:
修改后的结果参数或一个新的四元数实例(如果未提供)。

static LSGlobe.Quaternion.unpackInterpolationResult (array, sourceArray, firstIndex , lastIndex , result ) Quaternion

从使用 convertPackedArrayForInterpolation 转换的打包数组中检索实例。
Name Type Default Description
array Array.<Number> 先前打包用于插值的数组。
sourceArray Array.<Number> 原始打包数组。
firstIndex Number 0 可选 firstIndex用于转换数组。
lastIndex Number packedArray.length 可选 用于转换数组的lastIndex。
result Quaternion 可选 将结果存储到的对象。
Returns:
修改后的结果参数或一个新的四元数实例(如果未提供)。
复制此四元数实例。
Name Type Description
result Quaternion 可选 将结果存储到的对象。
Returns:
修改后的结果参数或一个新的四元数实例(如果未提供)。

equals ( right ) Boolean

将此与提供的四元数进行比较,然后返回如果相等,则为 true ,否则为 false
Name Type Description
right Quaternion 可选 右侧四元数。
Returns:
真正 如果左右相等 除此以外。

equalsEpsilon ( right , epsilon ) Boolean

将此与提供的四元数进行比较,然后返回 true (如果它们在提供的epsilon内),否则为 false
Name Type Default Description
right Quaternion 可选 右侧四元数。
epsilon Number 0 可选 用于相等性测试的epsilon。
Returns:
真正 如果左右在提供的epsilon之内, 除此以外。

toString () String

返回以(x,y,z,w)格式表示此四元数的字符串。
Returns:
表示此四元数的字符串。