Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 确定图形应用程序上剩余的空间_Flash_Actionscript 3_Drawing - Fatal编程技术网

Flash 确定图形应用程序上剩余的空间

Flash 确定图形应用程序上剩余的空间,flash,actionscript-3,drawing,Flash,Actionscript 3,Drawing,我有一个绘图应用程序,用户可以选择画笔大小来绘图。 我需要一种方法来确定所有曲面都已绘制。关于如何实现这一点,有什么代码或想法吗 我的想法是使用像素级碰撞检测来实现这一点。有一些开源框架(try),它返回一定百分比的覆盖率。可以将绘制的线与整个曲面进行比较,并检查是否有完全覆盖 您必须查看文档以获得完整的脚本,但这是我的方法。我的想法是使用像素级碰撞检测来实现这一点。有一些开源框架(try),它返回一定百分比的覆盖率。可以将绘制的线与整个曲面进行比较,并检查是否有完全覆盖 您必须检查文档以获得完

我有一个绘图应用程序,用户可以选择画笔大小来绘图。
我需要一种方法来确定所有曲面都已绘制。关于如何实现这一点,有什么代码或想法吗

我的想法是使用像素级碰撞检测来实现这一点。有一些开源框架(try),它返回一定百分比的覆盖率。可以将绘制的线与整个曲面进行比较,并检查是否有完全覆盖


您必须查看文档以获得完整的脚本,但这是我的方法。

我的想法是使用像素级碰撞检测来实现这一点。有一些开源框架(try),它返回一定百分比的覆盖率。可以将绘制的线与整个曲面进行比较,并检查是否有完全覆盖


您必须检查文档以获得完整的脚本,但这是我的方法。

我想到的一件事是,假设您的背景(空白画布)为白色,在图像中查找白色像素

比如:

function getWhiteRatio(bitmapData:BitmapData,rect:Rectangle):Number{
    var numPixels:int = rect.width * rect.height;
    var white:int = 0;
    var pixels:Vector.<uint> = bitmapData.getVector(rect);
    for(var i:int = 0 ; i < numPixels; i++){
        if(pixels[i] == 4294967295) white++;
    }
    return white/numPixels;
}
函数getWhiteRatio(bitmapData:bitmapData,rect:Rectangle):数字{ var numPixels:int=rect.width*rect.height; var-white:int=0; 变量像素:Vector.=bitmapData.getVector(rect); 对于(变量i:int=0;i 此函数将返回白色像素的比率(白色像素数与图像内像素总数的关系)。如果比率接近1,则像素大部分为白色,因此画布清晰

您可能需要不时使用draw()方法制作向量(由绘图API生成)画布的BitmapData副本,并检查完整画布

如果您有自定义背景(而不是单一颜色),则需要稍微不同的方法:

  • 通过使用BlendMode.DIFFERENCE绘制2个位图(原始画布和当前画布),可以生成位图数据
  • 计算差异位图中的黑色像素数。如果像素全部为黑色,则没有区别。黑色像素越少,画布上的内容就越多
  • 嗯,,
    乔治

    想到的一件事是,假设你的背景(空白画布)是白色的,在图像中寻找白色像素

    比如:

    function getWhiteRatio(bitmapData:BitmapData,rect:Rectangle):Number{
        var numPixels:int = rect.width * rect.height;
        var white:int = 0;
        var pixels:Vector.<uint> = bitmapData.getVector(rect);
        for(var i:int = 0 ; i < numPixels; i++){
            if(pixels[i] == 4294967295) white++;
        }
        return white/numPixels;
    }
    
    函数getWhiteRatio(bitmapData:bitmapData,rect:Rectangle):数字{ var numPixels:int=rect.width*rect.height; var-white:int=0; 变量像素:Vector.=bitmapData.getVector(rect); 对于(变量i:int=0;i 此函数将返回白色像素的比率(白色像素数与图像内像素总数的关系)。如果比率接近1,则像素大部分为白色,因此画布清晰

    您可能需要不时使用draw()方法制作向量(由绘图API生成)画布的BitmapData副本,并检查完整画布

    如果您有自定义背景(而不是单一颜色),则需要稍微不同的方法:

  • 通过使用BlendMode.DIFFERENCE绘制2个位图(原始画布和当前画布),可以生成位图数据
  • 计算差异位图中的黑色像素数。如果像素全部为黑色,则没有区别。黑色像素越少,画布上的内容就越多
  • 嗯,, 乔治