我有一个数组 - 它填充了1
s 和0
s。
当“渲染”出来时 - 它看起来像这样:
基本上,我想选择较低的部分(以红色突出显示)。反正有没有选择最低1
的s?
再次感谢!
[编辑]
我应该提到,最低点每次都是随机的!
[edit2]
目前我只是选择某个区域以下的所有内容,看看它是否是一个1
并做我想做的事......有没有更好的方法?
我有一个数组 - 它填充了1
s 和0
s。
当“渲染”出来时 - 它看起来像这样:
基本上,我想选择较低的部分(以红色突出显示)。反正有没有选择最低1
的s?
再次感谢!
[编辑]
我应该提到,最低点每次都是随机的!
[edit2]
目前我只是选择某个区域以下的所有内容,看看它是否是一个1
并做我想做的事......有没有更好的方法?
您反向循环遍历二维数组...
var lowest = [];
var threshold = 6; // find the 6 "lowest" 1's
for(var row=arr.length-1; row>=0; row--)
for(var col=arr[row].length-1; col>=0; col--)
if(arr[row][col] == 1 && threshold > 0) {
threshold--;
lowest.push({x: col, y: row});
}
另一种方式 :
1)计算每行密度=每行黑色像素的数量
将此数据放入一个新的一维数组中。
2)决定你认为它在哪里是腿(可能有一个阈值,或者一个相对阈值(例如:非空行的平均值小于30%......))。
3) 将所有 (x,y) 值推入“腿”行。
这将避免在你到达怪物身体之前有很多小点“吃掉”像素阈值。