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

graph

graph是一个基于广度优先搜索(BFS)算法的JavaScript库。它可以用于创建并搜索有向或无向图,查找最短路径,检查图的连通性等。

安装

您可以使用以下命令从npm安装graph:

npm install @yuka/graph

或者从github上下载源代码并将其放置在您的项目文件夹中。

使用方法

要使用graph库,您需要创建一个Graph实例并添加节点和边,然后使用BFS方法搜索节点间的路径。

import { Graph } from '@yuka/graph';

const graph = new Graph();

graph.addNode('A');
graph.addNode('B');
graph.addNode('C');
graph.addNode('D');
graph.addNode('E');

graph.addEdge('A', 'B');
graph.addEdge('A', 'C');
graph.addEdge('B', 'C');
graph.addEdge('B', 'D');
graph.addEdge('C', 'E');
graph.addEdge('D', 'E');

const startNode = 'A';
const endNode = 'E';

const shortestPath = graph.BFS(startNode, endNode);

console.log(shortestPath); // ['A', 'E'] 即节点A到节点E的最短路径

API

new Graph()

构造一个Graph实例以进行后续处理。

addNode(node)

添加一个节点到图中。

  • node - 要添加的节点

addEdge(node1, node2)

添加一条从node1node2的边。

  • node1 - 源节点
  • node2 - 目标节点

removeNode(node)

从图中删除给定的节点。

  • node - 要删除的节点

removeEdge(node1, node2)

从图中删除从node1node2的边。

  • node1 - 源节点
  • node2 - 目标节点

BFS(startNode, endNode)

搜索从startNodeendNode的最短路径,并返回该路径。

  • startNode - 起始节点
  • endNode - 目标节点

结论

我们希望graph库能够帮助您创建和搜索图,并找到节点间的最短路径。请随意尝试,并告诉我们您的反馈意见。