绕点旋转对象

问题描述 投票:0回答:1

如何围绕另一个对象旋转一个对象,例如围绕另一个对象旋转一个对象?最好使用 GL.Rotate 和尽可能少的数学!

c# opentk
1个回答
1
投票

GL.Rotate
定义了一个绕(0, 0)旋转的旋转矩阵。如果您想绕枢轴旋转(
pivotX
pivotY
),您必须:

  1. 平移对象,使轴心点移动到 (0, 0)。
  2. 旋转对象。
  3. 移动对象,使枢轴点移动到其原始位置。

例如:

GL.Translate(pivotX, pivotY, 0);    // 3. move back
GL.Rotate(angle, 0, 0, 1);         // 2. rotate
GL.Translate(-pivotX, -pivotY, 0);  // 1. move pivot to (0, 0) 

另请参阅如何在变换中使用枢轴点

© www.soinside.com 2019 - 2024. All rights reserved.