在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维。
答案 0 :(得分:2)
该超矩形具有2 ^ N个顶点。
要计算第i
个顶点的坐标,其中i
间隔中的[ 0 .. 2^N-1 ]
,请将i
中的位从0(最低)循环到N-1 。如果设置了该位,则对该尺寸使用最大坐标,如果该位为0,则对该尺寸使用最小坐标。
例如,对于立方体N = 3,它具有8个顶点。
第一个索引为0,0b000
,您将获得所有3个坐标的最小值。
最后一个索引为7,0b111
,您将获得所有3个坐标的最大值。
其余两个顶点在中间,您将获得最小和最大坐标的组合。