非线性的Icosphere

时间:2012-10-20 12:06:48

标签: c# graphics 3d

我需要一个所有边长相同的icosphere。目前我从二十面体开始生成一个,然后线性插值每个三角形。我能找到的所有教程都使用相同的线性插值。有人后来建议只使用混合器中的icosphere,虽然也可以使用线性插值...

所以任何人都有一个很好的教程,如何建立一个icosphere并确保所有方面都是平等的? (如果你知道一个可以制作它并将其导出为.obj或其他东西的程序,那也没关系。)

1 个答案:

答案 0 :(得分:5)

不可能从等边三角形中获得任意精确的球体。如果你需要等边三角形,你可以得到的最好的是二十面体(你可能已经拥有)。原因称为“angle defect”:

角度缺陷是顶点周围顶点角度之和的360度。任何多面体的总顶点缺陷必须等于720度:

  • 四面体:4 * 180度
  • 八面体:6 * 120度
  • 立方体:8 * 90度
  • 二十面体:12 * 60度
  • 十二面体:20 * 36度

如果五个等边三角形在顶点相交,则会累积36度的缺陷。如果六个等边三角形在顶点相交,则它们对缺陷没有贡献。

如果六个等边三角形在顶点相交,它们必须形成

  • 飞机或
  • 折叠(边缘)或
  • 一个马鞍。

有一个名为pentakis二十面体的多面体有32个顶点,但是如果你用等边三角形制作它,你就会得到一个非凸多面体。

因此,如果您需要任意精确的球体,则需要允许不同长度的边缘,以便角度缺陷可以在表面上均匀分布。任意精度的平等边是不可能的。