草庐IT

c++ - 如何检测椭圆是否与另一个椭圆/矩形碰撞

我想检测椭圆是否与另一个椭圆和矩形发生碰撞。我该怎么做?我正在用C++编写。我想用它来玩游戏。 最佳答案 如果这是一个游戏,那么准确性应该不是问题。将您的椭圆视为多边形,即在您的椭圆上选择N个均匀分布的点并将其视为多边形。将N调整到所需的正确性级别。现在您需要测试凸多边形是否与矩形碰撞。后者也是一个凸多边形。这是convexpolygoncollisiondetection的链接 关于c++-如何检测椭圆是否与另一个椭圆/矩形碰撞,我们在StackOverflow上找到一个类似的问题:

c++ - 如何在 SDL2 中旋转一个矩形?

我打算制作一款游戏,我想为该游戏制作一些背景动画。其中一个动画是一个旋转的矩形。我找遍了所有地方,但找不到任何形式的数学或逻辑来让我旋转矩形(具体来说是SDL_Rect,但您可能已经知道了)。我自己无法算出数学,我真的没有任何可用的代码,所以我无法展示任何东西。本质上,我正在寻找某种类型的逻辑,我可以应用矩形的坐标,以便每当主游戏循环循环时,它都会将矩形旋转一定度数。 最佳答案 你不能旋转SDL_Rect.如果你看一下它的定义,它是由左上角的坐标、宽度和高度组成的。无法表示边不平行于坐标系轴的矩形。SDL_RenderCopyEx不

使用Cesium 解析3DTile数据的包围盒中心点坐标并生成包围盒的平面矩形

目标本文记录如何从3DTile数据的tileset.json文件中,解析出包围盒的中心点坐标以及计算出包围盒的整个包围盒范围的几何平面。boundingVolume数据结构在3DTile数据结构中,boundingVolume(边界范围)属性表当前节点瓦片的空间范围,3dtile的包围盒有三种类型(包围盒box、地理包围区域region或者包围球sphere表示),结构如下://外包盒"box":由12个数字组成数组,前三个元素定义了中心点坐标(x,y,z),其次的三个元素(索引3,4,5)定义了x轴方向半长,然后的三个元素(索引6,7,8)定义了y轴方向和半长,最后的三个元素(索引9,10,

c++ - OpenCV:是否可以从角落检测矩形?

我有一张照片,其中一个人拿着一张纸。我想检测那张纸的矩形。我尝试按照OpenCV的不同教程以及各种SO答案和示例代码来检测正方形/矩形,但问题是它们都依赖于某种轮廓。如果我按照squares.cpp示例,我会从等高线得到以下结果:如您所见,手指是轮廓的一部分,因此算法找不到正方形。我也尝试过使用HoughLines()方法,但我得到的结果与上面类似:不过我可以可靠地检测到角点:图像中还有其他角,但我将发现的角总数限制在总是被发现。是否有某种算法可以从图像的多个角中找到一个矩形?我似乎找不到现有的方法。 最佳答案 您可以应用形态过滤器

c++ - OpenCV - 使用 C++ 从图像中裁剪非矩形区域

如何从图像中裁剪非矩形区域?假设我有四个点,我想裁剪它,这个形状不会是三角形!例如我有下面的图片:我想从图像中裁剪这个:我该怎么做?问候.. 最佳答案 裁剪图像的任意四边形(或任何多边形)部分的过程总结为:生成一个“掩码”。蒙版在你想保留图像的地方是黑色的,在你不想保留它的地方是白色的计算输入图像和掩码之间的“按位与”那么,假设您有一张图片。在整个过程中,为了简单起见,我将使用30x30的图像大小,您可以更改它以适合您的用例。cv::Matsource_image=cv::imread("filename.txt");您有四个要用作

c++ - 使用 AlphaBlend 绘制略透明的矩形失败

我试图在nativeWin32C++中绘制一个稍微透明的蓝色矩形。我正在使用函数AlphaBlend()但它没有在窗口上绘制任何东西,没有任何反应。我的问题:当我运行我的函数来绘制一个稍微透明的矩形时,它没有显示在我的窗口中。我觉得我做错了,也许我应该使用HBITMAP?你能告诉我我需要做什么才能让我的函数在窗口上绘制一个稍微透明的矩形吗?我也知道GDI+,但我现在想避免使用它,因为我在使用该库时遇到很多编译/包含错误,而且我想在没有帮助的情况下尽可能低/原生为我做一切的图书馆。boolpaintRect(HDChdc,RECTdim,COLORREFpenCol,COLORREFbr

c++ - 存储 2D 点以便快速检索矩形内的点

我有大量的2D点,我想快速获取位于某个矩形内的点。让我们说一个'。是任意点,“X”是我想在矩形内找到的点,矩形内的“T”为TopLeft,“B”为BottomRight点:.......T-----+..|XX|..+-----B.......我尝试了一个带有排序仿函数的std::set,它对集合开头的TopLeft点和集合结尾的BottomRight点进行排序。当首先按X值排序时,这将导致找到以下点。.......T-----+.X|XX|X.+-----B.......这意味着我必须检查每个找到的点,是否真的在矩形内。不太好。执行此操作的更好方法是什么?我的语言是C++(Windo

c++ - OpenCV C++ 基于两条直线绘制矩形

我想为我的学校作业做一个parking场检测程序,但我是openCV和图像处理方面的新手。我打算做的是使用houghLine检测parking场上的白线并绘制一个方框。然而,parking场的线并不是一个完整的矩形。例子::我需要的输出::我可以使用houghLine绘制垂直线(红线),但我不知道如何连接线(绿线)以形成一个盒子,因为houghLine检测直线的多个点,不会检测直线的起点和终点。我也尝试了凸包方法,但我没能做到。任何opencv函数都可以克服这个问题??我真的不知道,希望有人能给我一些解决问题的想法。谢谢。 最佳答案

c++ - 找到填充矩形的最少 MS Paint 操作数

我在比赛的某个地方发现了这个问题,但还没有想出解决方案。Ican"select","copy","insert"and"move"inanotherplaceafiguresonthescreen.InitiallyIhavetherectanglewithsize1x1.WhattheleastquantityoftheseoperationsIhavetodoforbuildingofanotherrectangle,whichsizeisAxB.这是我的错误代码:#include#include#definesize1002usingnamespacestd;intmain(){

c++ - 使用 OpenCV 在 blob 中创建矩形

输入图像:输出图像:我在图像中有几个彩色Blob,我试图在每种颜色的最大Blob内创建矩形(或正方形-这似乎更容易)。我找到了theanswertohowtocreatearectanglethatboundsasinglelargestblob,但我不确定如何找到一个完全适合blob的正方形。它不一定是最大的,它只需要比某个区域大,否则我就不会包括它。我还看到了一些关于多边形的工作,但没有看到关于非晶形状的工作。 最佳答案 对于单个blob,问题可以表述为:findthelargestrectanglecontainingonly