Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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
Java Android:如何获得绘制路径的面积大小?_Java_Android_Area_Geometry Path - Fatal编程技术网

Java Android:如何获得绘制路径的面积大小?

Java Android:如何获得绘制路径的面积大小?,java,android,area,geometry-path,Java,Android,Area,Geometry Path,我的问题是测量路径的表面积我生成一个随机路径并将其绘制在画布上。在接触这个闭合路径之后,我想得到这个绘制路径的面积大小 如何获取此路径的实际面积大小? 路径(形状)如下所示: 我找到了解决办法。我从路径生成一个区域,并使用RegionIterator获取区域内的矩形。通过这个矩形,我可以计算路径的整个面积 private void calculateArea(Region region) { RegionIterator regionIterator = new Regio

我的问题是测量路径的表面积
我生成一个随机路径并将其绘制在画布上。在接触这个闭合路径之后,我想得到这个绘制路径的面积大小 如何获取此路径的实际面积大小? 路径(形状)如下所示:

我找到了解决办法。我从路径生成一个区域,并使用RegionIterator获取区域内的矩形。通过这个矩形,我可以计算路径的整个面积

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);
}

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

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;
}

不知道它是否正确,但是如果路径是用RectF绘制的,那么你应该从中得到区域大小。看看这个类似的问题,你能告诉我你是如何将路径转换为区域的吗?@Anil这是如何将路径转换为区域1=新区域();RectF rectF1=新的RectF();t路径计算边界(rectF1,true);region1.setPath(tpath,新区域((int)rectF1.left,(int)rectF1.top,(int)rectF1.right,(int)rectF1.bottom));