任何人都知道用 C# 实现的简单算法来检测 2D 游戏中的怪物组。
例如: char周围100范围内有怪物。我想检测哪些怪物在彼此范围 2 内,如果至少有 5 个怪物在一起,则在该位置使用效果区域技能。否则使用单目标技能。
如果有一个实现的链接就更好了,最好是 C#。我只是在阅读维基百科文章时迷失了方向。
编辑: “你的问题不完整。你到底想做什么?你想找到所有组吗?最大的组?任何组,如果有组,没有其他组?请更具体一些。” -吉拉德霍赫
我想找到主角周围 100 个单位范围内的所有群体。如果至少有 5 个或更多怪物都在彼此 2 范围内,或者可能在距中心怪物 10 范围内,则应形成组。
因此结果可能应该是一个新的组列表或潜在目标位置列表。
最佳答案
k-mean算法是一个非常简单的聚类算法。就像
- 创建随机点
- 将所有点分配给最近的点,并创建组
- 将原始点重新定位到组的中间
- 多次执行最后两个步骤。
您可以在这里找到一个实现,或者只是在 google 上搜索“kmean c#”
http://kunuk.wordpress.com/2011/09/20/markerclusterer-with-c-example-and-html-canvas-part-3/
关于c# - 简单聚类算法 2D。检测点簇,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12736395/