一组四维坐标,用来表示三维空间中的旋转。
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)的不可变四元数实例。
用于将对象以可插值形式存储到数组中的元素数。
用于将对象打包到数组中的元素数。
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:
修改后的结果参数或新的四元数实例(如果未提供)。(如果四元数未定义,则返回未定义)
计算提供的四元数的旋转角度。
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
计算内部四边形点。
This will compute quaternions that ensure a squad curve is C1.
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
|
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:
修改后的结果参数。
计算两个四元数的点(标量)积。
Name | Type | Description |
---|---|---|
left |
Quaternion | 第一个四元数。 |
right |
Quaternion | 第二个四元数。 |
Returns:
点积。
比较提供的四元数组件并返回
如果相等,则为
true
,否则为false
。Name | Type | Description |
---|---|---|
left |
Quaternion | optional 第一个四元数。 |
right |
Quaternion | optional 第二个四元数。 |
Returns:
如果左右相等,则为
true
,否则为false
。比较提供的四元数组件并返回
true
如果它们在规定的epsilon范围内,
false
否则。Name | Type | Default | Description |
---|---|---|---|
left |
Quaternion | optional 第一个四元数。 | |
right |
Quaternion | optional 第二个四元数。 | |
epsilon |
Number |
0
|
optional 用于相等性测试的epsilon。 |
Returns:
true
如果左、右在规定的epsilon范围内,则为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 | optional 要将结果存储到的对象。 |
Returns:
修改后的结果参数或新的四元数实例(如果未提供)。
static Cesium.Quaternion.fromHeadingPitchRoll(headingPitchRoll, result) → Quaternion
从给定的航向、俯仰角和横摇角计算旋转。航向是围绕
负z轴。俯仰是关于负y轴的旋转。滚动是指
正x轴。
Name | Type | Description |
---|---|---|
headingPitchRoll |
HeadingPitchRoll | 旋转表示为前进方向、俯仰和滚动。 |
result |
Quaternion | optional 要将结果存储到的对象。 |
Returns:
修改后的结果参数或新的四元数实例(如果未提供)。
static Cesium.Quaternion.fromRotationMatrix(matrix, result) → Quaternion
从提供的Matrix3实例计算四元数。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 旋转矩阵。 |
result |
Quaternion | optional 要将结果存储到的对象。 |
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
|
optional 数组中开始打包元素的索引。 |
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
var s0 = Cesium.Quaternion.computeInnerQuadrangle(quaternions[i - 1], quaternions[i], quaternions[i + 1], new Cesium.Quaternion());
var s1 = Cesium.Quaternion.computeInnerQuadrangle(quaternions[i], quaternions[i + 1], quaternions[i + 2], new Cesium.Quaternion());
var 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.
var s1 = Cesium.Quaternion.computeInnerQuadrangle(quaternions[0], quaternions[1], quaternions[2], new Cesium.Quaternion());
var 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
|
optional 要解包的元素的起始索引。 |
result |
Quaternion | optional 要将结果存储到其中的对象。 |
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
|
optional 用于转换数组的第一个索引。 |
lastIndex |
Number |
packedArray.length
|
optional 用于转换数组的最后一个索引。 |
result |
Quaternion | optional 要将结果存储到其中的对象。 |
Returns:
修改后的结果参数或新的四元数实例(如果未提供)。
clone(result) → Quaternion
复制此四元数实例。
Name | Type | Description |
---|---|---|
result |
Quaternion | optional 要将结果存储到的对象。 |
Returns:
修改后的结果参数或新的四元数实例(如果未提供)。
将其与提供的四元数组件进行比较,然后返回
如果相等,则为
true
,否则为false
。Name | Type | Description |
---|---|---|
right |
Quaternion | optional 右手边的四元数。 |
Returns:
如果左右相等,则为
true
,否则为false
。将其与提供的四元数组件进行比较,然后返回
true
如果它们在规定的epsilon范围内,
false
否则。Name | Type | Default | Description |
---|---|---|---|
right |
Quaternion | optional 右手边的四元数。 | |
epsilon |
Number |
0
|
optional 用于相等性测试的epsilon。 |
Returns:
true
如果左、右在规定的epsilon范围内,则为false
。以(x,y,z,w)格式返回表示此四元数的字符串。
Returns:
表示此四元数的字符串。