围绕点旋转 Vector2

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)

Dr.*_*ann 8

您正在v围绕点旋转该点pv-p这是通过围绕原点旋转向量并将所得向量(读取点平移)添加回 来完成的p

\n\n

由于v-p=(50,0)90\xc2\xb0 旋转给出(0,50)并加回得到相对于原点成 45\xc2\xb0 角度的p点,但仍然从 垂直向上。(50,50)p

\n\n
  |           v after rotation\n  |         o\n  |         .\n  |         .\n  |         .\n  |         .\n--o---------+---------o-----\norigin      p         v at start\n
Run Code Online (Sandbox Code Playgroud)\n

  • 添加了一个廉价的 ASCII 草图。 (6认同)