非线性的Icosphere

The*_*ler 1 c# 3d graphics

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

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

Joh*_*rak 5

这不可能具有来自等边三角形的任意精确的球体.如果你需要等边三角形,你可以得到的最好的是二十面体(你可能已经拥有).原因被称为" 角度缺陷 ":

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

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

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

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

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

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

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