2012-05-05 64 views
0

維基百科說,十二面體的起源有這個座標(X,Y,Z)的頂點:
指數爲以原點爲中心十二面體的三角形

(±1, ±1, ±1) 
    (0, ±1/φ, ±φ) 
    (±1/φ, ±φ, 0) 
    (±φ, 0, ±1/φ) 

where φ is golden ratio (φ = (1 + √5)/2 ≈ 1.618) 

比方說,我也會有這樣的頂點在vertexBuffer - 它將是Point3D的一個數組。 我需要爲indexBuffer(這是一個int數組)準備三角形的索引。十二面體有12個面,每個面是五邊形,我會從3個三角形創建每個面這樣說:

enter image description here

first triangle: a,e,b 
second triangle: b,e,d 
third triangle: d,c,b 

爲了方便多面體我可以借鑑它,然後標記頂點,然後輕鬆地拿到指標,但在這種情況下,這不是一個好方法,因爲在這個具有20個面孔的二十面體正在等待我:/
所以我的問題是:有沒有更簡單的方法來獲得這個頂點的索引?


注:
我還應該提到的是,我無法使用OpenGL或DirectX。沒有這個庫,我們應該練習3D圖形。

回答

0

第一組8個頂點定義了一個立方體。

剩餘的3x4點有6對,位於立方體的6個面的每一個的外面。

每組六個點(立方體面的四個頂點和遠離原點的相應兩個點)形成一個重複六次的模式。你可以從每組獲得6個三角形。

一個二十面體實際上更簡單:它只有20個三角形而不是36個。它有一個類似的模式,您可以在其Wikipedia頁面上看到它。