`
暴风雪
  • 浏览: 390734 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

[opengl]彩色立方体旋转

 
阅读更多
#ifndef GLUT_DISABLE_ATEXIT_HACK
#define GLUT_DISABLE_ATEXIT_HACK
#endif #define GLEW_STATIC
#include <GL/glew.h>
#include <GL/wglew.h>
#include <GL/freeglut.h>
#include <vector>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp> //for matrices
#include <glm/gtc/type_ptr.hpp>
//undefine if u want to use the default bending constraint of pbd
#include<iostream>
using namespace std;

GLfloat rtx = 0.0f, rty = 0.0f, rtz = 0.0;
GLfloat step = 0.1;
//float exp1 = 1e-3;

void init()
{
    glLoadIdentity();
}
//
float rquad  = 0;
void move(){
    rquad += step;
    if(rquad>360)rquad = 0;
}
void draw(void)
{
    move();
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    printf("%lf\n",rquad);
    glPushMatrix();
    glTranslatef(rtx, rty, rtz);

    glRotatef(rquad,1.0f,1.0f,1.0f);
    glScalef(0.3, 0.3, 0.3);
    glBegin(GL_QUADS);
    glColor3f(1, 0, 0);
    glVertex3f(-1.0f, -1.0f, 1.0f);// 前
    glColor3f(0, 1, 0);
    glVertex3f(1.0f, -1.0f, 1.0f);
    glColor3f(0, 0, 1);
    glVertex3f(1.0f, 1.0f, 1.0f);
    glColor3f(0, 1, 1);
    glVertex3f(-1.0f, 1.0f, 1.0f);

    glColor3f(1, 0, 0);
    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);

    glColor3f(0, 1, 0);
    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);

    glColor3f(0, 0, 1);
    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);

    glColor3f(1, 1, 0);
    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);

    glColor3f(0, 1, 1);
    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);
    glEnd();
    glPopMatrix();
    glutSwapBuffers();
}

//float step = 0.001;

int main(int argc, char * argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
    glutInitWindowPosition(100, 100);
    glutInitWindowSize(320, 320);
    glutCreateWindow("Hello OpenGL");
    init();
    glutDisplayFunc(draw);
    glutIdleFunc(draw); //指定程序空闲时调用函数
//    glutReshapeFunc(changeSize); //指定窗口形状变化时的回调函数
    glEnable(GL_DEPTH_TEST);

    glutMainLoop();
    return 0;
}

 

1
0
分享到:
评论
1 楼 mingdry0304 2015-04-16  
  

相关推荐

    opengl绘制彩色立方体

    基于opengl绘制一个六个面不同颜色的立方体,并且通过鼠标来控制立方体沿三个坐标轴的旋转。

    OpenGL交互旋转彩色立方体程序改良

    对教科书上旋转彩色立方体程序进行的改良,可以切换物体,改变视点和旋转物体,可用于交计算机图形学作业。。

    用OPENGL写的彩色立方体

    这个"用OpenGL写的彩色立方体"示例是学习OpenGL基础和3D图形编程的一个很好的起点。在C++环境中,OpenGL通常与GLUT(OpenGL Utility Toolkit)或GLEW(OpenGL Extension Wrangler Library)一起使用,以简化窗口管理...

    彩色立方体OpenGL

    //颜色立方体的颜色 void myinit(void); //初始化设置 void myReshape(GLsizei w, GLsizei h); //屏幕大小改变时响应函数 void display(void); //屏幕绘制响应函数 void controlIdleFunc(int button, int state, int...

    VC立方体旋转

    在本项目中,"VC立方体旋转"是一个利用Microsoft Foundation Class (MFC)库开发的图形应用程序,展示了如何在Windows环境中实现3D图形渲染。这个程序的核心是通过正交投影来展示一个立方体,并且对立方体的边进行...

    绘制可旋转的彩色立方体

    在本实例中,我们将深入探讨如何使用VC++(Visual C++)来创建一个可旋转的彩色立方体。这个立方体不仅能够通过鼠标拖动事件进行交互式旋转,而且在无用户操作时,它还能自动旋转。这样的效果是通过OpenGL图形库实现...

    【OpenGL ES】绘制立方体

    使用 OpenGL ES 绘制旋转的彩色立方体

    VC6.0之三维彩色立方体的绘制与运动

    总结来说,"VC6.0之三维彩色立方体的绘制与运动"这个主题涵盖了OpenGL编程的基础知识,包括顶点定义、颜色设置、几何变换以及用户交互。通过学习这个项目,不仅可以掌握基本的3D图形绘制技巧,还能为更复杂的图形...

    VC OpenGL API实例:旋转的彩色3D立方体.rar

    一个VC OpenGL API实例:旋转的彩色3D立方体,在窗口缩放的过程中,3D立方体会自动旋转,改变角度,虽然很简单,但可学习一下OpenGL API在VC 中的用法。

    Qt调用OpenGL API实现彩色旋转立方体

    详见博客:https://blog.csdn.net/caoshangpa/article/details/80258907 源码中包含了glu和glut等库

    OpenGL代码实现动画(彩色立方体中飞出五颜六色气球)

    这个“OpenGL代码实现动画(彩色立方体中飞出五颜六色气球)”的项目是利用OpenGL来展示动态图形和动画效果的一个实例。下面将详细解释这个项目中涉及的关键知识点。 1. **OpenGL基础知识**: - OpenGL是一个跨...

    图形学立方体旋转程序

    ### 图形学立方体旋转程序知识点解析 #### 一、程序概述 ...以上是对“图形学立方体旋转程序”的核心知识点的详细解析,通过对这段代码的学习,可以深入了解如何使用OpenGL来绘制三维图形,并实现简单的动画效果。

    crystal-cube:Crystal + OpenGL中使用GLFW进行窗口旋转的彩色立方体

    在本项目"crystal-cube"中,我们将探讨如何在Crystal编程语言环境下,结合OpenGL和GLFW库来创建一个可旋转的彩色立方体。 首先,`GLFW`是一个用于创建和管理OpenGL上下文的跨平台库,它提供了窗口管理和输入设备...

    41节的可交互的立方体

    这个交互立方体项目可能是通过JavaScript和WebGL库实现的,让用户能够旋转、缩放或者平移立方体,从而提供一个直观的3D环境体验。 【标签】"WebGL"是本教程的核心技术,它建立在HTML5的Canvas元素之上,提供了对...

    xuanzhuan.rar_Delphi Cube_xuanzhuan_体绘制_立方体

    "旋转彩色立方体"可能是一个源代码文件或者执行文件,实现了不仅旋转而且每个面都有不同颜色的立方体。这展示了如何在3D图形中应用颜色,并可能涉及到了纹理映射或者颜色索引等技术。 总的来说,这个项目旨在教...

    基于虚拟跟踪球的opengl

    vc实现虚拟跟踪球,彩色方块跟随鼠标移动

    Qt5+OpenGL 实现彩色正方体显示、缩放、旋转和拖拽平移

    Qt5.12 OpenGL渲染 通过捕获鼠标事件实现对彩色立方体的缩放、旋转和拖拽平移。程序功能介绍参考本人本站发布的《Qt5+OpenGL 实现彩色正方体显示、缩放、旋转和拖拽平移》文章

    OpenGL动画实现.rar_opengl 魔方_opengl实现动画_opengl运动_动画

    简单的OpenGL动画,利用OpenGL的动画功能,实现运动彩色立方体的旋转。

    计算机图形学(openGL)代码

    交互式计算机图形学--基于openGL的自顶向下方法,包含6个cpp文件,其中涉及到彩色立方体,以及立方体的旋转、点光源下的阴影显示、鼠标键盘的交互,可改变视景深度。

Global site tag (gtag.js) - Google Analytics