回答
一種可能應包括一個與圓所在平面垂直的矢量。這樣做的好處是,如果您決定渲染圓形,則將使用法線來確定該圓形所定義的曲面之外的反射。
你真的想在3D空間中創建一個圓形(2D形狀)嗎?那麼這可能是解決方案:
x,y,z
:圓的中心座標dx,dy,dz
:圓位於r
平面的方向:半徑
實際上'r'是多餘的,因爲它可以用'dx,dy,dz'編碼;) – 2010-02-10 16:09:31
這絕對是一種打包機制,但它並不完全是冗餘的。必須從法向量計算半徑在某些情況下似乎很笨拙。冗餘將在使用x,y,z,x1,y1,z1,x2,y2,z2的方案中提供半徑,其中xa,ya,za是圓周邊上的點。效率較低的編碼,當然,但仍然是一種選擇。 – 2010-02-10 16:16:42
根據你想要做的對象 - 我有另一種選擇。 使用z = 0在xy平面中將圓圈建模爲單位圓。 通過對其進行縮放,平移和旋轉操作。 如果你打算對你的物體做很多矩陣運算,這可能是一條路。
您還可以將單位圓的位置,半徑和法線方向信息保持爲屬性。並有一種方法在兩種描述方法之間進行轉換。
Circle() - Default Unit circle at (0,0,0), radius 1, xy plane at z=0
Circle(scale, translate, rotate) - my constructor
Circle(location, radius, normal) - the other proposed constructor
- 1. 計算在一個圓圈
- 2. 三維空間中的一個圓的中心線
- 3. 圓圈內空圈:
- 4. 尋找一個圓圈是否在另一個圓圈內
- 5. 即使空間多個圓圈繞一個點旋轉
- 6. 如何在一個圓圈
- 7. Python - 在計算對象時移除另一個圓圈內的圓圈
- 8. 太空圓形輪廓(三維)(3D)
- 9. 圍繞一個大圓圈移動一個小圓圈
- 10. 在距離10處的圓圈內畫一個圓圈
- 11. 如何在WPF中創建一個帶圓圈的圓圈?
- 12. 三維霍夫空間
- 13. 計算兩個圓圈之間的碰撞時間 - 物理
- 14. 確定一個點是否從三維空間的一個圓上的另一個點向左或向右?
- 15. GL_TRIANGLE_FAN畫一個圓圈
- 16. 畫一個圓圈像素
- 17. D3帶上一個圓圈?
- 18. 畫一個彩色圓圈
- 19. Win32 GDI畫一個圓圈?
- 20. CSS:位置圓(LI)成一個圓圈
- 21. 投影在三維空間曲線
- 22. 隨機在一個圓圈內設置一段距離產卵
- 23. cv:圓圈函數用一次調用繪製多個圓圈
- 24. 創建一個由小圓圈組成的擴展圓圈
- 25. 檢查另一個圓圈是否包含圓圈
- 26. 爲什麼畫布圓圈看起來不像一個圓圈?
- 27. 在三維空間中計算點的可見性
- 28. 圓圈倒數計時器
- 29. 如何在一個大圓圈中均勻分佈12個圓圈
- 30. 在SVG中繪製一個空心圓圈
circle or sphere? – RiddlerDev 2010-02-10 16:04:02
您是否在詢問所有可能的不同選擇,或者我們會推薦什麼?因爲後者在很大程度上依賴於它的使用...... – tooleb 2010-02-10 16:25:00