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

addFLV

Yuka.js的FuzzyModule中的addFLV函数用于在FuzzyModule中添加一个FuzzyLinguisticVariable(模糊语言变量)。

语法

addFLV(name, minRange, maxRange)

参数

  • name: 一个字符串,表示要添加的模糊语言变量的名称。
  • minRange: 一个数字,表示模糊语言变量的最小值。
  • maxRange: 一个数字,表示模糊语言变量的最大值。

描述

addFLV函数用于在FuzzyModule中添加一个模糊语言变量。模糊语言变量是一个用于描述模糊集合的变量。模糊集合是一组在值域范围内取值的元素,它们具有数量、隶属度和名称。

隶属度是衡量元素与模糊集合之间的匹配程度的度量,通常用一个在[0, 1]范围内的数字来表示。当隶属度为0时,元素与集合之间没有匹配;当隶属度为1时,元素与集合完全匹配。

通过将模糊语言变量添加到FuzzyModule中,我们可以用它来描述FuzzyModule中的规则。

示例

const fuzzyModule = new YUKA.FuzzyModule();

// 添加一个名为“distance”的模糊语言变量
fuzzyModule.addFLV('distance', 0, 100);

// 在“distance”模糊语言变量中添加一个名为“near”的模糊语言项
const near = fuzzyModule.addFuzzySet('near', new YUKA.LeftShoulderFuzzySet(20, 40, 60));

// 在“distance”模糊语言变量中添加一个名为“far”的模糊语言项
const far = fuzzyModule.addFuzzySet('far', new YUKA.RightShoulderFuzzySet(60, 80, 100));

在上面的示例中,我们创建了一个名为“distance”的模糊语言变量,并添加了两个模糊语言项“near”和“far”。模糊语言项“near”的隶属度在距离20到40之间为1,在距离40到60之间线性减少到0。模糊语言项“far”的隶属度在距离60到80之间为0,在距离80到100之间线性增加到1。

我们可以在FuzzyModule中使用“distance”变量和它的模糊语言项来描述模糊规则,例如:

// 一条模糊规则,描述了如果距离为“near”,则速度为“slow”
fuzzyModule.addFuzzyRule(new YUKA.FuzzyAND(fuzzyModule.getFuzzyVariable('distance').is(near)), fuzzyModule.getFuzzyVariable('speed').is(slow));

在上面的代码中,我们使用上面创建的“distance”模糊语言变量和其模糊语言项“near”,与另一个模糊语言变量“speed”进行 AND 运算,表示只有当距离为“near”时,速度才为“slow”。