计算区域的总面积

时间:2012-08-19 17:42:07

标签: android path region

我希望能够知道一个区域所覆盖的总面积(例如,在该区域上的双积分)。 我找不到任何方法,我想我必须逐个像素。 提前谢谢!

2 个答案:

答案 0 :(得分:2)

您应该能够使用RegionIterator并对返回的矩形区域求和。

推理:Andriod文档暗示当在区域上完成布尔运算时,结果区域是一组具有所需并集的非重叠矩形。换句话说,A - B,其中A和B是矩形,因此可能产生0,1,2,3或4个矩形。

我还没有测试过,但the Android xRef site的来源显示验证区域由没有重叠的矩形组成。

答案 1 :(得分:1)

看来,我和你的问题有同样的问题。

我不确定,如果这是一个“真正的”解决方案。但是我发布了我的代码。值看起来不错。

private void calculateArea(Region region) {

        RegionIterator regionIterator = new RegionIterator(region);

        int size = 0; // amount of Rects
        float area = 0; // units of area

        Rect tmpRect= new Rect(); 

        while (regionIterator.next(tmpRect)) {
            size++;
            area += tmpRect.width() * tmpRect.height();
        }

        log.d("Rect amount=" + size);
        log.d("Area Size / units of area=" + area);
    }

}

我的问题是:我想获得一些绘制的pathes的面积大小。为了识别路径上的触摸,我也添加了一个区域。

相关问题