4

我的问题是测量路径的表面积。
我生成一个随机路径并将其绘制在画布上。触摸这条封闭路径后,我想获得这条绘制路径的区域大小。

我怎样才能得到这条路径的实际面积大小?

路径(形状)在这里看起来像这样:
链接到图像

4

2 回答 2

0

我找到了解决方案。我从路径生成一个区域并使用 RegionIterator 来获取区域内的 Rects。有了这个矩形,我可以计算路径的整个区域。

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);
}
于 2013-06-28T12:51:36.733 回答
0

这简单地显示了如何将路径转换为矩形。

RectF getAreaFromPath(Path sourcePath){
    RectF rectF = new RectF();
    sourcePath.computeBounds(rectF, true);

    //You can get width and height by calling rectF.width(), rectF.height()

    return rectF;
}
于 2020-08-27T14:13:27.410 回答