C++ 计算边界框的顶点

C++ 计算边界框的顶点,c++,geometry,3d,C++,Geometry,3d,我被这个看起来很简单的问题难住了。我有一个二维边界框,其中有两个角点。我想确定剩下的两个拐点。一个重要约束:边界框可以以任何方式定向,并且不一定与水平轴和垂直轴(即x轴和y轴)对齐 我希望这样做,因为我想光栅扫描边界框。如评论中所述,您没有完整的信息。让我解释一下:画一个你想找到点的虚拟矩形——确保矩形是旋转的,即不是“平的” 现在,选择左上角和右下角点——将它们视为平放在x轴上的矩形的左上角和右下角点。这表明至少可以有两个具有相同两个相对点的矩形。类似地,您可以改变倾斜角度并获得无限多的点 如

我被这个看起来很简单的问题难住了。我有一个二维边界框,其中有两个角点。我想确定剩下的两个拐点。一个重要约束:边界框可以以任何方式定向,并且不一定与水平轴和垂直轴(即x轴和y轴)对齐


我希望这样做,因为我想光栅扫描边界框。

如评论中所述,您没有完整的信息。让我解释一下:画一个你想找到点的虚拟矩形——确保矩形是旋转的,即不是“平的”

现在,选择左上角和右下角点——将它们视为平放在x轴上的矩形的左上角和右下角点。这表明至少可以有两个具有相同两个相对点的矩形。类似地,您可以改变倾斜角度并获得无限多的点

如果需要唯一的矩形,则至少需要定义倾斜。希望有帮助


我确信这不是您想要听到的答案,但是,正如前面提到的,两个对角相对的点不足以定义二维曲面上的矩形。因为一张图片胜过千言万语,这里有一张两个不同的矩形共享相同对角点的图片


它们是对角的,是的。如果长方体在空间中没有对齐,那么两个对角点根本不足以确定其几何图形。你还有什么额外的信息?两点不足以定义矩形在空间中的方向。考虑旋转由两个点之间的线定义的轴上的“正确”矩形。注意这两个点是对角相反的。因为我有对角线,所以肯定只有一个框可以从中绘制。2d轴对齐的框有4个自由度:宽度、高度、x位置、y位置。这样的框可以定义为4个值x1、y1、x2、y2。未对齐的长方体还有一个自由度:旋转。你需要更多的信息。一个边框通常指的是一个矩形,因此你不能简单地倾斜一个矩形来得到另一个。我也看不出你的画是如何说明这个问题的。红色四边形的两个相对点不是蓝色四边形的两个相对点。