2016-11-11 159 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