草庐IT

三边形

全部标签

C++:从带孔的多边形中获取简单多边形的列表

我正在努力使用Boost::Polygon-显然它可以做任何事情,除了我想要的事情。我有一些边界描述了一组多边形及其孔(在二维空间中)。一般来说,我们甚至可以在一个洞中有一个洞(较小的多边形在一个较大的多边形的洞中),或者一个多边形中有多个洞。如果有必要,我可以检查哪个边界描述了一个洞,哪个边界描述了一个多边形。有时边界是分开的(并且不包含彼此),这意味着我们有很多多边形。我想要的是一种方法,它给我一组简单的、不包含任何孔的多边形,它们一起形成输入的“孔”多边形。 最佳答案 这可以通过BoostPolygon实现。您需要polygo

c++ - 应用于四边形时,OpenGL 纹理稍微向左移动

我对OpenGL有点陌生,而且我在使用纹理方面遇到了问题。纹理似乎加载正常,但当我运行程序时,纹理显示向左移动了几个像素,右侧出现了被移动切断的部分。我不知道这里的问题是出在我的TGA加载器中,还是我将纹理应用到四边形的方式。这是加载程序:#include"texture.h"#includeGLubyteuncompressedheader[12]={0,0,2,0,0,0,0,0,0,0,0,0};GLubytecompressedheader[12]={0,0,10,0,0,0,0,0,0,0,0,0};TGA::TGA(){}//Privateloadingfunctionca

c++ - 如何确定 (x, y) 点是否在由边界点列表定义的多边形内

我有一大堆点,它们定义了一些(不一定是凸的)形状的边界。然后我有一些查询点(x,y)并且我想确定(x,y)是否在我的点边界定义的区域内。所以,很简单的问题。如何确定查询点是否在我的边界点形成的形状内?是否有一个很好的boost模块?我正在查看boost::geometry但还没有找到任何东西.. 最佳答案 您似乎在寻找within,不是吗?http://www.boost.org/libs/geometry/doc/html/geometry/reference/algorithms/within/within_2.html他们在页

c++ - 是否有一种有效的标准算法来栅格包括其内部区域的多边形

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Rasterizinga2Dpolygon我需要光栅化一个多边形,包括它的内部区域(确定位于多边形内部的网格的所有图block)。目前,我通过使用简单的Bresenham来确定边界图block,但到目前为止我还没有有效的方法来栅格化多边形的“内部”(也可能是凹面)。到目前为止,我的方法是将图block范围限制为包含多边形的矩形,然后使用多边形缠绕算法确定每个图block中心是位于内部还是外部。这是非常低效的,因为它涉及检查每个图block的每个多边形边界段。从第一眼来看,肯定应该有一种更快的方法,例如……就像

c++ - 如何在 OpenGL 中绘制多边形,这些多边形具有用黑色钢笔绘制的轮廓和另一种填充颜色

如何在OpenGL中绘制这样的形状?我的意思是,我知道如何在OpenGL中绘制多边形。我想知道如何使轮廓黑色和填充颜色(例如)黄色? 最佳答案 您有5个顶点。用它们绘制一个GL_POLYGON,然后绘制一个GL_LINE_LOOP。请注意,GL_POLYGON仅对凸多边形有效。 关于c++-如何在OpenGL中绘制多边形,这些多边形具有用黑色钢笔绘制的轮廓和另一种填充颜色,我们在StackOverflow上找到一个类似的问题: https://stackove

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坐标设置为您需要的值。如您所说,将外轮廓移动到平行平面。为什么这种方法不适合您?是的,您最终可能会得到一些水平三角形,它们的三个顶点