回答
一種可能應包括一個與圓所在平面垂直的矢量。這樣做的好處是,如果您決定渲染圓形,則將使用法線來確定該圓形所定義的曲面之外的反射。
你真的想在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. Python - 在計算對象時移除另一個圓圈內的圓圈
- 7. 圍繞一個大圓圈移動一個小圓圈
- 8. 太空圓形輪廓(三維)(3D)
- 9. 在距離10處的圓圈內畫一個圓圈
- 10. 如何在WPF中創建一個帶圓圈的圓圈?
- 11. 計算兩個圓圈之間的碰撞時間 - 物理
- 12. 畫一個圓圈像素
- 13. 確定一個點是否從三維空間的一個圓上的另一個點向左或向右?
- 14. CSS:位置圓(LI)成一個圓圈
- 15. 檢查另一個圓圈是否包含圓圈
- 16. 投影在三維空間曲線
- 17. 在三維空間中計算點的可見性
- 18. 如何在一個大圓圈中均勻分佈12個圓圈
- 19. 在SVG中繪製一個空心圓圈
- 20. 畫一個圓圈在Android MapView的
- 21. 在視圖上畫一個圓圈(android)
- 22. 在mapkit上畫一個圓圈
- 23. 我想在VB.Net中畫一個圓圈
- 24. iOS標籤在一個圓圈
- 25. 在android中畫一個圓圈
- 26. 帆布夾圖像在一個圓圈
- 27. 在directx中繪製一個圓圈9
- 28. 在gisMap上畫一個圓圈
- 29. 在svg倒計時中畫一個圓圈
- 30. 如何使用KineticJS從一個圓圈創建箭頭到另一個圓圈?
circle or sphere? – RiddlerDev 2010-02-10 16:04:02
您是否在詢問所有可能的不同選擇,或者我們會推薦什麼?因爲後者在很大程度上依賴於它的使用...... – tooleb 2010-02-10 16:25:00