AABB
AlignmentBehavior
ArriveBehavior
AStar
BFS
BoundingSphere
BVH
BVHNode
Cell
CellSpacePartitioning
CohesionBehavior
CompositeGoal
ConvexHull
Corridor
CostTable
DFS
Dijkstra
Edge
EntityManager
EvadeBehavior
EventDispatcher
Behavior
FollowPathBehavior
FuzzyAND
FuzzyCompositeTerm
FuzzyFAIRLY
FuzzyModule
FuzzyOR
FuzzyRule
FuzzySet
FuzzyTerm
FuzzyVariable
FuzzyVERY
GameEntity
Goal
GoalEvaluator
Graph
GraphUtils
HalfEdge
HeuristicPolicyDijkstra
HeuristicPolicyEuclid
HeuristicPolicyEuclidSquared
HeuristicPolicyManhattan
InterposeBehavior
LeftSCurveFuzzySet
LeftShoulderFuzzySet
LineSegment
Logger
MathUtils
Matrix3
Matrix4
MemoryRecord
MemorySystem
MeshGeometry
MessageDispatcher
MovingEntity
NavEdge
NavMesh
NavMeshLoader
NavNode
Node
NormalDistFuzzySet
OBB
ObstacleAvoidanceBehavior
OffsetPursuitBehavior
OnPathBehavior
Path
Plane
Polygon
Polyhedron
PriorityQueue
PursuitBehavior
Quaternion
Ray
RectangleTriggerRegion
Regular
RightSCurveFuzzySet
RightShoulderFuzzySet
SAT
SeekBehavior
SeparationBehavior
SingletonFuzzySet
Smoother
SphericalTriggerRegion
State
StateMachine
SteeringBehavior
SteeringManager
Task
TaskQueue
Telegram
Think
Time
TriangularFuzzySet
Trigger
TriggerRegion
Vector3
Vehicle
Version
WanderBehavior

fromEuler

描述

fromEuler 方法通过给定的欧拉角创建一个四元数。欧拉角包含了一个旋转矢量沿着三个轴线的旋转,这些轴线被称为欧拉角顺序。

目前,支持 XYZYXZZXYZYX 这四种欧拉角顺序。

语法

Quaternion.fromEuler(x, y, z, order);

参数

  • x <number>:表示绕着 x 轴旋转的角度,单位为弧度。
  • y <number>:表示绕着 y 轴旋转的角度,单位为弧度。
  • z <number>:表示绕着 z 轴旋转的角度,单位为弧度。
  • order <string>:表示欧拉角的顺序,取值为 XYZYXZZXYZYX

返回值

一个新的四元数对象。如果输入不合法,返回 null

示例

const q = Quaternion.fromEuler(Math.PI/2, Math.PI/4, -Math.PI/6, 'YXZ');
console.log(q); // Quaternion {x: 0.586, y: 0.450, z: -0.450, w: 0.450}

错误处理

如果给定的 order 参数不是 XYZYXZZXYZYX 中的任意一个,将会返回 null

实现细节

fromEuler 方法使用四元数的欧拉角顺序定义来计算一个四元数。order 参数和绕每个轴旋转的角度是程序员提供的输入。由于四元数具有“全局旋转”性质(在任何点的旋转结果不取决于旋转轴的选取点),因此两个四元数之间的插值是可能的。

XYZYXZZXYZYX 中的每一个欧拉角顺序中,四元数都按照不同的顺序执行欧拉旋转。fromEuler 方法通过检查 order 参数来确定应该按照哪种顺序运行欧拉旋转。如果 order 参数未知,则函数将返回 null

参考文献