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分量。 |
成员变量
初始化为(0.0,0.0,0.0,1.0)的不可变四元数实例。
用于将对象以可插值(interpolatable)形式存储到数组中的元素数。
用于将对象打包成数组的元素数。
初始化为(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
内置方法
计算两个四元数的分量和。
Name | Type | Description |
---|---|---|
left |
Quaternion | 第一个四元数。 |
right |
Quaternion | 第二个四元数。 |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数。
复制四元数实例。
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | 要复制的四元数。 |
result |
Quaternion | optional 存储结果的对象。 |
返回值:
修改后的结果参数,如果没有提供,则创建一个新的四元数实例。(如果四元数未定义,则返回undefined。)
计算所提供的四元数的旋转角度。
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | 要使用的四元数。 |
返回值:
旋转的角度。
计算所提供的四元数的旋转轴。
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | 要使用的四元数。 |
result |
Cartesian3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
计算一个内四边形点。
这将计算四元数,以确保一个小队曲线(squad curve)是C1。
Name | Type | Description |
---|---|---|
q0 |
Quaternion | 第一个四元数。 |
q1 |
Quaternion | 第二个四元数。 |
q2 |
Quaternion | 第三个四元数。 |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数。
- Quaternion#squad
参考:
计算所提供的四元数的结合(conjugate)。
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | 要结合的四元数。 |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数。
staticCesium.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> | 存储结果的对象。 |
将提供的四元数按分量方式除以提供的标量。
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | 要被除的四元数。 |
scalar |
Number | 要除以的标量。 |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数。
计算两个四元数的点(标量)积。
Name | Type | Description |
---|---|---|
left |
Quaternion | 第一个四元数。 |
right |
Quaternion | 第二个四元数。 |
返回值:
点积。
比较所提供的四元数组件,如果相等,则返回
true
,否则返回false
。
Name | Type | Description |
---|---|---|
left |
Quaternion | optional 第一个四元数。 |
right |
Quaternion | optional 第二个四元数。 |
返回值:
如果两个四元数相等,则为
true
;否则false
。
比较所提供的四元数组件,如果它们在所提供的epsilon内,则返回
true
,否则返回false
。
Name | Type | Description |
---|---|---|
left |
Quaternion | optional 第一个四元数。 |
right |
Quaternion | optional 第二个四元数。 |
epsilon |
Number | 用于等式检验的epsilon。 |
返回值:
如果两个四元数都在给定的epsilon范围内,
true
;否则false
。
指数四元数函数。
Name | Type | Description |
---|---|---|
cartesian |
Cartesian3 | 笛卡儿坐标。 |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数。
使用提供的四元数计算t处的球面线性插值或外插值(extrapolation)。
这个实现比
Quaternion#slerp
要快,但是只能精确到10-6。
Name | Type | Description |
---|---|---|
start |
Quaternion | 对应于0.0的t值。 |
end |
Quaternion | 对应于1.0的t值。 |
t |
Number | 在t上做插值的点。 |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数。
- Quaternion#slerp
参考:
计算四元数之间的球面四边形插值。
一个比
Quaternion#squad
快,但是不那么精确的实现。
Name | Type | Description |
---|---|---|
q0 |
Quaternion | 第一个四元数。 |
q1 |
Quaternion | 第二个四元数。 |
s0 |
Quaternion | 第一个内四边形。 |
s1 |
Quaternion | 第二个内四边形。 |
t |
Number | 在[0,1]中用来插值的时间。 |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数或新实例(如果没有提供)。
- Quaternion#squad
参考:
计算表示绕轴旋转的四元数。
Name | Type | Description |
---|---|---|
axis |
Cartesian3 | 旋转轴 |
angle |
Number | 绕轴旋转的角度(以弧度为单位)。 |
result |
Quaternion | optional 存储结果的对象。 |
返回值:
修改后的结果参数,如果没有提供,则创建一个新的四元数实例。
从给定的偏航角(heading),俯仰角(pitch)和翻滚角(roll)计算一个旋转。
偏航是绕z轴负方向旋转。俯仰是绕y轴负方向旋转。翻滚是绕x轴正方向旋转。
Name | Type | Description |
---|---|---|
headingPitchRoll |
HeadingPitchRoll | 以偏航、俯仰和翻滚表示的旋转。 |
result |
Quaternion | optional 存储结果的对象。 |
返回值:
修改后的结果参数,如果没有提供,则创建一个新的四元数实例。
从提供的Matrix3实例计算四元数。
Name | Type | Description |
---|---|---|
matrix |
Matrix3 | 旋转矩阵。 |
result |
Quaternion | optional 存储结果的对象。 |
返回值:
修改后的结果参数,如果没有提供,则创建一个新的四元数实例。
计算所提供的四元数的倒数。
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | 要求倒数的四元数。 |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数。
使用提供的四元数计算t处的线性插值或外插值(extrapolation)。
Name | Type | Description |
---|---|---|
start |
Quaternion | 对应于0.0的t值。 |
end |
Quaternion | 对应于1.0的t值。 |
t |
Number | 在t上做插值的点。 |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数。
对数四元数函数。
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | 单位四元数。 |
result |
Cartesian3 | 存储结果的对象。 |
返回值:
修改后的结果参数。
为提供的四元数计算大小(magnitude)。
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | 要结合的(conjugate)四元数。 |
返回值:
大小(magnitude)
为提供的四元数计算大小的(magnitude)平方。
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | 要结合的(conjugate)四元数。 |
返回值:
大小的平方。
计算两个四元数的积。
Name | Type | Description |
---|---|---|
left |
Quaternion | 第一个四元数。 |
right |
Quaternion | 第二个四元数。 |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数。
将提供的四元数按分量方式乘以提供的标量。
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | 要缩放的四元数。 |
scalar要乘以的标量。 |
Number | |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数。
否定所提供的四元数。
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | 要否定的四元数。 |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数。
计算提供的四元数的规范化形式。
Name | Type | Description |
---|---|---|
quaternion |
Quaternion | 归范化的四元数。 |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数。
将提供的实例存储到提供的数组中。
Name | Type | Default | Description |
---|---|---|---|
value |
Quaternion | 要包装的值。 | |
array |
Array.<Number> | 要被包装到的数组。 | |
startingIndex |
Number |
0
|
optional 开始包装元素的数组索引。 |
返回值:
被包装到的数组。
使用提供的四元数计算t处的球面线性插值或外插值(extrapolation)。
Name | Type | Description |
---|---|---|
start |
Quaternion | 对应于0.0的t值。 |
end |
Quaternion | 对应于1.0的t值。 |
t |
Number | 在t上做插值的点。 |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数。
- Quaternion#fastSlerp
参考:
计算四元数之间的球面四边形插值。
Name | Type | Description |
---|---|---|
q0 |
Quaternion | 第一个四元数。 |
q1 |
Quaternion | 第二个四元数。 |
s0 |
Quaternion | 第一个内四边形。 |
s1 |
Quaternion | 第二个内四边形。 |
t |
Number | 在t上做插值的点。 |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数。
- Quaternion#computeInnerQuadrangle
示例:
// 1. 计算曲线上两个四元数之间的小队插值(squad interpolation)。
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. 像上面那样计算小队内插(quad interpolation),但是第一个四元数是一个终点。
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());
参考:
计算两个四元数的分量差。
Name | Type | Description |
---|---|---|
left |
Quaternion | 第一个四元数。 |
right |
Quaternion | 第二个四元数。 |
result |
Quaternion | 存储结果的对象。 |
返回值:
修改后的结果参数。
从已打包的数组中检索实例。
Name | Type | Default | Description |
---|---|---|---|
array |
Array.<Number> | 打包的数组。 | |
startingIndex |
Number |
0
|
optional 要解包的元素的起始索引。 |
result |
Quaternion | optional 存储结果的对象。 |
返回值:
修改后的结果参数,如果没有提供,则创建一个新的四元数实例。
staticCesium.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 存储结果的对象。 |
返回值:
修改后的结果参数,如果没有提供,则创建一个新的四元数实例。
复制此四元数实例。
Name | Type | Description |
---|---|---|
result |
Quaternion | optional 存储结果的对象。 |
返回值:
修改后的结果参数,如果没有提供,则创建一个新的四元数实例。
将其与提供的四元数组件进行比较,如果相等,则返回
true
,否则返回false
。
Name | Type | Description |
---|---|---|
right |
Quaternion | optional 要进行比较的四元数。 |
返回值:
如果两个四元数相等,则为
true
;否则false
。
将其与提供的四元数分量进行比较,如果在提供的epsilon范围内,则返回
true
,否则返回false
。
Name | Type | Description |
---|---|---|
right |
Quaternion | optional 要进行比较的四元数。 |
epsilon |
Number | 用于等式检验的epsilon。 |
返回值:
如果两个四元数都在给定的epsilon范围内,
true
;否则false
。
以格式(x, y, z, w)返回表示此四元数的字符串。
返回值:
表示这个四元数的字符串。