TC官方合作论坛
标题:
求助大神帮忙优化范围多点找色
[打印本页]
作者:
gospeell
时间:
2016-8-28 19:27
标题:
求助大神帮忙优化范围多点找色
大漠自带范围多点找色是在范围内确定各点的,速度上偏慢。我现在这个代码是小范围确定主色后,在通过固定点范围找色的。
然而有时候不好用,麻烦大神帮忙优化一下。如果有直接源码就好了,谢谢
//调用例子
var common = "fdefa2,1|1|fdeda0,2|1|fded9f,2|3|fdea9d,1|4|fde99d,4|4|fde79a"
var common_xy = array(765, 554)/
if(FindMultiColorS(common_xy[0]-10, common_xy[1]-10,common_xy[0]+10, common_xy[1]+10 0.8, common,5))
traceprint("找到")
end
//函数源码
function FindMultiColorS(x1, y1, x2, y2, sim, color, dir)//范围多点找色
var xy = array()
//将颜色组分割成大漠的格式
var first_color = strformat("%s%s", strsub(color, 0, 6), "-000000")
var offset_color = strsub(color, 7, strlen(color))
var x = x1
var y = y1
//寻找颜色是从左到右,从上到下的
while(y < y2)
//确定主色
if(dm.FindColor(x, y, x2, y2, first_color, sim, dir, xy[0], xy[1]) == 1)
//调用多点找色
if(findColorCmpMulti(xy[0], xy[1], sim, color))
return true
else
x = xy[0]
y = xy[1]
while(x < x2)
if(dm.FindColor(x, y, x2, y2, first_color, sim, dir, xy[0], xy[1]) == 1)
if(findColorCmpMulti(xy[0], xy[1], sim, color))
return true
elseif(x2 <= xy[0] + 1)
break
else
x = xy[0] + 1
end
// traceprint(x)
// traceprint(y)
// traceprint(x2)
// traceprint(y2)
else
break
end
end
y = y + 1
if(y >= y2)
return false
end
end
else
return false
end
end
end
复制代码
作者:
15910791922
时间:
2016-8-28 19:49
加扣扣 392076936
作者:
gospeell
时间:
2016-9-25 17:25
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1