围绕一个点旋转对象
Rotate a object around a point
如何围绕一个对象旋转一个对象,例如围绕另一个对象旋转一个对象?最好使用 GL.Rotate 和尽可能少的数学运算!
GL.Rotate
定义一个旋转矩阵,旋转 0.0。如果你想围绕一个枢轴旋转(pivotX
,pivotY
)你必须:
- 平移对象,使轴心点移动到 (0, 0)。
- 旋转对象。
- 移动对象,使轴心点移动到其原始位置。
例如:
GL.Translate(pivotX, pivotY, 0); // 3. move back
GL.Roatate(angle, 0, 0, 1); // 2. rotate
GL.Translate(-pivotX, -pivotY, 0); // 1. move pivot to (0, 0)
另见
如何围绕一个对象旋转一个对象,例如围绕另一个对象旋转一个对象?最好使用 GL.Rotate 和尽可能少的数学运算!
GL.Rotate
定义一个旋转矩阵,旋转 0.0。如果你想围绕一个枢轴旋转(pivotX
,pivotY
)你必须:
- 平移对象,使轴心点移动到 (0, 0)。
- 旋转对象。
- 移动对象,使轴心点移动到其原始位置。
例如:
GL.Translate(pivotX, pivotY, 0); // 3. move back
GL.Roatate(angle, 0, 0, 1); // 2. rotate
GL.Translate(-pivotX, -pivotY, 0); // 1. move pivot to (0, 0)
另见