微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

围绕一个点旋转对象

如何解决围绕一个点旋转对象

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

解决方法

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

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

例如:

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

另见How to use Pivot Point in Transformations

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。