2016-11-11 158 views
0

我想了解當我們圍繞任意點旋轉矢量時會發生什麼。如果PX是0,那麼角度爲90,我明白,但我不能想象爲什麼它是45,當我使用PX = 50圍繞一個點旋轉Vector2

var v = new THREE.Vector2(100,0); 
 
var p = new THREE.Vector2(50,0); 
 

 
v.rotateAround(p, 90 * Math.PI/180); 
 
console.log('Angle: ', v.angle() * 180/Math.PI);
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r82/three.min.js"> 
 
</script>

回答

3

你旋轉點v圍繞點p。這是通過圍繞原點旋轉矢量v-p並將得到的矢量(讀取點轉換)添加回p來完成的。

作爲v-p=(50,0) 90°旋轉給出(0,50),並重新添加p給出點(50,50)其在相對於原點的角45°,但仍直線上升從p

|   v after rotation 
    |   o 
    |   . 
    |   . 
    |   . 
    |   . 
--o---------+---------o----- 
origin  p   v at start 
+0

我知道我這推一點點,但視覺的任何機會,以幫助我的理解? – Neil

+2

增加了一個便宜的ASCII草圖。 – LutzL