草庐IT

多边形

全部标签

c++ - 矩形多边形的 boolean 运算

Avast各位程序员!我有以下问题:我有两个矩形重叠,如下图所示。我想找出由点ABCDEF组成的多边形。替代的圣诞节描述:红色曲奇刀正在切掉一点黑色曲奇。我要计算黑cookies。每个矩形都是一个具有4个2d顶点的数据结构。实现此目标的最佳算法是什么? 最佳答案 这是一般二维多边形裁剪的特例。Weiler-Atherton算法是一个不错的起点。Wikipediahasasummary和linkstotheoriginalpaper.该算法似乎与您描述的数据结构非常匹配。请注意,您很可能最终会得到一个带有孔的矩形(如果红色完全在黑色内

c++ - 任意大小的凸多边形之间的碰撞检测算法

我正在研究小行星克隆。一切都是二维的,用C++编写。对于小行星,我正在生成随机的N边多边形。我保证它们是凸的。然后我旋转它们,给它们一个旋转速度,让它们在太空中飞翔。一切正常,而且非常漂亮。对于碰撞,我使用的是我自己想到的算法。这可能是个坏主意,如果到了紧要关头,我可能会放弃整个事情并在互联网上找到教程。我已经编写并实现了所有内容,并且碰撞检测工作正常......大部分时间。当屏幕上有明显的碰撞时它会随机失败,并且有时在没有任何东西接触时指示碰撞。要么我在某个地方搞砸了我的实现,要么我的算法很糟糕。由于我实现的规模/范围(超过几个源文件),我不想为此打扰你,只是希望有人检查我的算法实际

c++ - 如何检测使用 opencv 绘制的多边形轮廓?

我是OpenCV的新手。我知道有很多方法可以检测多边形的轮廓。但是,如何检测使用opencv绘制的多边形轮廓?这是我的代码:Matsrc=imread("C:/Users/Nickolay/Desktop/1.jpg");resize(src,src,Size(400,400),0,0,INTER_CUBIC);if(src.empty()){cout>countours;findContours(bw.clone(),countours,CV_RETR_CCOMP,CV_CHAIN_APPROX_SIMPLE);vectorapprox;Matdst=src.clone();for(

c++ - 在 OpenCV 中查找多边形边界内的平均颜色

背景我正在尝试创建一个实用程序,该实用程序将使用OpenCV返回给定多边形内的平均像素颜色。多边形将通过4个点定义,但不一定是矩形/正方形。例如,以下结构是预期的:A__________BA_______B//\\//\\D/__________/CD\_______\C给定OpenCV中的cv::Mat图像和由点(A、B、C、D)定义的多边形。我知道点A、B、C和D,但我想计算多边形内的平均像素颜色。我想从OpenCV社区获得一些关于如何最有效地做到这一点的建议。研究完成另一个postStackOverflow上建议使用drawContours绘制等高线函数然后取mean围绕轮廓的边

c++ - 不同平面上的多边形之间的三角剖分

我想在两组多边形之间进行三角剖分。一组总是在另一组内,事实上,外部多边形是作为原始组的偏移量创建的。如果它们在同一平面上,三角测量会很容易,但我想通过将外部多边形移动到平行但不同的平面来增加深度。我使用的常用三角测量方法(glutesselator)不起作用。有替代方案吗? 最佳答案 您是说您有一种适用于2D的三角测量方法。美好的。将两个轮廓放在同一平面上z=0,进行二维三角剖分,然后将外部轮廓顶点的z坐标设置为您需要的值。如您所说,将外轮廓移动到平行平面。为什么这种方法不适合您?是的,您最终可能会得到一些水平三角形,它们的三个顶点

osg::DrawElements*系列函数及GL_QUAD_STRIP、GL_QUADS绘制四边形效率对比

目录1.前言2.osg::DrawElements*系列函数用法说明3. GL_QUADS、GL_QUAD_STRIP用法及不同点4. 效率对比5.总结6.参考资料1.前言   利用osg绘制图元,如:三角形、四边形等,一般用osg::PrimitiveSet类。其派生出了很多子类,如下图所示:图1 在开发中,用DrawElements*系列函数和osg::DrawArrays函数绘制图元比较多,本文以绘制四边形为例子,以osg::DrawElementsUShort、osg::DrawArrays来讲解怎样绘制四边形,及GL_QUAD_STRIP、GL_QUAD的不同、它们之间的效率。2.o

c++ - 多边形轮廓上的边并不总是正确的

我正在使用下面的算法生成四边形,然后将其渲染成这样的轮廓http://img810.imageshack.us/img810/8530/uhohz.png图像上看到的问题是有时线条太细,而它们应该始终保持相同的宽度。我的算法找到第一个顶点的4顶点,然后下一个顶点的顶部2顶点是前一个顶点的底部2。这会创建连接线,但似乎并不总是有效。我该如何解决这个问题?这是我的算法:voidOGLENGINEFUNCTIONS::GenerateLinePoly(conststd::vector>&input,std::vector&output,intwidth){output.clear();if(

ios - 如何计算 iOS 中多边形的物理面积?

作为我正在处理的应用程序的一部分,我试图确定用户在屏幕上绘制的多边形的物理区域。我正在使用此处详述的方法计算多边形的面积(以点为单位):http://www.mathopenref.com/coordpolygonarea.html但是,我对如何从以点为单位的面积转换为物理面积(如平方英寸)有点困惑。我相信我正在测试的设备(iPadPro,9.7")的DPI是264。以英寸为单位的面积方程真的像pointsArea/(dpi*dpi)一样简单吗?这似乎并没有产生大大正确的结果,而不仅仅是将几个神奇的数字混在一起。我用来计算点面积的代码如下:-(double)calculatePoint

ios - 使用单个 SKShapeNode 渲染多个重叠的多边形?

我发现可以使用单个SKShapeNode对象渲染多个多边形:classGameScene:SKScene{overridefuncdidMove(toview:SKView){letpolygons=[[CGPoint(x:0,y:0),CGPoint(x:100,y:100),CGPoint(x:100,y:0)],[CGPoint(x:50,y:50),CGPoint(x:50,y:150),CGPoint(x:150,y:150),CGPoint(x:150,y:50),],]letpath=CGMutablePath()forpointsinpolygons{path.addL

如何仅使用OPENCV使用外部点制作多边形?

手动制作所需结果的示例图像每次对象移动时,我都会得到角坐标的列表。我想用这些坐标制作一个填充物,以便我只能对移动的对象进行掩盖。问题在于,角坐标不是顺序的,因此无论上一个点如何,多数均不到随机点,并且对象内部也有角落。我只需要物体的外角,以便我可以进行轮廓并填充它。任何帮助将受到欢迎,谢谢你们。看答案您正在寻找convexhull()功能。这是一个Python教程和C++教程在上面,我认为是一个更好的解释。请注意,这不会给您确切想要的东西,但也许它足够接近您的应用程序