一组 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 组件。 |
Members
static constant Cesium.Quaternion.IDENTITY : Quaternion
初始化为 (0.0, 0.0, 0.0, 1.0) 的不可变四元数实例。
用于将对象以可插值形式存储到数组中的元素数。
用于将对象打包到数组中的元素数。
static constant Cesium.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 Cesium.Quaternion.add (left, right, result) → Quaternion
计算两个四元数的分量和。
Name | Type | Description |
---|---|---|
left
|
Quaternion | 第一个四元数。 |
right
|
Quaternion | 第二个四元数。 |
result
|
Quaternion | 存储结果的对象。 |
Returns:
修改后的结果参数。
static Cesium.Quaternion.clone (quaternion, result ) → Quaternion
复制四元数实例。
Name | Type | Description |
---|---|---|
quaternion
|
Quaternion | 要复制的四元数。 |
result
|
Quaternion | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的四元数实例(如果未提供)。 (如果四元数未定义,则返回未定义)
计算提供的四元数的旋转角度。
Name | Type | Description |
---|---|---|
quaternion
|
Quaternion | 要使用的四元数。 |
Returns:
旋转角度。
static Cesium.Quaternion.computeAxis (quaternion, result) → Cartesian3
计算提供的四元数的旋转轴。
Name | Type | Description |
---|---|---|
quaternion
|
Quaternion | 要使用的四元数。 |
result
|
Cartesian3 | 存储结果的对象。 |
Returns:
修改后的结果参数。
static Cesium.Quaternion.computeInnerQuadrangle (q0, q1, q2, result) → Quaternion
计算内部四边形点。
这将计算确保小队曲线为 C 1 的四元数。
Name | Type | Description |
---|---|---|
q0
|
Quaternion | 第一个四元数。 |
q1
|
Quaternion | 第二个四元数。 |
q2
|
Quaternion | 第三个四元数。 |
result
|
Quaternion | 存储结果的对象。 |
Returns:
修改后的结果参数。
- Quaternion#squad
See:
static Cesium.Quaternion.conjugate (quaternion, result) → Quaternion
计算提供的四元数的共轭。
Name | Type | Description |
---|---|---|
quaternion
|
Quaternion | 共轭的四元数。 |
result
|
Quaternion | 存储结果的对象。 |
Returns:
修改后的结果参数。
static Cesium.Quaternion.convertPackedArrayForInterpolation (packedArray, startingIndex , lastIndex , result )
将打包数组转换为适合插值的形式。
Name | Type | Default | Description |
---|---|---|---|
packedArray
|
Array.<Number> | 打包的数组。 | |
startingIndex
|
Number |
0
|
可选 要转换的第一个元素的索引。 |
lastIndex
|
Number |
packedArray.length
|
可选 要转换的最后一个元素的索引。 |
result
|
Array.<Number> | 可选 存储结果的对象。 |
static Cesium.Quaternion.divideByScalar (quaternion, scalar, result) → Quaternion
将提供的四元数按分量除以提供的标量。
Name | Type | Description |
---|---|---|
quaternion
|
Quaternion | 要划分的四元数。 |
scalar
|
Number | 要除以的标量。 |
result
|
Quaternion | 存储结果的对象。 |
Returns:
修改后的结果参数。
计算两个四元数的点(标量)积。
Name | Type | Description |
---|---|---|
left
|
Quaternion | 第一个四元数。 |
right
|
Quaternion | 第二个四元数。 |
Returns:
点积。
逐个比较提供的四元数,如果相等则返回
true
,否则返回
false
。
Name | Type | Description |
---|---|---|
left
|
Quaternion | 可选 第一个四元数。 |
right
|
Quaternion | 可选 第二个四元数。 |
Returns:
如果左右相等,则为
true
,否则为
false
。
逐个比较提供的四元数,如果它们在提供的 epsilon 内,则返回
true
,否则返回
false
。
Name | Type | Default | Description |
---|---|---|---|
left
|
Quaternion | 可选 第一个四元数。 | |
right
|
Quaternion | 可选 第二个四元数。 | |
epsilon
|
Number |
0
|
可选 用于相等性测试的 epsilon。 |
Returns:
true
left 和 right 在提供的 epsilon 内,则为 true,否则为
false
。
static Cesium.Quaternion.exp (cartesian, result) → Quaternion
指数四元数函数。
Name | Type | Description |
---|---|---|
cartesian
|
Cartesian3 | 笛卡尔。 |
result
|
Quaternion | 存储结果的对象。 |
Returns:
修改后的结果参数。
static Cesium.Quaternion.fastSlerp (start, end, t, result) → Quaternion
使用提供的四元数计算 t 处的球面线性插值或外插。此实现比
Quaternion#slerp
更快,但仅精确到 10
-6
。
Name | Type | Description |
---|---|---|
start
|
Quaternion | 在 0.0 时对应于 t 的值。 |
end
|
Quaternion | 在 1.0 时对应于 t 的值。 |
t
|
Number | 沿 t 进行插值的点。 |
result
|
Quaternion | 存储结果的对象。 |
Returns:
修改后的结果参数。
- Quaternion#slerp
See:
static Cesium.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:
修改后的结果参数或新实例(如果没有提供)。
- Quaternion#squad
See:
static Cesium.Quaternion.fromAxisAngle (axis, angle, result ) → Quaternion
计算表示绕轴旋转的四元数。
Name | Type | Description |
---|---|---|
axis
|
Cartesian3 | 旋转轴。 |
angle
|
Number | 绕轴旋转的弧度角。 |
result
|
Quaternion | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的四元数实例(如果未提供)。
static Cesium.Quaternion.fromHeadingPitchRoll (headingPitchRoll, result ) → Quaternion
从给定的航向、俯仰和滚动角度计算旋转。航向是围绕负 z 轴的旋转。俯仰是围绕负 y 轴的旋转。滚动是围绕正 x 轴的旋转。
Name | Type | Description |
---|---|---|
headingPitchRoll
|
HeadingPitchRoll | 旋转表示为航向、俯仰和滚动。 |
result
|
Quaternion | 可选 存储结果的对象。 |
Returns:
如果未提供修改的结果参数或新的四元数实例。
static Cesium.Quaternion.fromRotationMatrix (matrix, result ) → Quaternion
从提供的 Matrix3 实例计算四元数。
Name | Type | Description |
---|---|---|
matrix
|
Matrix3 | 旋转矩阵。 |
result
|
Quaternion | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的四元数实例(如果未提供)。
static Cesium.Quaternion.inverse (quaternion, result) → Quaternion
计算提供的四元数的逆。
Name | Type | Description |
---|---|---|
quaternion
|
Quaternion | 要标准化的四元数。 |
result
|
Quaternion | 存储结果的对象。 |
Returns:
修改后的结果参数。
static Cesium.Quaternion.lerp (start, end, t, result) → Quaternion
使用提供的四元数计算 t 处的线性插值或外插。
Name | Type | Description |
---|---|---|
start
|
Quaternion | 在 0.0 时对应于 t 的值。 |
end
|
Quaternion | 在 1.0 时对应于 t 的值。 |
t
|
Number | 沿 t 进行插值的点。 |
result
|
Quaternion | 存储结果的对象。 |
Returns:
修改后的结果参数。
static Cesium.Quaternion.log (quaternion, result) → Cartesian3
对数四元数函数。
Name | Type | Description |
---|---|---|
quaternion
|
Quaternion | 单位四元数。 |
result
|
Cartesian3 | 存储结果的对象。 |
Returns:
修改后的结果参数。
计算提供的四元数的大小。
Name | Type | Description |
---|---|---|
quaternion
|
Quaternion | 共轭的四元数。 |
Returns:
幅度。
计算提供的四元数的幅度平方。
Name | Type | Description |
---|---|---|
quaternion
|
Quaternion | 共轭的四元数。 |
Returns:
幅度平方。
static Cesium.Quaternion.multiply (left, right, result) → Quaternion
计算两个四元数的乘积。
Name | Type | Description |
---|---|---|
left
|
Quaternion | 第一个四元数。 |
right
|
Quaternion | 第二个四元数。 |
result
|
Quaternion | 存储结果的对象。 |
Returns:
修改后的结果参数。
static Cesium.Quaternion.multiplyByScalar (quaternion, scalar, result) → Quaternion
将提供的四元数按分量乘以提供的标量。
Name | Type | Description |
---|---|---|
quaternion
|
Quaternion | 要缩放的四元数。 |
scalar
|
Number | 要与之相乘的标量。 |
result
|
Quaternion | 存储结果的对象。 |
Returns:
修改后的结果参数。
static Cesium.Quaternion.negate (quaternion, result) → Quaternion
否定提供的四元数。
Name | Type | Description |
---|---|---|
quaternion
|
Quaternion | 要否定的四元数。 |
result
|
Quaternion | 存储结果的对象。 |
Returns:
修改后的结果参数。
static Cesium.Quaternion.normalize (quaternion, result) → Quaternion
计算提供的四元数的归一化形式。
Name | Type | Description |
---|---|---|
quaternion
|
Quaternion | 要标准化的四元数。 |
result
|
Quaternion | 存储结果的对象。 |
Returns:
修改后的结果参数。
将提供的实例存储到提供的数组中。
Name | Type | Default | Description |
---|---|---|---|
value
|
Quaternion | 要打包的值。 | |
array
|
Array.<Number> | 要打包的数组。 | |
startingIndex
|
Number |
0
|
可选 开始打包元素的数组索引。 |
Returns:
装入的数组
static Cesium.Quaternion.slerp (start, end, t, result) → Quaternion
使用提供的四元数计算 t 处的球面线性插值或外插。
Name | Type | Description |
---|---|---|
start
|
Quaternion | 在 0.0 时对应于 t 的值。 |
end
|
Quaternion | 在 1.0 时对应于 t 的值。 |
t
|
Number | 沿 t 进行插值的点。 |
result
|
Quaternion | 存储结果的对象。 |
Returns:
修改后的结果参数。
- Quaternion#fastSlerp
See:
static Cesium.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:
修改后的结果参数。
- Quaternion#computeInnerQuadrangle
Example:
// 1. compute the squad interpolation between two quaternions on a curve
const s0 = Cesium.Quaternion.computeInnerQuadrangle(quaternions[i - 1], quaternions[i], quaternions[i + 1], new Cesium.Quaternion());
const s1 = Cesium.Quaternion.computeInnerQuadrangle(quaternions[i], quaternions[i + 1], quaternions[i + 2], new Cesium.Quaternion());
const q = Cesium.Quaternion.squad(quaternions[i], quaternions[i + 1], s0, s1, t, new Cesium.Quaternion());
// 2. compute the squad interpolation as above but where the first quaternion is a end point.
const s1 = Cesium.Quaternion.computeInnerQuadrangle(quaternions[0], quaternions[1], quaternions[2], new Cesium.Quaternion());
const q = Cesium.Quaternion.squad(quaternions[0], quaternions[1], quaternions[0], s1, t, new Cesium.Quaternion());
See:
static Cesium.Quaternion.subtract (left, right, result) → Quaternion
计算两个四元数的分量差。
Name | Type | Description |
---|---|---|
left
|
Quaternion | 第一个四元数。 |
right
|
Quaternion | 第二个四元数。 |
result
|
Quaternion | 存储结果的对象。 |
Returns:
修改后的结果参数。
static Cesium.Quaternion.unpack (array, startingIndex , result ) → Quaternion
从打包数组中检索实例。
Name | Type | Default | Description |
---|---|---|---|
array
|
Array.<Number> | 打包的数组。 | |
startingIndex
|
Number |
0
|
可选 要解包的元素的起始索引。 |
result
|
Quaternion | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的四元数实例(如果未提供)。
static Cesium.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:
修改后的结果参数或新的四元数实例(如果未提供)。
clone ( result ) → Quaternion
复制此四元数实例。
Name | Type | Description |
---|---|---|
result
|
Quaternion | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的四元数实例(如果未提供)。
比较这个和提供的四元数组件,如果它们相等则返回
true
,否则返回
false
。
Name | Type | Description |
---|---|---|
right
|
Quaternion | 可选 右手边的四元数。 |
Returns:
如果左右相等,则为
true
,否则为
false
。
比较这个和提供的四元数,如果它们在提供的 epsilon 内,则返回
true
,否则返回
false
。
Name | Type | Default | Description |
---|---|---|---|
right
|
Quaternion | 可选 右手边的四元数。 | |
epsilon
|
Number |
0
|
可选 用于相等性测试的 epsilon。 |
Returns:
true
left 和 right 在提供的 epsilon 内,则为 true,否则为
false
。
以 (x, y, z, w) 格式返回表示此四元数的字符串。
Returns:
表示此四元数的字符串。