十二面体三角形的索引以原点为中心

时间:2012-05-05 13:17:39

标签: c# 3d polyhedra

维基百科说原点的十二面体有这个坐标(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图形。

1 个答案:

答案 0 :(得分:0)

第一组8个顶点定义了一个立方体。

3x4剩余点分为6对,位于立方体的6个面之外。

每组六个点(立方体面的四个顶点和远离原点的相应两个点)形成重复六次的图案。你可以从每组中获得6个三角形。

二十面体实际上更简单:它只有20个三角形而不是36个。它有一个类似的模式,你可以在维基百科页面上看到。