相关疑难解决方法(0)

计算给定(x,y)坐标的多边形面积

我有一组点,并想知道是否有一个函数(为了方便和可能的速度)可以计算由一组点包围的区域.

例如:

x = np.arange(0,1,0.001)
y = np.sqrt(1-x**2)

points = zip(x,y)
Run Code Online (Sandbox Code Playgroud)

鉴于points该区域应大致相等(pi-2)/4.也许有scipy,matplotlib,numpy,shapely等的东西来做这个?我不会遇到x或y坐标的任何负值...它们将是没有任何定义函数的多边形.

编辑:

点很可能不是以任何指定的顺序(顺时针或逆时针),并且可能非常复杂,因为它们是来自一组边界下的shapefile的一组utm坐标

python polygon area coordinates

32
推荐指数
7
解决办法
5万
查看次数

如何使用python计算地球表面多边形的面积?

标题基本上都说明了一切.我需要使用Python计算地球表面多边形内的区域.计算由地球表面任意多边形包围的区域说明了一些内容,但对技术细节仍然模糊:

如果你想用更"GIS"的味道来做这件事,那么你需要为你的区域选择一个度量单位,找到一个保留区域的适当投影(不是所有的).既然你在谈论计算任意多边形,我会使用类似Lambert Azimuthal等面积投影的东西.将投影的原点/中心设置为多边形的中心,将多边形投影到新坐标系,然后使用标准平面技术计算面积.

那么,我如何在Python中执行此操作?

python geometry geolocation geospatial

30
推荐指数
7
解决办法
2万
查看次数

计算给定方向列表的区域

假设你有一份方向清单:

up, up, right, down, right, down, left, left
Run Code Online (Sandbox Code Playgroud)

如果您按照说明操作,您将始终返回起始位置.计算刚刚创建的形状的面积.

由上述方向形成的形状如下所示:

 ___
|   |___
|_______|
Run Code Online (Sandbox Code Playgroud)

显然,从图片中可以看出该区域为3.

我试图使用2d矩阵来追踪方向,但不确定如何从中获取该区域......

例如,在我的2d数组中:

O  O
O  O  O
O  O  O
Run Code Online (Sandbox Code Playgroud)

这可能不是处理这个问题的好方法,任何想法?

algorithm

13
推荐指数
1
解决办法
222
查看次数

计算C#中不规则多边形的面积

我设法写了一个'for dummies'如何计算C#中不规则多边形的面积,但我需要它对任何数量的顶点都是动态的.

有人可以帮忙吗?

类:

public class Vertex
{
    private int _vertexIdx;
    private double _coordX;
    private double _coordY;
    private double _coordZ;

    public Vertex()
    { }

    public Vertex(int vertexIdx, double coordX, double coordY, double coordZ)
    {
        _vertexIdx = vertexIdx;
        _coordX = coordX;
        _coordY = coordY;
        _coordZ = coordZ;
    }

    public int VertexIdx
    {
        get { return _vertexIdx; }
        set { _vertexIdx = value; }
    }

    public double X
    {
        get { return _coordX; }
        set { _coordX = value; } …
Run Code Online (Sandbox Code Playgroud)

c# arrays list polygon area

10
推荐指数
3
解决办法
2万
查看次数

是否有任何算法用于计算形状的面积,给定坐标定义形状?

所以我有一些功能可以接收N个随机2D点.

有没有算法来计算输入点定义的形状区域?

c# algorithm geometry

9
推荐指数
1
解决办法
1万
查看次数

Python中的凸壳区域?

对于downvoters:请说明原因.谢谢!

我有一套积分A.我得到的凸包CH_AA.

然后,我有额外的积分,点集B.我想补充BA,并获得更大的点集.我获得了CH_AB包含两个A和的这个更大的集合的凸包B.

我想量化我需要支付多少才能加入B套装A.我正在考虑使用额外的区域来量化这个成本.

CH_A有一个区域Area_A,然后CH_AB有一个区域Area_AB.然后,我想计算边际成本

(Area_AB - Area_A) / Area_A 
Run Code Online (Sandbox Code Playgroud)

我如何在python中获得凸包的面积?

python

9
推荐指数
2
解决办法
1万
查看次数

仅在正面积的numpy数组中集成

我希望能够使用numpys trapz函数计算跟随积分

numpy.trapz([-1, 1]) # returns 0
Run Code Online (Sandbox Code Playgroud)

但我不想允许负面区域.有没有一种有效的方法来做到这一点,还是我必须寻找最小点并手动转换数组?

是否numpy.trapz(numpy.abs([-1, 1]))有意义?

python arrays numpy numerical-integration

6
推荐指数
1
解决办法
2738
查看次数

你如何计算一系列随机点的面积?

因此,我正在编写一段代码来获取RC平面裁剪器的位置数据,并计算横向的总表面积(不对任何区域进行重复计算).我无法弄清楚如何计算给定操作期间的面积.

给定下表计算点覆盖的面积.

x,y
1,2
1,5
4,3
6,6
3,4
3,1
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我浏览了格林斯定理,但我没有一个实用的概念来编码.

谢谢你的任何建议

python math rc area redgreen

5
推荐指数
1
解决办法
8906
查看次数

用于计算具有最高密度点的地理地图区域的有效算法

假设我有一张地理地图,其中各点由纬度\经度表示.我在这张地图上有很多点,可以随时添加\删除\移动点.

我需要的是获得"最热点" - 包括最大点数除以面积的区域 - 或者换言之,具有最高点密度的区域.

我需要一个有效的数据结构,以及一个重新计算任何变化的最热点的算法.计算复杂度和内存复杂度必须最小,因为点数可能会非常高.

我希望知道并保持一份最热门地点的降序排列 - 首先是最拥挤的地区,然后是不那么拥挤的地区.有一个有限大小的列表是可以的 - 例如,100个最热点.

当然,为了防止一个孤立点上的100%密度,存在最小区域(定义为常数).

这里"区域"的定义是地图上包含点的任何可感知区域.它可能是整个地图,但算法不应该将其视为当然的热点=)

谢谢!如果需要任何澄清,请说出来......

mapping algorithm map geolocation data-structures

4
推荐指数
1
解决办法
1696
查看次数

最快的鞋带配方方法

我做了一个用鞋带方式计算面积多边形的函数。

这非常有效,但现在我想知道是否没有更快的方法来获得相同的结果。我想知道这一点,因为这个函数对于具有大量坐标的多边形必须运行得更快。

我的职能:

def shoelace_formula(polygonBoundary, absoluteValue = True):
    nbCoordinates = len(polygonBoundary)
    nbSegment = nbCoordinates - 1

    l = [(polygonBoundary[i+1][0] - polygonBoundary[i][0]) * (polygonBoundary[i+1][1] + polygonBoundary[i][1]) for i in xrange(nbSegment)]

    if absoluteValue:
        return abs(sum(l) / 2.)
    else:
        return sum(l) / 2.
Run Code Online (Sandbox Code Playgroud)

我的多边形:

polygonBoundary = ((5, 0), (6, 4), (4, 5), (1, 5), (1, 0))
Run Code Online (Sandbox Code Playgroud)

结果 :

22.
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

我尝试使用 Numpy :它速度最快,但您必须先转换坐标。

import numpy as np
x, y = zip(*polygonBoundary)

def shoelace_formula_3(x, y, absoluteValue = True):

    result = 0.5 * np.array(np.dot(x, np.roll(y, …
Run Code Online (Sandbox Code Playgroud)

python performance polygon area

4
推荐指数
1
解决办法
1万
查看次数

包围给定点集的边界

我目前正在使用的算法存在一些问题。我希望它成为一个界限。

这是当前行为的示例:

当前行为

这是通缉行为的MSPaint示例:

想要的行为

C#中凸包的当前代码:https : //hastebin.com/dudejesuja.cs

所以这是我的问题:

1)这有可能吗?

R:是的

2)这甚至被称为凸包吗?(我不这么认为)

R:不,这叫做边界,链接:https : //www.mathworks.com/help/matlab/ref/boundary.html

3)与传统的凸包相比,这是否会降低性能?

R:据我研究,它应该具有相同的性能

4)使用伪代码或类似方法的此算法示例?

R:尚未回答,或者我尚未找到解决方案

geometry computational-geometry concave-hull

2
推荐指数
1
解决办法
2770
查看次数

计算带孔闭合曲线面积的算法

我们的应用程序允许用户追踪由直线和圆弧组成的闭合曲线。这些闭合曲线中可以有孔,孔也由直线和圆弧组成。像这样的东西:

在此处输入图片说明

弧段和直线段的数量、位置、方向、直径和扫描角/角度是可变的。

如何计算不包括孔面积的闭合曲线内的面积?我知道如何通过用一系列线段来逼近弧线来实现这一点。但是有没有更好、更准确的算法来做到这一点?

algorithm graphics geometry curve

0
推荐指数
1
解决办法
1608
查看次数