Nei*_*eil 2 math geometry vector three.js
我试图了解当我们围绕任意点旋转向量时会发生什么。如果 px 为 0,则角度将为 90,我明白这一点,但我无法想象为什么当我使用 px = 50 时它是 45。
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);Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r82/three.min.js">
</script>Run Code Online (Sandbox Code Playgroud)
您正在v围绕点旋转该点p。v-p这是通过围绕原点旋转向量并将所得向量(读取点平移)添加回 来完成的p。
由于v-p=(50,0)90\xc2\xb0 旋转给出(0,50)并加回得到相对于原点成 45\xc2\xb0 角度的p点,但仍然从 垂直向上。(50,50)p
| v after rotation\n | o\n | .\n | .\n | .\n | .\n--o---------+---------o-----\norigin p v at start\nRun Code Online (Sandbox Code Playgroud)\n