【问题标题】:Difficulties adjusting to OpenGL on the Mac在 Mac 上适应 OpenGL 的困难
【发布时间】:2010-11-03 00:30:55
【问题描述】:

我知道 OpenGL 本身是一个常见问题,但我无法找到解决我遇到的这个特定问题的方法。我一直在关注 NeHe 的教程,但遇到了一些我认为不应该发生的问题:

  • 当调用 glRotatef 时,第一个参数是角度,它似乎是旋转速度。

例子:

glRotatef(0, 0.0f, 1.0f, 0.0f); // despite the constant numbers, the object rotates infinitely

我正在使用 NSTimer 循环绘制方法,我可能认为这是问题的一部分。

  • 对象不会像应有的那样旋转 360 度,而是对象的角度将增加至 180,然后减小回 0。这与 2D 和 3D 对象相同。

我从 Apple 和其他地方看到了与我没有相同问题的示例代码,但我始终无法弄清楚我到底做错了什么导致了这些问题。

【问题讨论】:

    标签: opengl


    【解决方案1】:

    glRotatef(0,0.0f,1.0f,0.0f); 那里的代码根本不会改变旋转,它只是请求绕 Y 轴旋转 0 度。如果您希望对象随着时间的推移平稳旋转,我建议您执行以下操作: 保持一个计数器在每次触发计时器时递增,然后,在绘制要显示的任何对象之前,使用glLoadIdentity() 重置转换矩阵,然后调用glRotatef( counter , 0.0f, 1.0f , 0.0f )

    【讨论】:

    • 编辑 2:在 glRotatef 之前添加 glLoadIdentity(并将第一个参数更改为递增变量)现在对象根本不旋转。
    • 我是个白痴;在做出所有建议的更改后,我的增量是一个非常低的角度。现在可以了;谢谢。
    猜你喜欢
    • 2021-06-11
    • 2020-01-23
    • 1970-01-01
    • 2010-12-12
    • 2015-08-02
    • 2011-07-26
    • 1970-01-01
    • 2014-06-14
    • 2013-11-07
    相关资源
    最近更新 更多