0

我需要检测位于特定像素周围距离 xxx 的像素。

是否有任何最佳算法来实现这一目标?

谢谢你。

4

4 回答 4

0

通过在 (0,0) 周围走动进行圆形扩展,同时任一坐标的绝对值小于半径,并将结果的坐标添加到像素的坐标中。应该做。

于 2013-11-05T14:01:46.490 回答
0

尝试这个:

创建两个 Point 对象:( http://help.adobe.com/pt_BR/FlashPlatform/reference/actionscript/3/flash/geom/Point.html ) 以获取所需像素的 (x,y) 和(x,y) 周围的物体。

然后使用Point.distance获取两个对象的距离。所以,你有像素的像素半径。

我希望你已经明白了。

于 2013-11-05T14:11:55.913 回答
0

你可以做的是:

-- 创建一个 Sprite 并绘制一个所需半径的圆并填充

-- 创建 bitmapData 并使用该 Sprite 绘制到它

-- 遍历 bitmapData 并检查不透明像素

-- 当发现不透明时创建点并应用 x,y 偏移

-- 将该点推入一个数组。

您最终应该得到一个给定半径内所有像素位置的数组。

我之所以选择这种方法,是因为听起来您想要实际修改或利用这些数据,而本质上您将通过 bitmapData 来做到这一点。因此,此过程将允许您潜在地组合这些过程 - 如果您在同时迭代两个 bitmapData 时进行比较和修改。

于 2013-11-06T04:34:32.513 回答
0

如果我有一个宽度和高度的位图:

centerX = width/2;
centerY = height/2;
radius = 250; // max radius to scan

for (j = 0; j < radius; j++) {

    for (i = 0; i < 360; i++) {

        radialX = centerX + sin(i) * j;
        radialY = centerY + cos(i) * j;

        // I can found the pixel data at: 
        radialX + (radialY * width);

    } 

}
于 2013-11-05T18:33:11.120 回答