请先看一下这张照片:
如您所见,蓝色和红色都有一条线显示前线基础。
让我们假设有两名球员开始互相对战。
一个在最左边放置一个底座,另一个放在最右边。
球员继续扩张并获得领土。
过了一会儿,双方将会面并开始战斗。
问题是,在一个随机排序的基本位置列表中,如何找到图片中绘制的两条线?
答案 0 :(得分:0)
你可以得到敌人基地之间的距离,距离较短的地方是前线。
示例:
0 1 2 3 4 5 6
0 aa A B bbb
1 aA B bb
2 A B b
3 aA B b
4 aaaA Bb
5 aaaA B
6 aaaA B
如果你在同一行中减去敌人基地的X位置,它们之间距离较小的那些是前线,B.x - A.x会给你一个较小的数字b.x - a.x.然后你可以检查哪一行是给你每行的距离较小的那些。
除非我的问题出错了。
答案 1 :(得分:0)
<强>区域强>
周边折线
首先聚集所有碱基并创建靠近的碱基列表
distance <= treshold
处理每个小组
找到群组的最外层基地
现在找到区域的周边闭环
ap
p
p=((p-ap)*scale)+ap
p=p-ap
l=|p|
p=ap+(p*(l+dl)/l)
处理边缘情况
每像素边框
这样的事情:(要注意这是未经测试的)
计算任何玩家基础的最小距离
distance0
最接近distance1
排名第二(但基地拥有另一名球员)选择所有权
distance0 > treshold
则此区域不受控制((distance0 >= d-w)&&(distance0 <= d+w)&&(distance1>d+w+s))
然后将像素颜色设置为边框折线颜色d
是与基地的边界线距离w
是边线粗细的一半大小s
是近前线之间的最小距离边缘案例
((distance0<d)&&(|distance0-distance1|<=s+w)&&(|distance0-distance1|>=s-w))
然后将像素颜色设置为玩家所有权s-w
[注释]