Questions tagged «path-finding»

用来绘制从一个点到另一个点的行进路线的方法,通常可以避免途中的障碍。

3
如何计算加速度受限的对象的路径?
例如,假设我有一辆汽车,并且一辆汽车具有特定的最小转弯半径,并且我想将该汽车从a点驾驶到b点,但汽车没有面向b点。如何计算指向b点的路径?能够在b点处指定方向也是很好的(例如,您想开车到车道上然后驶入车库-如果您通过在草坪上行驶而进入车道并没有多大用处并面向侧面:) 指向文档(甚至只是名称)的指针就很好-我根本找不到任何东西。 在我的尝试中,它们在简单的情况下仍然有效,但在诸如b点比最小转弯半径更靠近a点的情况下却失败了。 例如,如何确定与此类似的路径(粗体路径): 编辑:在我的实际问题中,有一些简单的路径约束,但是我已经有一个可以运行的A *算法,但是它允许事物进行瞬时航向更改,因此看到汽车突然转90°看起来很傻当他们到达一个转折点时,一角钱。

2
导航网格中的“视线”路径
我想计算导航网格中的视线。 考虑下图,黄线仅是A *的结果,红线是使用黄线作为输入的“视线”算法的结果。现在,设备可以直接移动而无需“曲折”。 计算该“视线”的算法是什么?

2
无人机定位
想象一个“无人机”和一个二维平面上的目标点。有八个参数: P = my position Q = target position V = my velocity I = my moment of inertia w = my angular velocity s = my angular position T = max thrust U = max torque (我们只是说目标是固定的) 无人机的工作是尽可能快地到达目标,并遵守最大扭矩和最大推力。只有两种方式施加扭矩,因为这仅在2d平面中。推力仅限于相对于飞行器方向的一个方向,并且不旋转无人机就无法瞄准。忽略任何阻力,您可以假装它在2D外部空间中漂浮。假设无人机t每隔一段时间(例如每0.01秒一次)检查一个方程式,插入参数,并相应地调整其扭矩和推力。推力和扭矩方程应该是什么?

2
估算GOAP系统中的成本
我目前正在用Java开发GOAP系统。有关GOAP的说明,请参见http://web.media.mit.edu/~jorkin/goap.html。本质上,它是使用A *绘制使世界状态发生变化的动作之间的关系。 为了给所有行动和目标提供公平的执行机会,我正在使用启发式函数来估算执行某项操作的成本。估算此成本以使其与所有其他成本可比的最佳方法是什么? 例如,估算逃避敌人和攻击敌人的成本-应该如何计算该成本是否具有可比性?
9 java  ai  path-finding 

3
如何在运行时的动态环境中生成二维导航网格?
因此,我已经掌握了如何使用A *进行路径查找,并且能够在网格上使用它。但是,我的游戏世界很大,我有很多敌人向玩家移动,而玩家是移动的目标,因此网格系统对于寻路太慢。我需要通过使用导航网格来简化节点图。 我掌握了网格“如何工作”的概念(通过顶点和/或多边形边缘中心找到一条路径)。 我的游戏使用在运行时程序性生成的动态障碍。 我不太了解如何拍摄一个有多个障碍物的飞机,并以编程方式将可步行区域划分为用于导航网格的多边形,如下图所示。 我从哪里开始?我怎么知道何时已经定义了一个可行走区域,或更糟糕的是,当我意识到我需要在算法“遍历”地图时细分一个先前定义的可行走区域时? 如果有问题,我正在nodejs中使用javascript。

7
维基百科A *寻路算法需要大量时间
我已经在C#中成功实现了A *寻路,但是速度很慢,而且我不明白为什么。我什至尝试不对openNodes列表进行排序,但仍然相同。 映射为80x80,并且有10-11个节点。 我从维基百科这里获取了伪代码 这是我的实现: public static List<PGNode> Pathfind(PGMap mMap, PGNode mStart, PGNode mEnd) { mMap.ClearNodes(); mMap.GetTile(mStart.X, mStart.Y).Value = 0; mMap.GetTile(mEnd.X, mEnd.Y).Value = 0; List<PGNode> openNodes = new List<PGNode>(); List<PGNode> closedNodes = new List<PGNode>(); List<PGNode> solutionNodes = new List<PGNode>(); mStart.G = 0; mStart.H = GetManhattanHeuristic(mStart, mEnd); solutionNodes.Add(mStart); solutionNodes.Add(mEnd); openNodes.Add(mStart); // …

5
塔防游戏中A *实现的性能降低
我正在Flash中制作没有预定义路径的塔防游戏。 尽管我的网格是40x40(小?),但每次重新计算时A *都在挣扎。因此,我进行了自己的修改以简化重新计算,并且触摸的单元数减少到900(在根附近进行修改时)。放置新塔时,它仍会冻结很短但可检测的时间。 这是一个实现问题,还是40x40太多了? 编辑: 我的代码的结构: 所有数据都保存在二维单元格数组中。 每个单元在路径方向(顺时针为1-8)中包含其父级,并在路径中包含其子项的按位编码的数组(每个位代表一个子项)。 搜索是由A *执行,并估计了欧几里得距离。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.