在n维中查找矩形的坐标

时间:2019-07-16 20:20:01

标签: c++ coordinates n-dimensional

在C ++中以n维计算矩形(超矩形)坐标的最佳方法是什么?我在1d向量中具有矩形的尺寸,例如{1d_min,1d_max,2d_min,2d_max,....,nd_min,nd_max}。例如,在2d中,尺寸为{1d_min,1d_max,2d_min,2d_max}。坐标将为{1d_min,2d_min},{1d_min,2d_max},{1d_max,2d_min},{1d_max,2d_max}。 但是,我要它用于n维。

1 个答案:

答案 0 :(得分:2)

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

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

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

第一个索引为0,0b000,您将获得所有3个坐标的最小值。 最后一个索引为7,0b111,您将获得所有3个坐标的最大值。 其余两个顶点在中间,您将获得最小和最大坐标的组合。