围绕一个点旋转Vector2
问题描述:
我想了解当我们围绕任意点旋转矢量时会发生什么。如果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>
答
你旋转点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
我知道我这推一点点,但视觉的任何机会,以帮助我的理解? – Neil
增加了一个便宜的ASCII草图。 – LutzL