我正在尝试创建一个“逃避”的算法,并希望首先找到“安全”点。也就是说,与其他点相对较远的点。
这是2D的(虽然并不重要),发生在一个固定大小的圆内。
我猜测平方距离的总和会产生一个很好的起始方程,其中最高分数表示最远的距离。
至于选择点,我认为不可能解决X,Y,但近似是足够的。
我读了一些资料,确定了为了覆盖一个圆的区域,您需要7个半径为原圆1/2的圆(中心形成六角形,第七个在中心处)。
我可以遍历这些圆,所有这些圆都在圆内开始。当我选择最佳得分的球时,我可以继续将它们分成7个球。当然,排除任何落在原始圆外的点。
然后我可以迭代到所需的精度或所需的级别。
为了扩展方法,假设到达某个位置需要时间,而到达该位置的行程可能不安全。我应该如何将距离纳入方程中,以便我能够得出一个好的解决方案。
我想我可以将到新点的距离平方并将其乘以分数,然后从那里迭代。它会强烈支持一个本地点,但我想这是一个很好的行为。它将尝试解决附近的安全问题,然后在重新计算时可能会找到“出路”,并继续躲避。
对此有什么想法,或者这个问题以前做过吗?当我查看时,我无法找到这个特定的问题。
编辑:
我引入了Fortune算法的C#实现,并在我的点周围添加了一些点,以创建一个伪圆形约束,因为我不了解该算法足够调整它。
我现在意识到蓝线在节点之间创建路径。我可以使用这些路径的长度和周围点之间的距离来计算路径(穿越时间和危险),并将其与安全性(它正在尝试到达的空心圆)相权衡,以确定最佳行动方案。通过调整它们之间的交互方式,我可以消除大部分工作,只需使用Voronoi即可。此外,我的生成算法现在将使用此功能来确定LEC并在该位置生成。
这是2D的(虽然并不重要),发生在一个固定大小的圆内。
我猜测平方距离的总和会产生一个很好的起始方程,其中最高分数表示最远的距离。
至于选择点,我认为不可能解决X,Y,但近似是足够的。
我读了一些资料,确定了为了覆盖一个圆的区域,您需要7个半径为原圆1/2的圆(中心形成六角形,第七个在中心处)。
我可以遍历这些圆,所有这些圆都在圆内开始。当我选择最佳得分的球时,我可以继续将它们分成7个球。当然,排除任何落在原始圆外的点。
然后我可以迭代到所需的精度或所需的级别。
为了扩展方法,假设到达某个位置需要时间,而到达该位置的行程可能不安全。我应该如何将距离纳入方程中,以便我能够得出一个好的解决方案。
我想我可以将到新点的距离平方并将其乘以分数,然后从那里迭代。它会强烈支持一个本地点,但我想这是一个很好的行为。它将尝试解决附近的安全问题,然后在重新计算时可能会找到“出路”,并继续躲避。
对此有什么想法,或者这个问题以前做过吗?当我查看时,我无法找到这个特定的问题。
编辑:
我引入了Fortune算法的C#实现,并在我的点周围添加了一些点,以创建一个伪圆形约束,因为我不了解该算法足够调整它。
我现在意识到蓝线在节点之间创建路径。我可以使用这些路径的长度和周围点之间的距离来计算路径(穿越时间和危险),并将其与安全性(它正在尝试到达的空心圆)相权衡,以确定最佳行动方案。通过调整它们之间的交互方式,我可以消除大部分工作,只需使用Voronoi即可。此外,我的生成算法现在将使用此功能来确定LEC并在该位置生成。