AS3 - 获取像素周围像素的算法

时间:2013-11-05 13:41:50

标签: algorithm actionscript-3 pixels

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

有没有最佳算法来实现这一目标?

谢谢。

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

试试这个:

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

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

我希望你能理解。

答案 2 :(得分: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);

    } 

}

答案 3 :(得分:0)

你能做的是:

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

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

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

- 找到非透明时创建点并应用x,y offset

- 将该点推入数组。

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

我之所以选择这种方法,是因为它听起来像是想要实际修改或利用这些数据,实质​​上你是通过bitmapData来实现的。所以这个过程可以让你潜在地组合这些过程 - 如果你在同时迭代这两个bitmapData的同时进行比较和修改。