我有一个数组 - 它填充了1
和0
s。
当“渲染”出来时 - 它看起来像这样:
基本上,我想选择较低的部分(以红色突出显示)。无论如何只选择最低1
s?
再次感谢!
[编辑]
我应该提到最低点每次都是随机的!
[EDIT2]
目前我只是选择某个区域以下的所有内容,看看它是1
并按照我的意愿行事......是否有更好的方法?
答案 0 :(得分:1)
你反向循环遍历2d数组......
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 :(得分:0)
另一种方式:
1)每行计算密度=每行黑色像素数
将这些数据放入一个新的一维数组中。
2)决定你认为它是腿的位置(可能有一个阈值, 或相对阈值(例如:非零行的平均值小于30%......)。
3)推送'leg'行中的所有(x,y)值。
这将避免许多小点“吃掉”像素阈值 在你来到怪物的身体之前。