OpenGL之三维立方体的旋转 3

1.使用工具

Code::Blocks

2.网格立方体的创建
void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT );
    glColor3f(1.0f, 0.0f, 0.0f);
        glLoadIdentity();//初始化
        glRotatef(angle, 1,1,1);
        glutWireCube(0.5);
    glFlush();
}

在这里插入图片描述
这是正视图,看着像2D。
其实还有很多形状

void glutWireSphere(GLdouble radius, GLint slices, GLint stacks); //网状球
void glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); //实心球
void glutWireCube(GLdouble size); //网状立方体
void glutSolidCube(GLdouble size); //实心立方体
void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); //网状圆环
void glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); //实心圆环
void glutWireCone(GLdouble radius, GLdouble height, GLint slices, GLint stacks); //网状圆锥体
void glutSolidCone(GLdouble radius, GLdouble height, GLint slices, GLint stacks); //实心圆锥体
void glutWireTeapot(GLdouble size); //网状茶壶
void glutSolidTeapot(GLdouble size); //实心茶壶 
3.立方体旋转

何为动画?就是不断地清除,刷新。
在OpenGL中:

glutIdleFunc() // 不断刷新的函数,可以理解为游戏引擎中的 update()

好了,给出代码:

#include <windows.h>
#include <GL/glut.h>
// 显示函数
void display(void);
void myAnim(void);
// 定义角度
float angle = 0.0f;
// 主函数
int main(int argc, char** argv)
{
    glutInit(&argc, argv);                          // 初始化
    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
    glutInitWindowPosition(400, 100);               // 窗口位置
    glutInitWindowSize(400, 400);
    glutCreateWindow("KUOKUO");                     // 标题
    glutDisplayFunc(&display);
    // 不断调用显示函数,达到动画效果
    glutIdleFunc(&myAnim);                          // 调用函数来绘制
    glutMainLoop();                                 // 启动消息循环
    return 0;
}

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT );
    glColor3f(1.0f, 0.0f, 0.0f);
        glLoadIdentity();//初始化
        glRotatef(angle, 1,1,1);//沿着3轴旋转一次
        glutWireCube(0.5);
    glFlush();
}

void myAnim(void)
{
    angle += 0.1f;
    if (angle > 360) {
        angle = 0.0f;
    }
    display();
}

实现效果
在这里插入图片描述

O(∩_∩)O~~

猜你喜欢

转载自blog.csdn.net/kuokuo666/article/details/88371901