• 大小: 5KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: C/C++
  • 标签: OpenGL  

资源简介

请配合我的博客http://blog.csdn.net/m0_37876745/article/details/78232399使用

资源截图

代码片段和文件信息

/**
    这里使用到的是opengl 和 glut 进行编写学习的笔记,一个简单的出口
    使用到的开发库有 linux (gl glu glut) windows(opengl32.lib glu32.lib glut32.lib)

    实现: 绘制一个三角锥和正方体
    一个关键点是init函数中的glEnable(GL_DEPTH_TEST);开启深度测试
    自己关闭和打开看看效果有什么不同
*/

#include 
#include 

using namespace std;

GLfloat g_angle = 0; // 设置旋转的角度
//===========================OpenGL 部分=========================
// 初始化opengl的一些参数
void init()
{
    glEnable(GL_DEPTH_TEST);
}

//------------------------------------
// 设置刷新时间
void timer(int p)
{
    glutPostRedisplay();
    glutTimerFunc(20 timer 0);
}

//-----------------------------------
// 显示我们要绘制的模型
void display()
{
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清理颜色缓存和深度缓存
 glLoadIdentity(); // 重置矩阵


 glTranslatef(0.0f 0.0f -6.0f);
 // 设置旋转的角度,这里glRotatef 第1个参数是角度,2~4 参数是指定旋转轴
 // 这里我们设置于z轴作旋转轴
 glRotatef(g_angle 0.0 0.0f 1.0f);
 g_angle += 1.0f;

 // 绘制三角锥
 // 这里是通过绘制4个三角形来拼接起来的
 glTranslatef(-1.5f 0.0f 0.0f);

 //设置棱锥转的时候相当奇怪,变成了棱锥自转,立方体围绕着它公转
 //glRotatef(g_angle 0.0 1.0f 0.0f);
 glBegin(GL_TRIANGLES); 
    // 第1个三角形 前面
    glColor3f(1.0f 0.0f 0.0f);
    glVertex3f( 0.0f  1.0f 0.0f);
    glColor3f(0.0f 1.0f 0.0f);
    glVertex3f(-1.0f -1.0f 1.0f);
    glColor3f(0.0f 0.0f 1.0f);
    glVertex3f( 1.0f -1.0f 1.0f);

    // 第2个三角形 左面
    glColor3f(1.0f 0.0f 0.0f);
    glVertex3f( 0.0f  1.0f 0.0f);
    glColor3f(0.0f 1.0f 0.0f);
    glVertex3f(-1.0f -1.0f -1.0f);
    glColor3f(0.0f 0.0f 1.0f);
    glVertex3f(-1.0f -1.0f 1.0f);

    // 第3个三角形 右边    
    glColor3f(1.0f 0.0f 0.0f);
    glVertex3f( 0.0f  1.0f 0.0f);
    glColor3f(0.0f 1.0f 0.0f);
    glVertex3f( 1.0f -1.0f 1.0f);
    glColor3f(0.0f 0.0f 1.0f);
    glVertex3f(1.0f -1.0f -1.0f);

    // 第4个三角形 后边    
    glColor3f(1.0f 0.0f 0.0f);
    glVertex3f( 0.0f  1.0f 0.0f);
    glColor3f(0.0f 1.0f 0.0f);
    glVertex3f( 1.0f -1.0f -1.0f);
    glColor3f(0.0f 0.0f 1.0f);
    glVertex3f(-1.0f -1.0f -1.0f);

 glEnd();


 // 绘制一个正方体
 glTranslatef(3.0f 0.0f 0.0f);
 //glRotatef(g_angle 1.0 0.0f 0.0f);
 glBegin(GL_QUADS);
    // 前面
    glColor3f(1.0f 0.0f 0.0f);
    glVertex3f(-1.0f 1.0f 1.0f);
    glVertex3f( 1.0f 1.0f 1.0f);
    glVertex3f( 1.0f-1.0f 1.0f);
    glVertex3f(-1.0f-1.0f 1.0f);

    // 左面
    glC

评论

共有 条评论