Non-linear Icosphere

喜欢而已 提交于 2019-12-11 09:54:24

问题


I need an icosphere with all edges the same length. Currently I generate one starting from an icosahedron and then linearly interpolate each triangle. All tutorials I could find used the same linear interpolation. Someone later suggested just using the icosphere from blender, which works, though also uses the linear interpolation...

So anyone has a good tutorial on how to make an icosphere and make sure all the sides are equal? (It would also be ok if you know a program which can make this and export it as a .obj or something.)


回答1:


This is not possible to have an arbitrarily precise sphere from equilateral triangles. If you require equilateral triangles, the best you can get is the icosahedron (which you probably already have). The reason is called "angle defect":

The angle defect is 360 degrees the sum of vertex angles around a vertex. Any polyhedron must have a total vertex defect equal to 720 degrees:

  • tetrahedron: 4*180 degrees
  • octahedron: 6*120 degrees
  • cube: 8*90 degrees
  • icosahedron: 12*60 degrees
  • dodecahedron: 20*36 degrees

If five equilateral triangles meet at a vertex, they accumulate 36 degrees of defect. If six equilateral triangles meet at a vertex, they contribute nothing to the defect.

If six equilateral triangles meet at a vertex, they must form either

  • a plane or
  • a fold (edge) or
  • a saddle.

There is a polyhedron called pentakis icosahedron with 32 vertices but if you make it out of equilateral triangles, you'll get a non-convex polyhedron.

So, if you want an arbitrarily precise sphere, you need to allow different length edges so that the angle defect may distribute evenly across the surface. Equal sides with arbitrary precision are impossible.



来源:https://stackoverflow.com/questions/12988257/non-linear-icosphere

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!