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

transformDirection

描述

transformDirection 方法旨在对传入的向量进行转换。转换结果是根据矩阵 M 乘以向量 V 的结果,即 M * V

语法

vector3.transformDirection(matrix4)

参数

  • matrix4:Matrix4 类型,代表用于变换向量的矩阵。

返回值

返回变换后的新向量,类型为 Vector3。

示例

以下示例演示如何使用 transformDirection 方法:

// 创建一个向量
const myVector = new Yuka.Vector3(1, 2, 3);

// 创建一个变换矩阵
const myMatrix = new Yuka.Matrix4();
myMatrix.fromRotationAxis(new Yuka.Vector3(0,1,0), Math.PI * 0.5);

// 对向量进行变换
const transformedVector = myVector.transformDirection(myMatrix);

在此示例中,我们首先创建了一个向量 myVector,其值为 (1,2,3)。我们还创建了一个变换矩阵 myMatrix,对其进行了旋转变换(绕 y 轴旋转了90度)。我们然后通过在 myVector 上调用 transformDirection 方法并传入变换矩阵来实现向量的变换,结果被存储在 transformedVector 中。

注意事项

  • transformDirection 方法并不修改原始向量,而是返回新的向量。
  • transformDirection 方法只能用于变换方向向量,不能用于变换位置向量。如果要变换位置向量,请使用 transform 方法。