草庐IT

多边形

全部标签

c++ - 具有许可许可的稳健、快速的复杂多边形(带孔)三角剖分 c/c++ 库

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭7年前。Improvethisquestion我是开源游戏的开发者,Bitfighter.根据以下SO帖子,我们使用了出色的“三角形”库来生成网格区域,以便与我们的游戏内AI(机器人)一起使用:PolygonTriangulationwithHoles但是,当我们想要为Debian打包我们的游戏时遇到了一个小障碍-使用“Triangle”库会使我们的游戏被视为“非免费”。我们对“Triangle”库的

python - 在Shapely中查找多边形上最近点的坐标

假设我有以下多边形和点:>>>poly=Polygon([(0,0),(2,8),(14,10),(6,1)])>>>point=Point(12,4)我可以计算点到多边形的距离...>>>dist=point.distance(poly)>>>print(dist)2.49136439561...但我想知道最短距离测量到的多边形边界上点的坐标。我最初的方法是通过点到多边形的距离来缓冲该点,并找到该圆与多边形相切的点:>>>buff=point.buffer(dist)但是,我不确定如何计算这一点。这两个多边形不相交,所以list(poly.intersection(buff))不会给

python - 如何确定哪些点在多边形内,哪些不在(大量点)?

我有一大组数据点(100,000+)存储在二维numpy数组中(第一列:x坐标,第二列:y坐标)。我还有几个一维数组存储每个数据点的附加信息。我现在想从这些1D数组的子集创建图,其中仅包含给定多边形中的点。我想出了以下既不优雅也不快速的解决方案:#XYisthe2Darray.#Aisoneofthe1Darrays.#polyisamatplotlib.patches.Polygonmask=np.array([bool(poly.get_path().contains_point(i))foriinXY])matplotlib.pylab.hist(A[mask],100)matp

python 如何判断点是否在多边形(三角形)内,或求点在3D面上的投影?

方法1:用shapely中的geometry包1)polygon.covers(point)如果point在多边形polygon上(包括边),返回True,否则False。2)polygon.contains(point)如果point在多边形polygon上(不包括边),返回True,否则False。fromshapelyimportgeometryimportmatplotlib.pyplotaspltpts=[(0,0),(1,1),(0,1),(0,0)]polygon=geometry.Polygon(pts)pt=0.1,0.2print(*pt)point=geometry.Po

python - 使用 matplotlib 更有效地绘制多边形

我有大约60000个形状的日期集(每个角的纬度/经度坐标),我想使用matplotlib和basemap在map上绘制。这就是我目前的做法:foriiinrange(len(data)):lons=np.array([data['lon1'][ii],data['lon3'][ii],data['lon4'][ii],data['lon2'][ii]],'f2')lats=np.array([data['lat1'][ii],data['lat3'][ii],data['lat4'][ii],data['lat2'][ii]],'f2')x,y=m(lons,lats)poly=Pol

python - 在 Python 中使用 geoJSON 指向多边形

我有一个geoJSON数据库,其中包含很多多边形(特别是人口普查区),并且我有很多长纬度点。我希望存在一个高效的Python代码来识别给定坐标所在的人口普查区,但是到目前为止,我的谷歌搜索还没有发现任何信息。谢谢! 最佳答案 我发现了一个有趣的article描述如何做你想做的事情。TL;DR:使用Shapely你会在文末找到这段代码:importjsonfromshapely.geometryimportshape,Point#dependingonyourversion,use:fromshapely.geometryimport

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

标题基本上说明了一切。我需要使用Python计算地球表面多边形内的面积。CalculatingareaenclosedbyarbitrarypolygononEarth'ssurface对此有所说明,但在技术细节上仍含糊不清:Ifyouwanttodothiswithamore"GIS"flavor,thenyouneedtoselectanunit-of-measureforyourareaandfindanappropriateprojectionthatpreservesarea(notalldo).Sinceyouaretalkingaboutcalculatinganarbi

python - 修复 Shapely 中的无效多边形

Shapely将多边形定义为无效,如果它的任何线段相交,包括共线的线段。许多软件包会创建一个带有“切口”的区域或区域,如下所示,它具有共线段:>>>pp=Polygon([(0,0),(0,3),(3,3),(3,0),(2,0),(2,2),(1,2),(1,1),(2,1),(2,0),(0,0)])>>>pp.is_validWARNING:shapely.geos:Self-intersectionatornearpoint20False当然,切口可以在Shapely中本地实现,或者同样的几何图形可以实现为两个有效的多边形,但如果我只有上面显示的点列表,是否有一个容易“修复”的

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

我有一组点,想知道是否有一个函数(为了方便和可能的速度)可以计算一组点所包围的面积。例如:x=np.arange(0,1,0.001)y=np.sqrt(1-x**2)points=zip(x,y)给定points,面积应该大约等于(pi-2)/4。也许有来自scipy、matplotlib、numpy、shapely等的东西来做到这一点?我不会遇到x或y坐标的任何负值...它们将是没有任何定义函数的多边形。编辑:点很可能不会按任何指定的顺序(顺时针或逆时针)并且可能非常复杂,因为它们是一组边界下shapefile中的一组utm坐标 最佳答案

python - SciPy 创建 2D 多边形蒙版

我需要使用标准Python包创建一个代表多边形二进制掩码的numpy二维数组。输入:多边形顶点、图像尺寸输出:多边形的二进制掩码(numpy2D数组)(更大的上下文:我想使用scipy.ndimage.morphology.distance_transform_edt获取这个多边形的距离变换。)谁能教我怎么做? 最佳答案 答案很简单:importnumpyfromPILimportImage,ImageDraw#polygon=[(x1,y1),(x2,y2),...]or[x1,y1,x2,y2,...]#width=?#heig