我在这里问过一些问题,并看到这个几何形状在其他测地线形状中提到了几次,但我很好奇我究竟会如何生成一个关于xyz的点呢?
答案 0 :(得分:11)
有一个教程here。
基本思想是从二十面体(具有20个三角形面)开始,并将每个三角形面重复细分为更小的三角形。在每个阶段,每个新点都会径向移动,因此距离中心的距离是正确的。
阶段的数量将决定生成三角形的数量,从而确定生成的网格与球体的接近程度。
答案 1 :(得分:9)
Here是我用于细分二十面体的一个参考,基于OpenGL红皮书。我的iPhone应用程序source code的BSD许可Molecules包含用于生成简单二十面体并将其加载到OpenGL ES的顶点缓冲区对象中的代码。我还没有合并细分来提高渲染质量,但这是我的计划。
答案 2 :(得分:7)
为了对球体进行细分,大多数人会线性地对点进行细分,但这不会产生圆形。
对于圆形镶嵌,通过一系列旋转旋转两个点。
对于每个近0位置附近的值,还有一些数学考虑因素,例如北极和南极,以及最右边和最左边,最前面和最后面的位置,所以检查如果他们在那些位置,那么首先进行pi / 4(45度)的额外旋转。这可以防止浮点数学库吓坏并为atan2()和其他trig函数生成粗略的字符外值。
希望这有帮助! :-)