new Quaternion(x, y, z, w)
用来表示三维空间中旋转的一组四维坐标。
| Name | Type | Default | Description |
|---|---|---|---|
x |
Number | 0.0 |
可选
X部分。 |
y |
Number | 0.0 |
可选
Y部分。 |
z |
Number | 0.0 |
可选
Z部分。 |
w |
Number | 0.0 |
可选
W部分。 |
- See:
-
- PackableForInterpolation
Members
-
(static, constant) IDENTITYQuaternion
-
初始化为 (0.0, 0.0, 0.0, 1.0) 的不可变四元数实例。
-
static packedInterpolationLengthNumber
-
用于将对象以可插值形式存储到数组中的元素数量。
-
static packedLengthNumber
-
用于将对象打包到数组中的元素个数。
-
(static, constant) ZEROQuaternion
-
初始化为(0.0,0.0,0.0,0.0)的不可变四元数实例。
-
wNumber
-
W部分。
- Default Value: 0.0
xNumber
X部分。
- Default Value: 0.0
yNumber
Y部分。
- Default Value: 0.0
zNumber
Z部分。
- Default Value: 0.0
Methods
-
static add(left, right, result){Quaternion}
-
计算两个四元数的分量和。
Name Type Description leftQuaternion 第一个四元数。
rightQuaternion 第二个四元数。
resultQuaternion 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数。 -
static clone(quaternion, result){Quaternion}
-
复制四元数实例。
Name Type Description quaternionQuaternion 要复制的四元数。
resultQuaternion 可选 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数,或一个新的四元数实例(如果没有提供四元数实例)。(如果四元数未定义,则返回未定义)。 -
static computeAngle(quaternion){Number}
-
计算所提供的四元数的旋转角度。
Name Type Description quaternionQuaternion 要使用的四元数。
Returns:
Type Description Number 旋转角度。 -
static computeAxis(quaternion, result){Cartesian3}
-
计算所提供四元数的旋转轴。
Name Type Description quaternionQuaternion 要使用的四元数。
resultCartesian3 存储结果的对象。
Returns:
Type Description Cartesian3 修改后的结果参数。 -
static computeInnerQuadrangle(q0, q1, q2, result){Quaternion}
-
计算一个内四边形点。这将计算四元数,确保阵容曲线为C1。
Name Type Description q0Quaternion 第一个四元数。
q1Quaternion 第二个四元数。
q2Quaternion 第三个四元数。
resultQuaternion 存储结果的对象。
- See:
-
- Quaternion#squad
Returns:
Type Description Quaternion 修改后的结果参数。 -
static conjugate(quaternion, result){Quaternion}
-
计算所提供四元数的共轭数。
Name Type Description quaternionQuaternion 用于共轭的四元数。
resultQuaternion 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数。 -
static convertPackedArrayForInterpolation(packedArray, startingIndex, lastIndex, result)
-
将打包数组转换为适合插值的形式。
Name Type Default Description packedArrayArray.<Number> 打包数组。
startingIndexNumber 0 可选 要转换的第一个元素的索引。
lastIndexNumber packedArray.length 可选 最后一个要转换的元素的索引。
resultArray.<Number> 要在其中存储结果的对象。
-
static divideByScalar(quaternion, scalar, result){Quaternion}
-
用所提供的标量分量除以所提供的四元数。
Name Type Description quaternionQuaternion 要被分割的四元数。
scalarNumber 要被除以的标量。
resultQuaternion 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数。 -
static dot(left, right){Number}
-
计算两个四元数的点(标量)乘积。
Name Type Description leftQuaternion 第一个四元数。
rightQuaternion 第二个四元数。
Returns:
Type Description Number 点积。 -
static equals(left, right){Boolean}
-
比较所提供的四元数的分量,如果相等则返回 true,否则返回 false。
Name Type Description leftQuaternion 可选 第一个四元数。
rightQuaternion 可选 第二个四元数。
Returns:
Type Description Boolean 如果相等,则为True,否则为false。 -
static equalsEpsilon(left, right, epsilon){Boolean}
-
比较所提供的四元数的分量,如果在所提供的ε范围内,则返回 true,否则返回 false。
Name Type Description leftQuaternion 可选 第一个四元数。
rightQuaternion 可选 第二个四元数。
epsilonNumber 用于等式测试的容差值。
Returns:
Type Description Boolean 如果在提供的容差范围内,则为true;否则为false。 -
static exp(cartesian, result){Quaternion}
-
指数四元数函数。
Name Type Description cartesianCartesian3 cartesian。
resultQuaternion 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数。 -
static fastSlerp(start, end, t, result){Quaternion}
-
使用提供的四元数在t处计算球面线性插值或外推。这个实现比
Quaternion#slerp快,但只能精确到10-6。Name Type Description startQuaternion 对应于t在0.0处的值。
endQuaternion 对应于1.0时t的值。
tNumber 沿着t进行插值的点。
resultQuaternion 存储结果的对象。
- See:
-
- Quaternion#slerp
Returns:
Type Description Quaternion 修改后的结果参数。 -
static fastSquad(q0, q1, s0, s1, t, result){Quaternion}
-
计算四元数之间的球面四边形插值。一个比
Quaternion#squad更快的实现,但不太准确。Name Type Description q0Quaternion 第一个四元数。
q1Quaternion 第二个四元数。
s0Quaternion 第一个内四边形。
s1Quaternion 第二个内四边形。
tNumber 在[0,1]中用来插值的时间。
resultQuaternion 存储结果的对象。
- See:
-
- Quaternion#squad
Returns:
Type Description Quaternion 修改后的结果参数,如果没有提供,则为新实例。 -
static fromAxisAngle(axis, angle, result){Quaternion}
-
计算代表绕轴旋转的四元数。
Name Type Description axisCartesian3 旋转轴。
angleNumber 绕轴旋转的角度(以弧度为单位)。
resultQuaternion 可选 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数,或者一个新的四元数实例(如果没有提供)。 -
static fromHeadingPitchRoll(headingPitchRoll, result){Quaternion}
-
根据给定的方位角、俯仰角和滚转角计算旋转角度。方位角是绕负 Z 轴的旋转。俯仰角是绕负 y 轴的旋转角度。滚转是绕正 x 轴的旋转。
Name Type Description headingPitchRollHeadingPitchRoll 以方位、俯仰和滚动表示的旋转。
resultQuaternion 可选 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数,或者一个新的四元数实例(如果没有提供)。 -
static fromRotationMatrix(matrix, result){Quaternion}
-
根据提供的 Matrix3 实例计算四元数。
Name Type Description matrixMatrix3 旋转矩阵
resultQuaternion 可选 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数,或者一个新的四元数实例(如果没有提供)。 -
static inverse(quaternion, result){Quaternion}
-
计算所提供的四元数的逆。
Name Type Description quaternionQuaternion 要标准化的四元数。
resultQuaternion 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数。 -
static lerp(start, end, t, result){Quaternion}
-
使用提供的四元数计算 t 处的线性插值或外推值。
Name Type Description startQuaternion t 在 0.0 时对应的值。
endQuaternion t 为 1.0 时对应的值。
tNumber 沿 t 插值的点。
resultQuaternion 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数。 -
static log(quaternion, result){Cartesian3}
-
对数四元数函数。
Name Type Description quaternionQuaternion 单位四元数。
resultCartesian3 存储结果的对象。
Returns:
Type Description Cartesian3 修改后的结果参数。 -
static magnitude(quaternion){Number}
-
计算所提供的四元数的幅度。
Name Type Description quaternionQuaternion 要进行共轭的四元数。
Returns:
Type Description Number The magnitude. -
static magnitudeSquared(quaternion){Number}
-
计算所提供四元数的幅度平方。
Name Type Description quaternionQuaternion 要进行共轭的四元数。
Returns:
Type Description Number 幅度的平方。 -
static multiply(left, right, result){Quaternion}
-
计算两个四元数的乘积。
Name Type Description leftQuaternion 第一个四元数。
rightQuaternion 第二个四元数。
resultQuaternion 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数。 -
static multiplyByScalar(quaternion, scalar, result){Quaternion}
-
将所提供的四元数与所提供的标量进行分量相乘。
Name Type Description quaternionQuaternion 要缩放的四元数。
scalarNumber 要与之相乘的标量。
resultQuaternion 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数。 -
static negate(quaternion, result){Quaternion}
-
否定所提供的四元数。
Name Type Description quaternionQuaternion 要否定的四元数。
resultQuaternion 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数。 -
static normalize(quaternion, result){Quaternion}
-
计算所提供四元数的规范化形式。
Name Type Description quaternionQuaternion 要标准化的四元数。
resultQuaternion 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数。 -
static pack(value, array, startingIndex){Array.<Number>}
-
将提供的实例存储到提供的数组中。
Name Type Default Description valueQuaternion 要打包的值。
arrayArray.<Number> 要装入的数组。
startingIndexNumber 0 可选 开始打包元素的数组索引。
Returns:
Type Description Array.<Number> 被装入的数组。 -
static slerp(start, end, t, result){Quaternion}
-
使用提供的四元数计算 t 处的球面线性内插法或外推法。
Name Type Description startQuaternion t 在 0.0 时对应的值。
endQuaternion t 为 1.0 时对应的值。
tNumber 沿 t 插值的点。
resultQuaternion 存储结果的对象。
- See:
-
- Quaternion#fastSlerp
Returns:
Type Description Quaternion 修改后的结果参数。 -
static squad(q0, q1, s0, s1, t, result){Quaternion}
-
计算四元数之间的球面四元插值。
Name Type Description q0Quaternion 第一个四元数。
q1Quaternion 第二个四元数。
s0Quaternion 第一个内四边形。
s1Quaternion 第二个内四边形。
tNumber 在[0,1]中用来插值的时间。
resultQuaternion 存储结果的对象。
- See:
-
- Quaternion#computeInnerQuadrangle
Returns:
Type Description Quaternion 修改后的结果参数。 Example
// 1. compute the squad interpolation between two quaternions on a curve var s0 = SuperMap3D.Quaternion.computeInnerQuadrangle(quaternions[i - 1], quaternions[i], quaternions[i + 1], new SuperMap3D.Quaternion()); var s1 = SuperMap3D.Quaternion.computeInnerQuadrangle(quaternions[i], quaternions[i + 1], quaternions[i + 2], new SuperMap3D.Quaternion()); var q = SuperMap3D.Quaternion.squad(quaternions[i], quaternions[i + 1], s0, s1, t, new SuperMap3D.Quaternion()); // 2. compute the squad interpolation as above but where the first quaternion is a end point. var s1 = SuperMap3D.Quaternion.computeInnerQuadrangle(quaternions[0], quaternions[1], quaternions[2], new SuperMap3D.Quaternion()); var q = SuperMap3D.Quaternion.squad(quaternions[0], quaternions[1], quaternions[0], s1, t, new SuperMap3D.Quaternion()); -
static subtract(left, right, result){Quaternion}
-
计算两个四元数的分量差。
Name Type Description leftQuaternion 第一个四元数。
rightQuaternion 第二个四元数。
resultQuaternion 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数。 -
static unpack(array, startingIndex, result){Quaternion}
-
从打包数组中检索实例。
Name Type Default Description arrayArray.<Number> 打包数组。
startingIndexNumber 0 可选 要解压缩的元素的起始索引。
resultQuaternion 可选 要在其中存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数或新的Quaternion实例(如果没有提供)。 -
static unpackInterpolationResult(array, sourceArray, firstIndex, lastIndex, result){Quaternion}
-
从使用
convertPackedArrayForInterpolation转换的打包数组中读取实例。Name Type Default Description arrayArray.<Number> 之前打包用于插值的数组。
sourceArrayArray.<Number> 原始的打包阵列。
firstIndexNumber 0 可选 转换数组时使用的 firstIndex。
lastIndexNumber packedArray.length 可选 用于转换数组的最后一个索引。
resultQuaternion 可选 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数,或者一个新的四元数实例(如果没有提供)。 -
clone(result){Quaternion}
-
复制此四元数实例。
Name Type Description resultQuaternion 可选 存储结果的对象。
Returns:
Type Description Quaternion 修改后的结果参数,或者一个新的四元数实例(如果没有提供)。 -
equals(right){Boolean}
-
比较此四元数和提供的四元数的分量,如果相等则返回 true,否则返回 false。
Name Type Description rightQuaternion 可选 右侧的四元数。
Returns:
Type Description Boolean 如果相等,则为True,否则为false。 -
equalsEpsilon(right, epsilon){Boolean}
-
比较此四元数和提供的四元数的分量,如果在提供的容差范围内,则返回 true,否则返回 false。
Name Type Description rightQuaternion 可选 右侧的四元数。
epsilonNumber 用于等式测试的容差值。
Returns:
Type Description Boolean 如果在提供的容差范围内,则为true;否则为false。 -
toString(){String}
-
以格式(x, y, z, w)返回表示此四元数的字符串。
Returns:
Type Description String 表示此四元数的字符串。