Class: Quaternion
四元数用于表示旋转。
Properties
Constructors
Methods
- identity
- set
- divide
- multiply
- multiplyVector
- fromAxisAngle
- toAxisAngle
- slerp
- lerp
- fromEulerAngles
- toEulerAngles
- setFromRotationMatrix
- getEulerAngles
- normalize
- toString
- fromMatrix
- inverse
- clone
- transformVector
- copyFrom
- mul
- quaternionToMatrix
Accessors
Properties
HELP_0
▪ Static
HELP_0: Quaternion
Defined in
src/engine/math/Quaternion.ts:9
HELP_1
▪ Static
HELP_1: Quaternion
Defined in
src/engine/math/Quaternion.ts:10
HELP_2
▪ Static
HELP_2: Quaternion
Defined in
src/engine/math/Quaternion.ts:11
_zero
▪ Static
_zero: Quaternion
Defined in
src/engine/math/Quaternion.ts:12
CALCULATION_QUATERNION
▪ Static
CALCULATION_QUATERNION: Quaternion
Defined in
src/engine/math/Quaternion.ts:13
Constructors
constructor
• new Quaternion(x?
, y?
, z?
, w?
)
创建一个新的四元素对象
Parameters
Name | Type | Default value | Description |
---|---|---|---|
x | number | 0 | 四元数的 X 分量。请勿直接修改四元数。 |
y | number | 0 | 四元数的 y 分量。请勿直接修改四元数。 |
z | number | 0 | 四元数的 z 分量。请勿直接修改四元数。 |
w | number | 1 | 四元数的 w 分量。请勿直接修改四元数。 |
Defined in
src/engine/math/Quaternion.ts:38
Methods
identity
▸ Static
identity(): Quaternion
单位旋转。
Returns
Defined in
src/engine/math/Quaternion.ts:49
set
▸ set(x?
, y?
, z?
, w?
): void
设置现有四元数的 x、y、z 和 w 分量。
Parameters
Name | Type | Default value | Description |
---|---|---|---|
x | number | 0 | 四元数的 X 分量。请勿直接修改四元数。 |
y | number | 0 | 四元数的 y 分量。请勿直接修改四元数。 |
z | number | 0 | 四元数的 z 分量。请勿直接修改四元数。 |
w | number | 1 | 四元数的 w 分量。请勿直接修改四元数。 |
Returns
void
Defined in
src/engine/math/Quaternion.ts:64
divide
▸ divide(v
): Quaternion
Parameters
Name | Type |
---|---|
v | any |
Returns
Defined in
src/engine/math/Quaternion.ts:71
multiply
▸ multiply(qa
, qb
): void
两个四元素相乘
Parameters
Name | Type | Description |
---|---|---|
qa | Quaternion | 四元数1 |
qb | Quaternion | 四元数2 |
Returns
void
Defined in
src/engine/math/Quaternion.ts:97
multiplyVector
▸ multiplyVector(vector
, target?
): Quaternion
Parameters
Name | Type | Default value |
---|---|---|
vector | Vector3 | undefined |
target | Quaternion | null |
Returns
Defined in
src/engine/math/Quaternion.ts:113
fromAxisAngle
▸ fromAxisAngle(axis
, angle
): void
从由轴和角度所给定的旋转来设置该四元数。
Parameters
Name | Type | Description |
---|---|---|
axis | Vector3 | 轴 |
angle | number | 弧度 |
Returns
void
Defined in
src/engine/math/Quaternion.ts:135
toAxisAngle
▸ toAxisAngle(axis
): number
把四元数转成角度返回
Parameters
Name | Type | Description |
---|---|---|
axis | Vector3 | 指定轴 |
Returns
number
Defined in
src/engine/math/Quaternion.ts:153
slerp
▸ slerp(qa
, qb
, t
): void
两个四元数之间球形插值,插值之间提供旋转恒定角变化率。
Parameters
Name | Type | Description |
---|---|---|
qa | Quaternion | 四元数1 |
qb | Quaternion | 四元数2 |
t | number | 插值时刻 |
Returns
void
Defined in
src/engine/math/Quaternion.ts:187
lerp
▸ lerp(qa
, qb
, t
): void
两个四元数之间的线性插值
Parameters
Name | Type | Description |
---|---|---|
qa | Quaternion | 四元数1 |
qb | Quaternion | 四元数2 |
t | number | 插值时刻 |
Returns
void
Defined in
src/engine/math/Quaternion.ts:247
fromEulerAngles
▸ fromEulerAngles(ax
, ay
, az
): Quaternion
用数值表示给定的欧拉旋转填充四元数对象。
Parameters
Name | Type | Description |
---|---|---|
ax | number | x轴旋转角度 |
ay | number | y轴旋转角度 |
az | number | z轴旋转角度 |
Returns
Quaternion 四元数对象
Defined in
src/engine/math/Quaternion.ts:296
toEulerAngles
▸ toEulerAngles(target?
): Vector3
把四元数转成欧拉角返回
Retruns
Vector3D 转成的欧拉返回值
Parameters
Name | Type | Default value | Description |
---|---|---|---|
target | Vector3 | null | 默认参数为null,转成的欧拉返回值,如果为null就新建一个对象返回 |
Returns
Defined in
src/engine/math/Quaternion.ts:333
setFromRotationMatrix
▸ setFromRotationMatrix(m
): Quaternion
创建一个旋转
Parameters
Name | Type |
---|---|
m | any |
Returns
Defined in
src/engine/math/Quaternion.ts:365
getEulerAngles
▸ getEulerAngles(eulers?
): Vector3
返回一个旋转
Parameters
Name | Type |
---|---|
eulers? | Vector3 |
Returns
Defined in
src/engine/math/Quaternion.ts:416
normalize
▸ normalize(val?
): void
单位化四元数。将此四元数转换为单位系数。
Parameters
Name | Type | Default value | Description |
---|---|---|---|
val | number | 1 | 单位系数,默认为1 |
Returns
void
Defined in
src/engine/math/Quaternion.ts:448
toString
▸ toString(): string
以字符串形式返回四元数的值
Returns
string
Defined in
src/engine/math/Quaternion.ts:461
fromMatrix
▸ fromMatrix(matrix
): void
用一个旋转矩阵生成四元数
Parameters
Name | Type | Description |
---|---|---|
matrix | any | 旋转矩阵 |
Returns
void
Defined in
src/engine/math/Quaternion.ts:524
inverse
▸ inverse(target?
): Quaternion
返回一个把当前四元数取逆后的四元数
Parameters
Name | Type | Default value | Description |
---|---|---|---|
target | Quaternion | null | 默认参数为null,如果当前参数为null那么就会new一个新的四元数对象返回 |
Returns
Quaternion 四元数
Defined in
src/engine/math/Quaternion.ts:539
clone
▸ clone(): Quaternion
克隆一个四元数
Returns
Quaternion 当前四元数复制后返回新对象.
Defined in
src/engine/math/Quaternion.ts:568
transformVector
▸ transformVector(vector
, target?
): Vector3
旋转一个3量坐标点
Parameters
Name | Type | Default value | Description |
---|---|---|---|
vector | Vector3 | undefined | 被旋转的对象 |
target | Vector3 | null | 默认参数为null,旋转后的坐标对象。如果为null,将创建一个新的对象 |
Returns
Vector3D 返回旋转后的坐标对象
Defined in
src/engine/math/Quaternion.ts:587
copyFrom
▸ copyFrom(q
): void
将数据从四元数复制到该实例
Parameters
Name | Type | Description |
---|---|---|
q | Vector3 | Quaternion | 被复制的四元数对象 |
Returns
void
Defined in
src/engine/math/Quaternion.ts:620
mul
▸ mul(lhs
, rhs
, target?
): Quaternion
from untiy API op
Parameters
Name | Type |
---|---|
lhs | Quaternion |
rhs | Quaternion |
target? | Quaternion |
Returns
Defined in
src/engine/math/Quaternion.ts:632
quaternionToMatrix
▸ Static
quaternionToMatrix(q
, m
): void
将四元素转换为矩阵
Parameters
Name | Type | Description |
---|---|---|
q | Quaternion | 四元素对象 |
m | any | 矩阵 |
Returns
void
Defined in
src/engine/math/Quaternion.ts:646
Accessors
magnitude
• get
magnitude(): number
Returns
number