以前還在學(xué)校時(shí),有過(guò)強(qiáng)烈的目睹高維物體的愿望,也想自己實(shí)現(xiàn)一個(gè)4維立方體試試,于是先在網(wǎng)絡(luò)上到處找n維立方體有關(guān)的展示視頻,在youtobe上發(fā)現(xiàn)了不少,一看就是一整天,結(jié)果第二天有別的事情,干別的事去了,當(dāng)時(shí)連規(guī)律都沒(méi)有找,想法就此結(jié)束。今天突然又有了興致,于是決定好好分析一番。從最基本開(kāi)始,點(diǎn),我們?nèi)菀淄瞥觯?維到n維,超立方體的點(diǎn)數(shù)是2的n次方。另外還容易推出:每增加一維,就會(huì)誕生新的空間概念,例如,0維只有點(diǎn)的空間概念,1維誕生了線(xiàn),2維誕生了面,3維誕生了體,4維誕生了4維體.......并且新空間概念的定義都是由上一個(gè)概念往新的維度拉伸產(chǎn)生的。而比較難推出的關(guān)鍵一點(diǎn)就是:往新的維度拉伸的時(shí)侯,已有的某個(gè)概念增加的數(shù)量=原來(lái)的數(shù)量*2+低一級(jí)的概念的數(shù)量。例如,2維往3維拉伸正方形時(shí),面數(shù)量即立方體的面數(shù)=正方形的面數(shù)*2+正方形線(xiàn)的數(shù)量;立方體線(xiàn)數(shù)=正方形線(xiàn)數(shù)*2+正方形點(diǎn)的數(shù)量證明方法,比較嚴(yán)密的方法還想不出,不過(guò)很容易想到:往新的維度拉伸時(shí),拉伸的起點(diǎn)和終點(diǎn)使某空間概念的數(shù)量拷貝了一份,另外拉伸時(shí),比該空間概念底一級(jí)的空間概念拉伸產(chǎn)生了該空間概念。這個(gè)說(shuō)得比較抽象,具體公式可以由下面的圖表示出:
有了這些概念后,可以編程出一些內(nèi)容了~~~由于在OpenGL中體是用面包裝起來(lái)表示的,因此我們必須找出n維立方體中點(diǎn)、線(xiàn)、面之間的規(guī)律,至于更高一層概念的規(guī)律可以暫時(shí)不理了。先給出一個(gè)還不完整類(lèi)聲明:
初始化點(diǎn)、線(xiàn)、面在各個(gè)維度立方體中的數(shù)量:其中maxDim表示最大維度,一般設(shè)一個(gè)小于16的值,