维基百科说原点的十二面体具有具有此坐标(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 个三角形创建每个面:
first triangle: a,e,b
second triangle: b,e,d
third triangle: d,c,b
为了更简单的多面体,我可以绘制它,然后标记顶点,然后轻松获取索引,但在这种情况下,这不是一个好方法,因为在这个有 20 个面的二十面体等着我之后:/
所以我的问题是:有没有任何更简单的方法如何根据上面指定的要求获取此顶点的索引?
注意:
我还应该提到,我不能使用 openGL 或 DirectX。我们应该在没有这个库的情况下练习 3D 图形。