一组用于表示三维空间中旋转的 4 维坐标。
| 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 分量。 |
Members
static constant Cesium.Quaternion.IDENTITY : Quaternion
初始化为 (0.0, 0.0, 0.0, 1.0) 的不可变 Quaternion 实例。
用于将对象以可插值形式存入数组的元素数量。
用于将对象打包进数组的元素数量。
static constant Cesium.Quaternion.ZERO : Quaternion
初始化为 (0.0, 0.0, 0.0, 0.0) 的不可变 Quaternion 实例。
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:
修改后的 result 参数。
static Cesium.Quaternion.clone(quaternion, result) → Quaternion
复制一个 Quaternion 实例。
| Name | Type | Description |
|---|---|---|
quaternion |
Quaternion | 要复制的四元数。 |
result |
Quaternion | optional 用于存储结果的对象。 |
Returns:
修改后的 result 参数,如果未提供则返回一个新的 Quaternion 实例。(如果 quaternion 为 undefined 则返回 undefined)
计算所提供四元数的旋转角度。
| Name | Type | Description |
|---|---|---|
quaternion |
Quaternion | 要使用的四元数。 |
Returns:
旋转角度。
static Cesium.Quaternion.computeAxis(quaternion, result) → Cartesian3
计算所提供四元数的旋转轴。
| Name | Type | Description |
|---|---|---|
quaternion |
Quaternion | 要使用的四元数。 |
result |
Cartesian3 | 用于存储结果的对象。 |
Returns:
修改后的 result 参数。
static Cesium.Quaternion.computeInnerQuadrangle(q0, q1, q2, result) → Quaternion
计算一个内部四边形点。
这将计算可确保 squad 曲线为 C1 的四元数。
| Name | Type | Description |
|---|---|---|
q0 |
Quaternion | 第一个四元数。 |
q1 |
Quaternion | 第二个四元数。 |
q2 |
Quaternion | 第三个四元数。 |
result |
Quaternion | 用于存储结果的对象。 |
Returns:
修改后的 result 参数。
- Quaternion#squad
See:
static Cesium.Quaternion.conjugate(quaternion, result) → Quaternion
计算所提供四元数的共轭。
| Name | Type | Description |
|---|---|---|
quaternion |
Quaternion | 要取共轭的四元数。 |
result |
Quaternion | 用于存储结果的对象。 |
Returns:
修改后的 result 参数。
static Cesium.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> | optional 用于存储结果的对象。 |
static Cesium.Quaternion.divideByScalar(quaternion, scalar, result) → Quaternion
将所提供四元数按所提供标量逐分量相除。
| Name | Type | Description |
|---|---|---|
quaternion |
Quaternion | 要被除的四元数。 |
scalar |
number | 要除以的标量。 |
result |
Quaternion | 用于存储结果的对象。 |
Returns:
修改后的 result 参数。
计算两个四元数的点积(标量积)。
| Name | Type | Description |
|---|---|---|
left |
Quaternion | 第一个四元数。 |
right |
Quaternion | 第二个四元数。 |
Returns:
点积。
逐分量比较两个提供的四元数,如果相等则返回
true,否则返回 false。
| Name | Type | Description |
|---|---|---|
left |
Quaternion | optional 第一个四元数。 |
right |
Quaternion | optional 第二个四元数。 |
Returns:
如果 left 和 right 相等则为
true,否则为 false。
逐分量比较两个提供的四元数,如果它们在所提供 epsilon 范围内则返回
true,
否则返回 false。
| Name | Type | Default | Description |
|---|---|---|---|
left |
Quaternion | optional 第一个四元数。 | |
right |
Quaternion | optional 第二个四元数。 | |
epsilon |
number |
0
|
optional 用于相等性测试的 epsilon。 |
Returns:
如果 left 和 right 在所提供 epsilon 范围内则为
true,否则为 false。
static Cesium.Quaternion.exp(cartesian, result) → Quaternion
指数四元数函数。
| Name | Type | Description |
|---|---|---|
cartesian |
Cartesian3 | Cartesian 对象。 |
result |
Quaternion | 用于存储结果的对象。 |
Returns:
修改后的 result 参数。
static Cesium.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:
修改后的 result 参数。
- 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:
修改后的 result 参数,如果未提供则返回一个新实例。
- Quaternion#squad
See:
static Cesium.Quaternion.fromAxisAngle(axis, angle, result) → Quaternion
计算表示绕轴旋转的四元数。
| Name | Type | Description |
|---|---|---|
axis |
Cartesian3 | 旋转轴。 |
angle |
number | 绕轴旋转的角度(弧度)。 |
result |
Quaternion | optional 用于存储结果的对象。 |
Returns:
修改后的 result 参数,如果未提供则返回一个新的 Quaternion 实例。
static Cesium.Quaternion.fromHeadingPitchRoll(headingPitchRoll, result) → Quaternion
根据给定的航向角、俯仰角和滚动角计算旋转。航向角是绕
负 z 轴的旋转。俯仰角是绕负 y 轴的旋转。滚动角是绕
正 x 轴的旋转。
| Name | Type | Description |
|---|---|---|
headingPitchRoll |
HeadingPitchRoll | 以航向角、俯仰角和滚动角表示的旋转。 |
result |
Quaternion | optional 用于存储结果的对象。 |
Returns:
修改后的 result 参数,如果未提供则返回一个新的 Quaternion 实例。
static Cesium.Quaternion.fromRotationMatrix(matrix, result) → Quaternion
根据提供的 Matrix3 实例计算一个 Quaternion。
| Name | Type | Description |
|---|---|---|
matrix |
Matrix3 | 旋转矩阵。 |
result |
Quaternion | optional 用于存储结果的对象。 |
Returns:
修改后的 result 参数,如果未提供则返回一个新的 Quaternion 实例。
static Cesium.Quaternion.inverse(quaternion, result) → Quaternion
计算所提供四元数的逆。
| Name | Type | Description |
|---|---|---|
quaternion |
Quaternion | 要归一化的四元数。 |
result |
Quaternion | 用于存储结果的对象。 |
Returns:
修改后的 result 参数。
static Cesium.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:
修改后的 result 参数。
static Cesium.Quaternion.log(quaternion, result) → Cartesian3
对数四元数函数。
| Name | Type | Description |
|---|---|---|
quaternion |
Quaternion | 单位四元数。 |
result |
Cartesian3 | 用于存储结果的对象。 |
Returns:
修改后的 result 参数。
计算所提供四元数的模长。
| 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:
修改后的 result 参数。
static Cesium.Quaternion.multiplyByScalar(quaternion, scalar, result) → Quaternion
将所提供四元数按所提供标量逐分量相乘。
| Name | Type | Description |
|---|---|---|
quaternion |
Quaternion | 要缩放的四元数。 |
scalar |
number | 要与之相乘的标量。 |
result |
Quaternion | 用于存储结果的对象。 |
Returns:
修改后的 result 参数。
static Cesium.Quaternion.negate(quaternion, result) → Quaternion
对提供的四元数取负。
| Name | Type | Description |
|---|---|---|
quaternion |
Quaternion | 要取负的四元数。 |
result |
Quaternion | 用于存储结果的对象。 |
Returns:
修改后的 result 参数。
static Cesium.Quaternion.normalize(quaternion, result) → Quaternion
计算所提供四元数的归一化形式。
| Name | Type | Description |
|---|---|---|
quaternion |
Quaternion | 要归一化的四元数。 |
result |
Quaternion | 用于存储结果的对象。 |
Returns:
修改后的 result 参数。
将提供的实例存入提供的数组。
| Name | Type | Default | Description |
|---|---|---|---|
value |
Quaternion | 要打包的值。 | |
array |
Array.<number> | 要打包进的数组。 | |
startingIndex |
number |
0
|
optional 数组中开始打包元素的索引。 |
Returns:
被打包进的数组
static Cesium.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:
修改后的 result 参数。
- 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:
修改后的 result 参数。
- 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:
修改后的 result 参数。
static Cesium.Quaternion.unpack(array, startingIndex, result) → Quaternion
从已打包的数组中检索一个实例。
| Name | Type | Default | Description |
|---|---|---|---|
array |
Array.<number> | 已打包的数组。 | |
startingIndex |
number |
0
|
optional 要解包元素的起始索引。 |
result |
Quaternion | optional 用于存储结果的对象。 |
Returns:
修改后的 result 参数,如果未提供则返回一个新的 Quaternion 实例。
static Cesium.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 用于转换数组的 lastIndex。 |
result |
Quaternion | optional 用于存储结果的对象。 |
Returns:
修改后的 result 参数,如果未提供则返回一个新的 Quaternion 实例。
clone(result) → Quaternion
复制此 Quaternion 实例。
| Name | Type | Description |
|---|---|---|
result |
Quaternion | optional 用于存储结果的对象。 |
Returns:
修改后的 result 参数,如果未提供则返回一个新的 Quaternion 实例。
将此四元数与提供的四元数逐分量比较,如果相等则返回
true,否则返回 false。
| Name | Type | Description |
|---|---|---|
right |
Quaternion | optional 右侧的四元数。 |
Returns:
如果 left 和 right 相等则为
true,否则为 false。
将此四元数与提供的四元数逐分量比较,如果它们在所提供 epsilon 范围内则返回
true,
否则返回 false。
| Name | Type | Default | Description |
|---|---|---|---|
right |
Quaternion | optional 右侧的四元数。 | |
epsilon |
number |
0
|
optional 用于相等性测试的 epsilon。 |
Returns:
如果 left 和 right 在所提供 epsilon 范围内则为
true,否则为 false。
返回以 (x, y, z, w) 格式表示此四元数的字符串。
Returns:
表示此 Quaternion 的字符串。
