我在這裏問了一些問題,看到這個幾何形狀在其他測地線形狀中被提及過幾次,但我很好奇我怎樣才能生成一個關於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