Quaternion

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

用来表示三维空间中旋转的一组四维坐标。
Name Type Default Description
x Number 0.0 optional X部分。
y Number 0.0 optional Y部分。
z Number 0.0 optional Z部分。
w Number 0.0 optional W部分。
See:

Members

staticconstantSuperMap3D.Quaternion.IDENTITY : Quaternion

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

staticSuperMap3D.Quaternion.packedInterpolationLength : Number

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

staticSuperMap3D.Quaternion.packedLength : Number

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

staticconstantSuperMap3D.Quaternion.ZERO : Quaternion

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

w : Number

W部分。
Default Value: 0.0

x : Number

X部分。
Default Value: 0.0

y : Number

Y部分。
Default Value: 0.0

z : Number

Z部分。
Default Value: 0.0

Methods

staticSuperMap3D.Quaternion.add(left, right, result)Quaternion

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

staticSuperMap3D.Quaternion.clone(quaternion, result)Quaternion

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

staticSuperMap3D.Quaternion.computeAngle(quaternion)Number

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

staticSuperMap3D.Quaternion.computeAxis(quaternion, result)Cartesian3

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

staticSuperMap3D.Quaternion.computeInnerQuadrangle(q0, q1, q2, result)Quaternion

计算一个内四边形点。这将计算四元数,确保阵容曲线为C1
Name Type Description
q0 Quaternion 第一个四元数。
q1 Quaternion 第二个四元数。
q2 Quaternion 第三个四元数。
result Quaternion 存储结果的对象。
Returns:
修改后的结果参数。
See:
  • Quaternion#squad

staticSuperMap3D.Quaternion.conjugate(quaternion, result)Quaternion

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

staticSuperMap3D.Quaternion.convertPackedArrayForInterpolation(packedArray, startingIndex, lastIndex, result)

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

staticSuperMap3D.Quaternion.divideByScalar(quaternion, scalar, result)Quaternion

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

staticSuperMap3D.Quaternion.dot(left, right)Number

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

staticSuperMap3D.Quaternion.equals(left, right)Boolean

比较所提供的四元数的分量,如果相等则返回 true,否则返回 false。
Name Type Description
left Quaternion optional 第一个四元数。
right Quaternion optional 第二个四元数。
Returns:
如果相等,则为True,否则为false。

staticSuperMap3D.Quaternion.equalsEpsilon(left, right, epsilon)Boolean

比较所提供的四元数的分量,如果在所提供的ε范围内,则返回 true,否则返回 false。
Name Type Description
left Quaternion optional 第一个四元数。
right Quaternion optional 第二个四元数。
epsilon Number 用于等式测试的容差值。
Returns:
如果在提供的容差范围内,则为true;否则为false。

staticSuperMap3D.Quaternion.exp(cartesian, result)Quaternion

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

staticSuperMap3D.Quaternion.fastSlerp(start, end, t, result)Quaternion

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

staticSuperMap3D.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

staticSuperMap3D.Quaternion.fromAxisAngle(axis, angle, result)Quaternion

计算代表绕轴旋转的四元数。
Name Type Description
axis Cartesian3 旋转轴。
angle Number 绕轴旋转的角度(以弧度为单位)。
result Quaternion optional 存储结果的对象。
Returns:
修改后的结果参数,或者一个新的四元数实例(如果没有提供)。

staticSuperMap3D.Quaternion.fromHeadingPitchRoll(headingPitchRoll, result)Quaternion

根据给定的方位角、俯仰角和滚转角计算旋转角度。方位角是绕负 Z 轴的旋转。俯仰角是绕负 y 轴的旋转角度。滚转是绕正 x 轴的旋转。
Name Type Description
headingPitchRoll HeadingPitchRoll 以方位、俯仰和滚动表示的旋转。
result Quaternion optional 存储结果的对象。
Returns:
修改后的结果参数,或者一个新的四元数实例(如果没有提供)。

staticSuperMap3D.Quaternion.fromRotationMatrix(matrix, result)Quaternion

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

staticSuperMap3D.Quaternion.inverse(quaternion, result)Quaternion

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

staticSuperMap3D.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:
修改后的结果参数。

staticSuperMap3D.Quaternion.log(quaternion, result)Cartesian3

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

staticSuperMap3D.Quaternion.magnitude(quaternion)Number

计算所提供的四元数的幅度。
Name Type Description
quaternion Quaternion 要进行共轭的四元数。
Returns:
The magnitude.

staticSuperMap3D.Quaternion.magnitudeSquared(quaternion)Number

计算所提供四元数的幅度平方。
Name Type Description
quaternion Quaternion 要进行共轭的四元数。
Returns:
幅度的平方。

staticSuperMap3D.Quaternion.multiply(left, right, result)Quaternion

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

staticSuperMap3D.Quaternion.multiplyByScalar(quaternion, scalar, result)Quaternion

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

staticSuperMap3D.Quaternion.negate(quaternion, result)Quaternion

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

staticSuperMap3D.Quaternion.normalize(quaternion, result)Quaternion

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

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

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

staticSuperMap3D.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

staticSuperMap3D.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 = SuperMap3D.Quaternion.computeInnerQuadrangle(quaternions[i - 1], quaternions[i], quaternions[i + 1], new SuperMap3D.Quaternion());
var s1 = SuperMap3D.Quaternion.computeInnerQuadrangle(quaternions[i], quaternions[i + 1], quaternions[i + 2], new SuperMap3D.Quaternion());
var q = SuperMap3D.Quaternion.squad(quaternions[i], quaternions[i + 1], s0, s1, t, new SuperMap3D.Quaternion());

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

staticSuperMap3D.Quaternion.subtract(left, right, result)Quaternion

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

staticSuperMap3D.Quaternion.unpack(array, startingIndex, result)Quaternion

从打包数组中检索实例。
Name Type Default Description
array Array.<Number> 打包数组。
startingIndex Number 0 optional 要解压缩的元素的起始索引。
result Quaternion optional 要在其中存储结果的对象。
Returns:
修改后的结果参数或新的Quaternion实例(如果没有提供)。

staticSuperMap3D.Quaternion.unpackInterpolationResult(array, sourceArray, firstIndex, lastIndex, result)Quaternion

从使用 convertPackedArrayForInterpolation 转换的打包数组中读取实例。
Name Type Default Description
array Array.<Number> 之前打包用于插值的数组。
sourceArray Array.<Number> 原始的打包阵列。
firstIndex Number 0 optional 转换数组时使用的 firstIndex。
lastIndex Number packedArray.length optional 用于转换数组的最后一个索引。
result Quaternion optional 存储结果的对象。
Returns:
修改后的结果参数,或者一个新的四元数实例(如果没有提供)。

clone(result)Quaternion

复制此四元数实例。
Name Type Description
result Quaternion optional 存储结果的对象。
Returns:
修改后的结果参数,或者一个新的四元数实例(如果没有提供)。

equals(right)Boolean

比较此四元数和提供的四元数的分量,如果相等则返回 true,否则返回 false。
Name Type Description
right Quaternion optional 右侧的四元数。
Returns:
如果相等,则为True,否则为false。

equalsEpsilon(right, epsilon)Boolean

比较此四元数和提供的四元数的分量,如果在提供的容差范围内,则返回 true,否则返回 false。
Name Type Description
right Quaternion optional 右侧的四元数。
epsilon Number 用于等式测试的容差值。
Returns:
如果在提供的容差范围内,则为true;否则为false。

toString()String

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