1

我有一个数组 - 它填充了1s 和0s。

当“渲染”出来时 - 它看起来像这样:
在此处输入图像描述

基本上,我想选择较低的部分(以红色突出显示)。反正有没有选择最低1的s?

再次感谢!

[编辑]
我应该提到,最低点每次都是随机的!

[edit2]
目前我只是选择某个区域以下的所有内容,看看它是否是一个1并做我想做的事......有没有更好的方法?

4

2 回答 2

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});
      } 
于 2013-06-24T16:02:27.847 回答
0

另一种方式 :

1)计算每行密度=每行黑色像素的数量
将此数据放入一个新的一维数组中。

2)决定你认为它在哪里是腿(可能有一个阈值,或者一个相对阈值(例如:非空行的平均值小于30%......))。

3) 将所有 (x,y) 值推入“腿”行。

这将避免在你到达怪物身体之前有很多小点“吃掉”像素阈值。

于 2013-06-24T16:09:45.887 回答