我正在尝试为“逃离”创建一个算法,并希望首先找到“安全”的点。也就是说,它们与其他点相对较远的点。
这是二维的(不是很重要),并且发生在固定大小的圆圈内。
我猜距离平方的总和会产生一个很好的起始方程,其中最高分是最远的。
至于选择点,我认为不可能解决 X,Y 但近似值就足够了。
我做了一些阅读并确定为了覆盖一个圆圈的区域,你需要 7 个半大小的圆圈(中心形成一个六边形,第七个在中心)
我可以遍历这些,所有这些都在圆圈内。当我选择最好的得分球时,我可以继续将它们分成 7 个球。当然,不包括任何落在原圆之外的点。
然后我可以迭代到所需的精度或所需的级别。
为了扩展该方法,假设到达一个位置需要时间,虽然该位置可能是安全的,但其间的行程可能不安全。我应该如何在方程中加入距离,以便得到一个好的解决方案。
我想我可以将到新点的距离平方并乘以分数,然后从那里迭代。它会非常有利于当地的景点,但我认为这是一种很好的行为。它会尝试在附近解决一个安全点,然后在重新计算后它可以找到“出局”并继续潜入安全地带。
对此有什么想法,或者这个问题以前做过吗?当我查看时,我无法专门找到这个问题。
编辑:
我引入了财富算法的 C# 实现,并在我的点周围添加了一些点来创建一个伪圆形约束,因为我对算法的理解不够好,无法手动调整它。
我现在意识到蓝线在节点之间创建了一条路径。我可以使用这些长度和周围点之间的距离来计算路径(穿越时间和危险),并将其与安全性(它试图到达的空圆圈)进行权衡,以确定最佳路线行动。通过研究它们之间的交互方式,我可以消除我必须做的大部分工作,只需使用 voronoi。我的生成算法现在也将使用它来确定 LEC 并在该位置生成。