Quaternion

new Cesium.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

static constant Cesium.Quaternion.IDENTITY : Quaternion

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

static Cesium.Quaternion.packedInterpolationLength : number

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

static Cesium.Quaternion.packedLength : number

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

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 optional 存储结果的对象。
Returns:
修改后的结果参数或如果未提供结果参数则返回的新 Quaternion 实例。(如果 quaternion 为 undefined,则返回 undefined)

static Cesium.Quaternion.computeAngle(quaternion)number

计算提供的四元数的旋转角度。
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

计算内四边形点。

这将计算确保四元曲线是 C1 的四元数。

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

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

static Cesium.Quaternion.dot(left, right)number

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

static Cesium.Quaternion.equals(left, right)boolean

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

static Cesium.Quaternion.equalsEpsilon(left, right, epsilon)boolean

按分量比较提供的四元数并返回 true 如果它们在提供的 epsilon 范围内, false 则返回其他情况。
Name Type Default Description
left Quaternion optional 第一个四元数。
right Quaternion optional 第二个四元数。
epsilon number 0 optional 用于相等测试的 epsilon 值。
Returns:
如果左侧和右侧在提供的 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 t 在 0.0 时对应的值。
end Quaternion t 为 1.0 时对应的值。
t number 沿 t 进行插值的点。
result Quaternion 存储结果的对象。
Returns:
修改后的结果参数。
See:
  • Quaternion#slerp

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:
修改后的结果参数或如果未提供结果参数则返回的新实例。
See:
  • Quaternion#squad

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

计算表示绕轴旋转的四元数。
Name Type Description
axis Cartesian3 旋转轴。
angle number 绕轴旋转的角度(以弧度为单位)。
result Quaternion optional 存储结果的对象。
Returns:
修改后的结果参数或如果未提供结果参数则返回的新 Quaternion 实例。

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

根据给定的航向、俯仰和滚动角度计算旋转。航向是关于负 z 轴的旋转。俯仰是关于负 y 轴的旋转。滚动是关于正 x 轴的旋转。
Name Type Description
headingPitchRoll HeadingPitchRoll 以航向、俯仰和滚动表示的旋转。
result Quaternion optional 存储结果的对象。
Returns:
修改后的结果参数或如果未提供结果参数则返回的新 Quaternion 实例。

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

从提供的 Matrix3 实例计算出一个四元数。
Name Type Description
matrix Matrix3 旋转矩阵。
result Quaternion optional 存储结果的对象。
Returns:
修改后的结果参数或如果未提供结果参数则返回的新 Quaternion 实例。
See:

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 t 在 0.0 时对应的值。
end Quaternion t 为 1.0 时对应的值。
t number 沿 t 进行插值的点。
result Quaternion 存储结果的对象。
Returns:
修改后的结果参数。

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

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

static Cesium.Quaternion.magnitude(quaternion)number

计算提供的四元数的量级。
Name Type Description
quaternion Quaternion 要计算量级的四元数。
Returns:
量级。

static Cesium.Quaternion.magnitudeSquared(quaternion)number

计算提供的四元数的平方幅度。
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:
修改后的结果参数。

static Cesium.Quaternion.pack(value, array, startingIndex)Array.<number>

将提供的实例存储到提供的数组中.
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:
修改后的结果参数。
See:
  • Quaternion#fastSlerp

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:
修改后的结果参数。
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:
  • Quaternion#computeInnerQuadrangle

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 optional 需要解包的元素的起始索引。
result Quaternion optional 存储结果的对象。
Returns:
修改后的结果参数或如果未提供结果参数则返回的新 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:
修改后的结果参数或如果未提供结果参数则返回的新 Quaternion 实例。
复制此四元数实例。
Name Type Description
result Quaternion optional 存储结果的对象。
Returns:
修改后的结果参数或如果未提供结果参数则返回的新 Quaternion 实例。

equals(right)boolean

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

equalsEpsilon(right, epsilon)boolean

按分量比较此四元数与提供的四元数并返回 true 如果它们在提供的 epsilon 范围内, false 则返回其他情况。
Name Type Default Description
right Quaternion optional 右侧四元数。
epsilon number 0 optional 用于相等测试的 epsilon 值。
Returns:
如果左侧和右侧在提供的 epsilon 范围内,则返回 true;否则返回 false
返回一个表示此四元数的字符串,格式为 (x, y, z, w)。
Returns:
表示此四元数的字符串。
需要帮助?获得答案的最快方法是来自社区和团队 Cesium Forum.