草庐IT

多边形

全部标签

c++ - 多边形分割与三角剖分

我最近问了thisquestion关于如何将凹多边形切割成凸多边形,有人建议我进行三角剖分或多边形分割。我正在使用的库(SFML\Box2D)只采用凸形。这是我想知道的:IsPolygonPartitioning,orTriangulationofPolygonsfaster?HowdoesPolygonPartitioningwork/Howdoyoudoit?不要忘记三角测量也不需要制作凸形... 最佳答案 不是您问题的完整答案,但如果您有一个通用多边形(凹面、凸面等)并且您希望对其进行三角剖分(可能用于后续的openGL样式渲

c++ - openCV中2个多边形的交叉区域

我有2个多边形的轮廓(作为cv::Point2d的vector)。我想计算它们之间的交集面积获取它的最简单方法是什么?非常感谢!罗恩 最佳答案 用CV_FILLED在两幅图像中绘制形状,然后将它们相运算。区域是:CountNonZero(bitwise_and(ShapeAImage,ShapeBImage))。 关于c++-openCV中2个多边形的交叉区域,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

c++ - 如何生成随机顶点以在 C++ 中形成凸多边形?

我需要为一个简单的凸多边形生成一组顶点,以便使用动态规划对该多边形进行最小权重三角剖分,我想取一个半径为r的圆,然后取20个顶点逆时针移动,然后我将形成一个20顶点的凸多边形,但我该怎么做我如何知道位于半径为r的圆上的顶点?除此之外,还有另一种更简单的方法来生成凸多边形的顶点吗非常感谢任何帮助 最佳答案 生成0到2*pi之间的20个随机数,并对它们进行排序。现在使用一些基本的三角函数来转换为X、Y坐标。for(inti=0;i 关于c++-如何生成随机顶点以在C++中形成凸多边形?,我们

c++ - 将 boost::geometry 多边形转换为 STL 对象

如何将boost::geometry多边形放入STL对象中?我确信这一定很简单,因为我无法在文档中的任何地方找到示例。然而,我花了大约4个完整的工作日来尝试做这件小事。我是C++的新手(长期的R程序员),但这些小的数据转换事情让我发疯。是的,有一个问题的标题很像我的:GettingthecoordinatesofpointsfromaBoostGeometrypolygon但是代码太复杂了(发帖者一直在修改它很多次),我无法理解它的正反面,我也无法想象其他C++新手能够做到。这是一个应该转换为其他一些boost::geometry数据类型的简单示例,因此希望任何人都能理解它。#incl

java - 如何使用 opencv 或 javacv 识别多边形?

我正在做一个项目,该项目使用图像处理技术来识别不同的对象及其长度。我在javaCV和OpenCV中浏览了许多示例。但不幸的是,我无法识别多边形的T形。我尝试使用以下矩形识别方法但我失败了。publicstaticCvSeqfindSquares(finalIplImagesrc,CvMemStoragestorage){CvSeqsquares=newCvContour();squares=cvCreateSeq(0,sizeof(CvContour.class),sizeof(CvSeq.class),storage);IplImagepyr=null,timg=null,gray=

c++ - 如何在 Boost 中对多边形进行三角剖分?

使用Boost对多边形进行三角剖分的最佳方法是什么?我使用Boost.polygon.我目前的算法:根据我的多边形顶点计算voronoï图。为每个单元格边创建一个有向多边形边(这将为每个单元格边创建两个有向多边形边)遍历所有创建的边以创建三角形(不简单)有更好的解决方案吗?编辑:我刚刚意识到可以以一种特殊的方式遍历单元格以直接创建三角形(3个相邻单元格创建一个三角形)。 最佳答案 主要思想是遍历Voronoi顶点,并根据入射到Voronoi顶点的每个单元格的生成点创建一个三角形。在度数>3的退化顶点的情况下,您将需要生成多个三角形,

c++ - 栅格化二维多边形

我需要从表示为点列表的封闭二维多边形创建二进制位图。您能否为我指出高效且足够简单的算法来执行此操作,或者更好的是一些C++代码?非常感谢!PS:我想避免向我的项目添加依赖项。但是,如果你建议一个开源库,我可以随时查看代码,所以它也很有用。 最佳答案 您想要的神奇谷歌短语是“非零缠绕规则”或“偶奇数多边形填充”。请参阅维基百科条目:non-zerowindingruleevenoddpolygonfill两者都非常容易实现,并且对于大多数用途来说都足够快。巧妙地,它们也可以抗锯齿。 关于c

c++ - 给定点 vector (可能乱序),找到多边形(不是凸包)

我目前有一个点vectorvectorcorners;我之前存储给定多边形角点的位置。鉴于此,我确信这些点形成了一个不包含任何自相交边的简单多边形。然而,在存储这些顶点的过程中,它们相互连接的顺序并没有被保留。我现在有一个函数,给定一个点vector,将它们连接起来并绘制一个闭合图形。但是,我需要按照需要连接的顺序为该函数提供点序列。任何人都可以建议我可以按正确顺序对这些点进行排序的方法吗?它们形成一个非常简单的凹多边形,而不是凸包。在所有(7)个点中找到中心点的算法也会有所帮助:) 最佳答案 凹多边形没有唯一解:凸多边形可以唯一地

c++ - Boost::Geometry:如何在 multi_polygon 中连接相交的多边形?

所以我想将所有相互关联的多边形加入一个multi_polygon中。怎么办?我们有这样的图像(一个绿色multi_polygon)我们想要优化(我们可以看到黄色虚线-显然是对multi_polygon的每个多边形而不是一般的multi_polygon执行的简化结果):这里是生成这种图像的可编译代码:#include#include#include#include#include#include#include#includetemplatevoidcreate_svg(std::stringconst&filename,Geometry1const&a,Geometry2const&b

MongoDB 地理相交无法找到大多边形

我正在使用mongo存储一些地理定位数据,目标是使用$geointersect检索它们。具体来说,我将此文档存储在我的数据库中:{"loc":{"geometry":{"type":"Polygon","coordinates":[[[-179.875,-89.875],[179.875,-89.875],[179.875,89.875],[-179.875,89.875],[-179.875,-89.875]]]},"crs":{"type":"name","properties":{"name":"urn:x-mongodb:crs:strictwinding:EPSG:4326"