在n维中查找矩形的坐标
Finding coordinate of rectangle in n-dimension
C++中计算n维矩形(超矩形)坐标的最佳方法是什么?
我在一维向量中定义了矩形的尺寸,例如:
[min1, max1, min2, max2, ...., minN, maxN]
例如,在二维维度中,向量是
[min1, max1, min2, max2]
而我要找的角坐标是
[min1, min2], [min1, max2], [max1, min2], [max1, max2]
我们如何为 n 维的超矩形执行此操作?
hyper-rectangle 有 2^N 个顶点。
要计算第 i
个顶点的坐标,其中 i
在 [ 0 .. 2^N-1 ]
区间内,从 0(最低的一个)到 N 循环 i
中的位-1。如果设置了该位,则使用该维度的最大坐标,如果该位为 0,则使用该维度的最小坐标。
例如,对于立方体 N=3,它有 8 个顶点。
第一个索引为 0,0b000
,您将获得所有 3 个坐标的最小值。
最后一个索引为 7,0b111
,您将获得所有 3 个坐标的最大值。
其余顶点介于两者之间,您将得到最小和最大坐标的某种组合。
C++中计算n维矩形(超矩形)坐标的最佳方法是什么?
我在一维向量中定义了矩形的尺寸,例如:
[min1, max1, min2, max2, ...., minN, maxN]
例如,在二维维度中,向量是
[min1, max1, min2, max2]
而我要找的角坐标是
[min1, min2], [min1, max2], [max1, min2], [max1, max2]
我们如何为 n 维的超矩形执行此操作?
hyper-rectangle 有 2^N 个顶点。
要计算第 i
个顶点的坐标,其中 i
在 [ 0 .. 2^N-1 ]
区间内,从 0(最低的一个)到 N 循环 i
中的位-1。如果设置了该位,则使用该维度的最大坐标,如果该位为 0,则使用该维度的最小坐标。
例如,对于立方体 N=3,它有 8 个顶点。
第一个索引为 0,0b000
,您将获得所有 3 个坐标的最小值。
最后一个索引为 7,0b111
,您将获得所有 3 个坐标的最大值。
其余顶点介于两者之间,您将得到最小和最大坐标的某种组合。