2

C ++中计算n维矩形(超矩形)坐标的最佳方法是什么?

我在一维向量中有矩形的尺寸定义,例如:

[min1, max1, min2, max2, ...., minN, maxN]

例如,在二维维度中,向量是

[min1, max1, min2, max2]

我正在寻找的角落坐标是

[min1, min2], [min1, max2], [max1, min2], [max1, max2]

我们如何为 n 维的超矩形做到这一点?

4

1 回答 1

6

该超矩形有 2^N 个顶点。

要计算区间中第-个顶点的坐标,i请循环从 0(最低一个)到 N-1 中的位。如果设置了该位,则使用该维度的最大坐标,如果该位为 0,则使用该维度的最小坐标。i[ 0 .. 2^N-1 ]i

例如,对于立方体 N=3,它有 8 个顶点。

第一个具有索引 0, 0b000,您将获得所有 3 个坐标的最小值。最后一个具有索引 7, 0b111,您将获得所有 3 个坐标的最大值。其余顶点介于两者之间,您将获得最小和最大坐标的某种组合。

于 2019-07-16T20:59:41.697 回答