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

premultiply

方法说明

premultiply 方法用于将当前矩阵乘以一个参数矩阵(该矩阵作为参数传入),并将结果存储在当前矩阵中。在数学上,这意味着将参数矩阵应用于当前矩阵的右侧。

语法

Matrix3.premultiply(matrix)

参数说明

  • matrixMatrix3 类型,要与当前矩阵相乘的矩阵对象。

返回值

premultiply 方法没有返回值,但会更新当前矩阵。

示例

let matrix1 = new Matrix3();
let matrix2 = new Matrix3();

// 填充 matrix1 和 matrix2

matrix1.premultiply(matrix2);

// 现在 matrix1 中存储了 matrix1 与 matrix2 相乘后的结果

实现原理

矩阵的乘法是一项基本数学操作,需要对每个元素进行计算。 premultiply 方法的实现原理如下:

  1. 取出当前矩阵中的 9 个元素,作为矩阵 A 的元素。
  2. 取出参数矩阵中的 9 个元素,作为矩阵 B 的元素。
  3. 计算乘积矩阵 C = B * A,其中 * 表示矩阵乘法。
  4. 将乘积矩阵 C 的元素重新赋值给当前矩阵的对应元素。

需要注意的是,矩阵乘法并不满足交换律,所以在实现 premultiply 方法时需要特别注意参数矩阵和当前矩阵的顺序。

参考链接