维基百科说原点的十二面体有这个坐标(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图形。
答案 0 :(得分:0)
第一组8个顶点定义了一个立方体。
3x4剩余点分为6对,位于立方体的6个面之外。
每组六个点(立方体面的四个顶点和远离原点的相应两个点)形成重复六次的图案。你可以从每组中获得6个三角形。
二十面体实际上更简单:它只有20个三角形而不是36个。它有一个类似的模式,你可以在维基百科页面上看到。