C++ 如何在c++;
假设我有一个N对正长坐标(点)的列表 如何找到包含所有矩形的最小矩形?C++ 如何在c++;,c++,geometry,C++,Geometry,假设我有一个N对正长坐标(点)的列表 如何找到包含所有矩形的最小矩形? 矩形也可以有浮动坐标,可以以任何角度旋转并进一步缩小。。。不仅仅是X,Y,宽度和高度 我已经知道如何找到最小的多边形或不旋转的矩形,但这不是我需要的…我想知道如何找到任意方向的最小包围盒。这说明你可以通过使用最小矩形必须有一条边与凸包的一条边共线的事实来解决这个问题。我不知道这是否对你有帮助,但以下是我对如何解决这个问题的看法 您将需要函数来查找“最拐角”点(在您的示例中,左2点和右2点)。给定这4个点,用线将它们连接起来
矩形也可以有浮动坐标,可以以任何角度旋转并进一步缩小。。。不仅仅是X,Y,宽度和高度
我已经知道如何找到最小的多边形或不旋转的矩形,但这不是我需要的…我想知道如何找到任意方向的最小包围盒。这说明你可以通过使用最小矩形必须有一条边与凸包的一条边共线的事实来解决这个问题。我不知道这是否对你有帮助,但以下是我对如何解决这个问题的看法 您将需要函数来查找“最拐角”点(在您的示例中,左2点和右2点)。给定这4个点,用线将它们连接起来 (注意,在示例图像中,生成的矩形不会包含顶点,因此…) 然后需要一个函数来确定生成的矩形是否包含所有给定的点;如果没有,则将端点(在本例中,生成的矩形的顶部2个点)扩展N(这是单个度量值…比如说一个像素,或者如果您很聪明,则是到超出边界的点的距离加/减一取决于方向)并重新计算 见
“最小面积框”一节有各种各样的例子。也许这篇文章可以帮助你:也许这对你有用:
- 找到所有点的中心点(所有x的总和/x的数量,y相同)
- 以距离中心最远的点作为角点
- 以角点的90°角投影穿过第二个最远点的线
- 迭代中心点另一侧的点并找到最小值