c++ - 我怎样才能在 opengl 中旋转我的对象

标签 c++ opengl rotation

我旋转我的物体,那是一个三角形。但是我的物体的中心移动了。

      //background draw
DrawScreen();
glPushMatrix();

glTranslatef(xgotur,ygotur,zgotur);
glRotatef(derece,0.0,0.0,1.0);

      // drawing my object
glBegin(GL_POLYGON);
    glColor3d(0.2, 0.5, 0.7);
    glVertex2f(-0.1+aralik_bosluk, 0.0+aralik_bosluk);
    glVertex2f(0.0+aralik_bosluk,0.4+aralik_bosluk);
    glVertex2f(0.1+aralik_bosluk, 0.0+aralik_bosluk);
glEnd();    
      // finish draw
glPopMatrix();   

最佳答案

当您使用 glRotate() 旋转对象时,它将围绕世界原点而不是对象的原点旋转。

你应该在这里查看一个关于如何围绕本地原点旋转对象的好例子:

Rotation Local Origin

关于c++ - 我怎样才能在 opengl 中旋转我的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9699841/

相关文章:

opengl - 如何将值传递给 OpenGL 中的顶点着色器的属性数组?

c++ - 旋转整数以获得最大尾随二进制零

ios - 无法绘制旋转图像

opengl - glGenTextures - 纹理数量有限制吗?

c++ - 我在编译代码时遇到一些问题

android - 为什么我的 Navigation Drawer 认为它已关闭但在旋转后仍保持打开状态?

c++ - ostream的标准默认本地化是什么?

c++ - 使用 AVX 逐项添加两个双数组

c++ - 在初始化列表中使用此指针

c++ - 防止双击 MFC-Dialog 按钮