gpt4 book ai didi

c++ - glRotatef 不旋转任何东西

转载 作者:行者123 更新时间:2023-11-28 07:24:49 24 4
gpt4 key购买 nike

问题来了:我的三角形不旋转!为什么?我做错了什么?

代码如下:

主要.cpp

#include <iostream>
#include <GL/glut.h>
#include <GL/gl.h>
#include "myobject.h"

using namespace std;

Vector3f position = Vector3f(0.0f,0.0f,0.0f);

myobject *Ob = new myobject(position);

float _angle = 0.1f;

void render(){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

_angle += 0.4f;

glPushMatrix();
glTranslatef (0.0f, -0.0f, -0.2f);
glRotatef(_angle, 1.0f, 0.0f, 0.0f);
Ob->draw();
glPopMatrix();

glutSwapBuffers();



}

void init(){
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(640, 480);
glutCreateWindow("test");

glutDisplayFunc(render);

glutMainLoop();
}


int main(int argc, char * argv[]) {

glutInit(&argc, argv);
init();
return 0;
}

我的对象.cpp

#include <iostream>
#include <GL/glut.h>
#include <GL/gl.h>
#include "myobject.h"

using namespace std;

myobject::myobject(Vector3f pos)
{
_position = pos;
_size = 0.0f;
}

myobject::~myobject()
{
}


void myobject::draw()
{
glBegin(GL_TRIANGLES);
glColor3f(0.2f,0.2f,0.5f);
glVertex3f( 0.0f, 0.0f, 0.5f);
glVertex3f(-1.0f,-0.5f, 0.0f);
glVertex3f( 0.5f,-0.5f, 0.0f);
glEnd();
}

最佳答案

你确定你有动画运行吗?

可能您只需调用 glutPostRedisplay() 您的 render() 函数。这样 GLUT 就会更新窗口和动画。

更好的选择是使用:

glutIdleFunc(myIdle);

和:

void myIdle()
{
updateScene(deltaTime);
renderScene();
glutSwapBuffers();
}

另一件事:尝试使用现代的 opengl...而不是旧的...

关于c++ - glRotatef 不旋转任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18931844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com