我目前正在尋找一種方法來使矢量座標爲0,0,0的物體軌道。 例如,如果對象位於X300,Y50,Z200比我想它圍繞0,0,0旋轉,但我不想調整Y軸。數學並不好,這被證明是非常難以掌握的。有沒有物體繞矢量點
0
A
回答
1
軌道意味着你有一個軸。 (0,0,0)只是3D空間中的一個點,所以您需要另一個點(-3,8,4)然後從中創建一個標準化軸。如果您使用Three.js Object3D
,則可以簡單地標準化objects.up
屬性。但是,我離題,這裏有一個簡單的載體例如:
var startPoint = new THREE.Vector3(0, 0, 0);
var axisVector = new THREE.Vector3(-3, 8, 4);
var endPoint = new THREE.Vector3(300, 50, 200);
var rotation = 0.05;
var axis = startPoint.clone().sub(axisVector).normalize();
endPoint.applyAxisAngle(axis, rotation);
下面是使用兩個立方體,而不是裸Vector3
的here希望幫助提琴!
1
使用以下代碼允許對象以圓形模式移動。
function orbitRight() {
var x = thisObj.position.x;
var z = thisObj.position.z;
thisObj.position.x = x * Math.cos(.02) - z * Math.sin(.02);
thisObj.position.z = z * Math.cos(.02) + x * Math.sin(.02);
}
相關問題
- 1. Java圍繞中心點旋轉物體?
- 2. 圍繞點的連續物體旋轉
- 3. 旋轉物體以匹配矢量
- 4. 圍繞軸旋轉物體
- 5. 如何在現有矢量的多個點處插入矢量?
- 6. 沒有訪問矢量類中的矢量
- 7. 圍繞原點旋轉3D點/傾斜3D矢量
- 8. cpp有沒有理由更喜歡矢量<class_type*>到矢量<void*>?
- 9. 矢量化這一點沒有使用循環
- 10. 矢量得到沒有重複元素
- 11. 沒有輸入輸入矢量
- 12. GCC沒有矢量化輸出?
- 13. OpenCL內核沒有矢量化
- 14. 矢量沒有正確填充
- 15. 矢量矢量有什麼問題?
- 16. 圍繞物體旋轉相機vs圍繞其中心旋轉物體
- 17. 檢查沒有物理體的SKSprite節點之間的碰撞
- 18. 沒有摩擦的Box2D物體碰撞
- 19. 用BeautifulSoup刮擦:物體沒有屬性
- 20. 物體沒有與邊界碰撞
- 21. 變焦iFrame /沒有裁剪的物體
- 22. 沒有變形的物體 - OpenGL
- 23. Unity 2D C# - 物體內沒有碰撞
- 24. Raycast沒有檢測到物體
- 25. JavaScript的 - (物體)沒有定義
- 26. 從現有矢量
- 27. 訪問在載體的載體的C++矢量但沒有照搬
- 28. JSXGraph:如何繪製帶有箭頭的矢量並且沒有點標記?
- 29. 物理矢量表示
- 30. 正常矢量的旋轉矩陣,圍繞着極點翹曲
感謝您的幫助。這使我能夠在一個新的光明中看到問題。我還找到了一種替代解決方案。我會在下面分享它。 – Kahless
很高興能夠提供幫助,有趣的是'Vector3'有一個基於原點(0,0,0)的長度(有時稱爲幅度),它基本上是一個畢達哥拉斯式的量級。這就是爲什麼原點上的Vector3不能用於旋轉軸的原因。 –