#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.0f; GLfloat step = 0.0005; //float exp1 = 1e-3; void init() { glLoadIdentity(); glClearColor(0.0, 0.0, 0.0, 0.0); } void draw(void) { glClear(GL_COLOR_BUFFER_BIT); glPushMatrix(); printf("%f %f %f\n", rtx, rty, rtz); glTranslatef(rtx, rty, rtz); glBegin(GL_QUADS); glColor3f(1.0f, 0.0f, 0.0f); glVertex2f(-0.5f, 0.5f); glColor3f(0.0f, 1.0f, 0.0f); glVertex2f(0.5f, 0.5f); glColor3f(0.0f, 0.0f, 1.0f); glVertex2f(0.5f, -0.5f); glColor3f(0.5f, 0.5f, 0.5f); glVertex2f(-0.5f, -0.5f); glEnd(); glPopMatrix(); glutSwapBuffers(); } /* special key defined in glut #define GLUT_KEY_F1 1 #define GLUT_KEY_F2 2 #define GLUT_KEY_F3 3 #define GLUT_KEY_F4 4 #define GLUT_KEY_F5 5 #define GLUT_KEY_F6 6 #define GLUT_KEY_F7 7 #define GLUT_KEY_F8 8 #define GLUT_KEY_F9 9 #define GLUT_KEY_F10 10 #define GLUT_KEY_F11 11 #define GLUT_KEY_F12 12 #define GLUT_KEY_LEFT 100 #define GLUT_KEY_UP 101 #define GLUT_KEY_RIGHT 102 #define GLUT_KEY_DOWN 103 #define GLUT_KEY_PAGE_UP 104 #define GLUT_KEY_PAGE_DOWN 105 #define GLUT_KEY_HOME 106 #define GLUT_KEY_END 107 #define GLUT_KEY_INSERT 108 */ void processKeyBoard1(int key, int x, int y) { switch (key) { case GLUT_KEY_LEFT: if (rtx - step > -0.53)rtx -= step; break; case GLUT_KEY_RIGHT: if (rtx + step < 0.53)rtx += step; break; case GLUT_KEY_UP: if (rty + step < 0.53)rty += step; break; case GLUT_KEY_DOWN: if (rty - step > -0.53)rty -= step; break; default: break; } glutPostRedisplay(); return; } //float step = 0.001; void move(){ if(rtx+step>0.5||rtx+step<-0.5)step=-step; rtx+=step; glutPostRedisplay(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutInitWindowPosition(100, 100); glutInitWindowSize(600, 600); glutCreateWindow("test"); init(); glutDisplayFunc(draw); // glutIdleFunc(move); //自动运动 glutSpecialFunc(processKeyBoard1);//响应键盘 glutMainLoop(); return 0; }
参考 http://blog.csdn.net/iaccepted/article/details/43802347
绕y轴旋转
#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.0f; GLfloat step = 0.01; //float exp1 = 1e-3; void init() { glLoadIdentity(); glClearColor(0.0, 0.0, 0.0, 0.0); } float rquad = 0; void draw(void) { glClear(GL_COLOR_BUFFER_BIT); glPushMatrix(); printf("%f %f %f\n", rtx, rty, rtz); glTranslatef(rtx, rty, rtz); glRotatef(rquad,0.0f,1.0f,0.0f); glBegin(GL_QUADS); glColor3f(1.0f, 0.0f, 0.0f); glVertex2f(-0.5f, 0.5f); glColor3f(0.0f, 1.0f, 0.0f); glVertex2f(0.5f, 0.5f); glColor3f(0.0f, 0.0f, 1.0f); glVertex2f(0.5f, -0.5f); glColor3f(0.5f, 0.5f, 0.5f); glVertex2f(-0.5f, -0.5f); glEnd(); glPopMatrix(); glutSwapBuffers(); } //float step = 0.001; void move(){ // if(rtx+step>0.5||rtx+step<-0.5)step=-step; // rtx+=step; rquad += step; glutPostRedisplay(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutInitWindowPosition(100, 100); glutInitWindowSize(600, 600); glutCreateWindow("test"); init(); glutDisplayFunc(draw); glutIdleFunc(move); // glutSpecialFunc(processKeyBoard1); glutMainLoop(); return 0; }
相关推荐
应用Qt开发的OpenGL例程,实现了三棱锥和四方体的三维显示和运动等简单的操作,适合入门学者
OpenGL三维彩色平滑着色正方体,自由旋转,由三角形绘制
行业文档-设计装置-一种四方体纯净水桶.zip
Opengl_ES_2.0 的示例代码,是个旋转的方体。可以在仿真器上模拟。 仿真器:OpenGL_ES_2_0_Emulator_1.2.0.5635_Win32.msi 说明: 仿真器安装完毕后 1.把其中的libEGL.lib和libGLESv2.lib拷贝到vs2008的lib库中,...
方体四线圈均匀磁场源研究,余慈拱,陈伟,一个可以产生已知强度的均匀磁场区的标准磁场源是测试、标定各类测磁仪器的基本条件。以正方体四线圈作为均匀磁场标准场源,从理
在 OpenGL 中提高渲染的一种方式。只刷新屏幕上发生变化的部分,OpenGL 允许将要进行渲染的窗口只去指定一个裁剪框。 基本原理:用于渲染时限制绘制区域,通过此技术可以在屏幕(帧缓冲)指定一个矩形区域。启用裁剪...
行业文档-设计装置-方体阀.zip
行业文档-设计装置-方体暖气片.zip
其次,为了描述财务时间序列的高峰和肥尾以及杠杆效应,本文使用基于自回归综合移动平均模型的偏斜非对称幂自回归条件异方差模型来分析销售数据。 实证分析表明,考虑偏态分布的模型是有效的。
代码实现了Kinect V2 + PCL 实现简单地方体目标的体积测量 1、捕获点云 2、空间裁剪 3、下采样 4、滤波 5、平面分割找地面 6、平面分割找目标顶面 7、计算面积、高度及体积
UG8.5二次开发,自动创建BLOCK方体,有需要的请下载
行业文档-设计装置-方体直管换热器.zip
在超方体[Qn]的路分解的研究中,证明了[Qn]存在[{Pn 1}]-分解的定理;分别给出了[Qn]存在[{P4}]-分解的充分必要条件和存在[{P3,P4}]-分解的充分条件;结合超方体的性质和路分解结论,设计出超方体的路分解算法程序。
AS3苹果菜单XML载入图片展示效果+八方体3d图片展示效果 AS3苹果菜单XML载入图片展示效果+八方体3d图片展示效果AS3苹果菜单XML载入图片展示效果+八方体3d图片展示效果AS3苹果菜单XML载入图片展示效果+八方体3d图片...
行业文档-设计装置-方体高压角式截止阀.zip
行业分类-设备装置-方体钣金外壳空气净化器结构.zip
行业分类-设备装置-一种方体产品自动排列装置.zip
BUSSMANN快速熔断器,CE标准,符合中国国标,宽范围电压、电流,一目了然,选型方便快捷。
行业文档-设计装置-一种方体整盖式手动明杆楔形闸阀.zip