我在这里问了一些问题,看到这个几何形状在其他测地线形状中被提及过几次,但我很好奇我怎样才能生成一个关于xyz的点?如何生成细分的二十面体?
回答
Here是我用于基于OpenGL红皮书的细分二十面体的一个参考。我的iPhone应用程序Molecules的BSD许可source code包含用于生成简单的二十面体并将它们加载到OpenGL ES的顶点缓冲对象中的代码。我还没有纳入细分来提高渲染的质量,但它在我的计划中。
有一个教程here。
基本的想法是从一个二十面体(有20个三角形面)开始,并将每个三角面反复细分为更小的三角形。在每个阶段,每个新点都会径向移动,因此距离中心点的距离是正确的。
阶段的数量将决定生成多少个三角形,从而确定生成的网格与球体的接近程度。
现在添加了链接文章的摘要(我不认为我在6年前就知道这个规则......) – 2015-04-10 15:40:33
抱歉,这是来自审查队列的回复 - 我甚至没有注意到'09年在答案上盖章。感谢更新。 – LittleBobbyTables 2015-04-10 15:45:04
要计算一个球体,大多数人将线性细分,但不会产生圆形。
对于一个圆角的tesselation,旋转两个点通过一系列的旋转。
- 绕z中的第二个点(通过点1的z角)为0
- 绕y中的第二个点(通过点1的y角)为0(这在逻辑上把点1处北极)。
- 将z周围的第二个点旋转到0(这在逻辑上将点1放在x/y平面上,现在它变成一个单位圆)。
- 找到半角,计算新的第3点第3点的x和y。
- 按照与步骤3),2)和1)相反的顺序执行反转以将第3点它的目的地。
还有一些数学方面的考虑值,每个接近0的位置附近的值,如北极和南极,以及最右边和最左边以及最前和最后位置,因此如果他们在这些位置,请首先检查它们并按pi/4(45度)执行额外的旋转。这可以防止浮点数学库被吓倒,并为atan2()和其他trig函数生成大量字符外值。
希望这有助于! :-)
- 1. 细分的二十面体 - 如何找到任意点的最近顶点
- 2. 二十面体几何体不呈现
- 3. 将颜色样本分布到二十面体几何面
- 4. 基于外接十二面体的分裂空心球体
- 5. 截二十面体的图块对象
- 6. 如何使用加速计确定八面体和十二面体的边?
- 7. 有没有人有在JavaScript中绘制细分的二十面体的样本,他们将能够分享?
- 8. 如何将纹理映射到二十面体的两侧?
- 9. 二十面体加入边角
- 10. 不会出现十二面体纹理
- 11. Saber:如何区分第二个EnhancedAirBook中的细分细节
- 12. 生成细分的三角形条形立方体?
- 13. C++二维曲面细分库?
- 14. 使用three.js将二十面体几何体的每个面分开一些空的空间
- 15. 表面细分成相等部分
- 16. Threejs二十面体几何顶点颜色
- 17. 二维磁共振成像扫描产生的体素如何?
- 18. 第二分钟成本生成树
- 19. 如何生成像数限制和十
- 20. 使用Glut的OpenGL中的多色二十面体
- 21. 三JS:如何添加图像在每个顶点的二十面体
- 22. 如何在three.js中为二十面体缓冲区几何建立索引
- 23. 二分图的随机生成树
- 24. WordPress二十十二,如何输出wp_title的前两个单词?
- 25. 分成细胞
- 26. 为什么我的二十面体不是绘图?
- 27. ggplot Dymaxion /瀚洋(二十面体)地图投影的
- 28. 十二面体三角形的顶点法线
- 29. Android的 - 中国十二生肖应用 - 如何攻击这个
- 30. JSF生成的页面和实体selectOneMenu
有一个教程[这里](http://www.donhavey.com/blog/tutorials/tutorial-3-the-icosahedron-sphere/)。 – 2009-02-18 13:50:20