#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; }
相关推荐
基于opengl绘制一个六个面不同颜色的立方体,并且通过鼠标来控制立方体沿三个坐标轴的旋转。
对教科书上旋转彩色立方体程序进行的改良,可以切换物体,改变视点和旋转物体,可用于交计算机图形学作业。。
//颜色立方体的颜色 void myinit(void); //初始化设置 void myReshape(GLsizei w, GLsizei h); //屏幕大小改变时响应函数 void display(void); //屏幕绘制响应函数 void controlIdleFunc(int button, int state, int...
非常好的计算机图形论文,旋转立方体的动态实现。有完整源代码(c语言版)
六面六色的彩色立方体,使用QT和OpenGL开发,鼠标手势操作旋转,滚轮进行缩放,旋转矩阵实现旋转,无万向锁问题。
使用 OpenGL ES 绘制旋转的彩色立方体
一个VC OpenGL API实例:旋转的彩色3D立方体,在窗口缩放的过程中,3D立方体会自动旋转,改变角度,虽然很简单,但可学习一下OpenGL API在VC 中的用法。
详见博客:https://blog.csdn.net/caoshangpa/article/details/80258907 源码中包含了glu和glut等库
crystal-cube:Crystal + OpenGL中使用GLFW进行窗口旋转的彩色立方体
vc实现虚拟跟踪球,彩色方块跟随鼠标移动
Qt5.12 OpenGL渲染 通过捕获鼠标事件实现对彩色立方体的缩放、旋转和拖拽平移。程序功能介绍参考本人本站发布的《Qt5+OpenGL 实现彩色正方体显示、缩放、旋转和拖拽平移》文章
简单的OpenGL动画,利用OpenGL的动画功能,实现运动彩色立方体的旋转。
交互式计算机图形学--基于openGL的自顶向下方法,包含6个cpp文件,其中涉及到彩色立方体,以及立方体的旋转、点光源下的阴影显示、鼠标键盘的交互,可改变视景深度。
OpenGL首次调试代码,运行效果是一个旋转的彩色立方体,可以验证linux下OpenGL开发环境是否配置成功
安卓OpenGL立方体 安卓 OpenGL 应用程序。...此应用程序使用手机/平板电脑的惯性传感器(例如加速度计、陀螺仪和磁力计)来查找手机的方向,并使用 OpenGL ES 2.0 在屏幕上绘制具有该方向的彩色立方体。
转动的彩色立方体,绘制一个不停转动的彩色立体球,可以绕着任意方向旋转; 2) 采用一定的光照明技术,考虑环境光、反射光以及镜面光的作用; 3) 采用消隐算法,体现立方体表面的遮挡关系; 4) 具有较好的动画效果,...
OpenGL API源码:旋转的彩色3D立方体,在窗口缩放的过程中,3D立方体会自动旋转,改变角度
openGL绘制彩色旋转的立方体,完整代码,包括所有的lib和dll库,以及顶点着色器和片元着色器
计算机图形学立方体旋转 更新版 分形图像制作器源代码 基于小波零树的图像压缩算法 利用OpenGL实现动画效果 逆滤波处理 实现图案化和抖动技术以及bmp2txt源代码 屏幕保护程序与源代码 屏幕颜色拾取器源代码 曲线处理...
41 彩色立方体 42 简易的Windows媒体播放器 43 制作MIDI播放器 44 场景反走样效果 45 制作景深效果 46 进行拷屏打印 47 纹理映射 48 多线程的实现 49 改变系统时间 50 滚动字幕的实现 51 获取和修改计算机名 52 获取...