功能:点击鼠标左键加速旋转,点击鼠标右键减速旋转,点击中间滑轮,退出

#include <GL/glut.h>
#include <stdlib.h>
GLfloat   rtri;//金字塔旋转角度
float add = 0.1f;
void init(void)
{glClearColor(0.0f, 0.0f, 0.0f, 0.0f);glShadeModel(GL_SMOOTH);//设为smooth处理方式,注意看区别glEnable(GL_DEPTH_TEST);//激活深度测试
}void display(void)
{glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    //清除颜色缓存和深度缓存glLoadIdentity();glTranslatef(-1.5f, 0.0f, -6.0f);glRotatef(rtri, 0.0f, 1.0f, 0.0f);glBegin(GL_TRIANGLES);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);glColor3f(1.0f, 0.0f, 0.0f);glVertex3f(0.0f, 1.0f, 0.0f);glColor3f(0.0f, 0.0f, 1.0f);glVertex3f(1.0f, -1.0f, 1.0f);glColor3f(0.0f, 1.0f, 0.0f);glVertex3f(1.0f, -1.0f, -1.0f);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);glColor3f(1.0f, 0.0f, 0.0f);glVertex3f(0.0f, 1.0f, 0.0f);glColor3f(0.0f, 0.0f, 1.0f);glVertex3f(-1.0f, -1.0f, -1.0f);glColor3f(0.0f, 1.0f, 0.0f);glVertex3f(-1.0f, -1.0f, 1.0f);glEnd();rtri += add;//加一个角度glutSwapBuffers();//交换双缓存
}
void reshape(int width, int height)
{glViewport(0, 0, width, height);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(45.0f, (GLfloat)width / (GLfloat)height, 0.1f, 100.0f);glMatrixMode(GL_MODELVIEW);glLoadIdentity();
}
void MousePlot(GLint button, GLint action, GLint xMouse, GLint yMouse)
{if (button == GLUT_LEFT_BUTTON && action == GLUT_DOWN) {if (add == 0) add = 0.1f; add = add * 2; }if (button == GLUT_RIGHT_BUTTON && action == GLUT_DOWN){if (add == 0) add = 0.1f;  add = add / 2;}if (button == GLUT_MIDDLE_BUTTON && action == GLUT_DOWN)exit(0);glutPostRedisplay(); // 刷新窗口
}
int main(int argc, char** argv)
{glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);//使用双缓存模式和深度缓存glutInitWindowSize(640, 480);glutInitWindowPosition(100, 100);glutCreateWindow("Transform2");init();glutDisplayFunc(display);glutReshapeFunc(reshape);glutIdleFunc(display);//设置空闲时调用的函数glutMouseFunc(MousePlot);//鼠标响应glutMainLoop();return 0;
}

计算机图形学-旋转四棱锥相关推荐

  1. 计算机图形学 第四章 光栅图形学

    第四章 光栅图形学 计算机图形学 第四章 光栅图形学的相关内容,包括:直线段的扫描转换算法.圆弧的扫描转换算法.多边形区域填充.字符的生成.裁剪.反走样 等 Def 光栅显示器:一个像素矩阵(因此,要 ...

  2. 【计算机图形学】小白谈计算机图形学(四)二维三维图形变换—1

    小白谈计算机图形学(四)二维三维图形变换-1 窗口与视图 二维图形的几何变换 平移变换 比例变换 旋转变换 二维图形变换的矩阵表示 三种变换 齐次坐标变换 原二维线性变换 齐次坐标法 复合变换 例题: ...

  3. 计算机图形学第四次上机——鼠标回调图形界面交互实现

    计算机图形学第四次上机实验 课程实验报告 目录 计算机图形学第四次上机实验 课程实验报告 一.实验目的 二.实验环境 三.实验内容 3.1绘制曲线 3.2绘制曲面 3.3颜色 3.4鼠标回调 四.实验 ...

  4. 计算机图形学 | 实验四:绘制一个球体

    计算机图形学 | 实验四:绘制一个球体 计算机图形学 | 实验四:绘制一个球体 封装Shader 为什么要封装Shader 如何使用 绘制球模型 球面顶点遍历 构造三角形图元 开启线框模式 开启面剔除 ...

  5. 计算机图形学——实验四 纹理映射实验

    实验四 纹理映射实验 实验项目性质:设计性实验 所属课程名称:计算机图形学A 实验计划学时:3学时 一.实验目的和要求 掌握纹理映射的基本原理,利用VC++ OpenGL实现纹理映射技术. 二.实验原 ...

  6. 【计算机图形学实验四——简单几何形体的平移、缩放、旋转等几何变换】

    一.实验内容.目的.要求 1.简单几何形体(三角形.多边形等)的平移.缩放.旋转等几何变换. 2.掌握相关算法的原理及实现 3.实现基础代码(非调用OpenGL等图形库): 缩放.旋转等能指定变换参考 ...

  7. 计算机图形学(四)几何变换_4_二维复合变换_4_二维刚体变换

    二维复合变换_4_二维刚体变换 如果一个变换矩阵仅包含平移和旋转参数 ,则它是一个刚体变换矩阵 (rigid-body transforma-tion matrix) .二维刚体变换矩阵的一般形式为 ...

  8. 计算机图形学 旋转平移原理,计算机图形旋转操作详细步骤

    这是更改对象角度的过程.旋转可以是顺时针或逆时针.对于旋转, 我们必须指定旋转角度和旋转点.旋转点也称为枢轴点.打印关于旋转哪个对象的信息. 旋转类型 逆时针方向 逆时针方向 枢轴点的正值(旋转角度) ...

  9. 计算机图形学(四)几何变换_3_矩阵逆变换

    矩阵逆变换 对于平移变换,我们通过对平移距离取负值而得到逆矩阵.因此,如果二维平移距离是tx和ty,则其逆平移矩阵是 这产生相反方向的平移,而平移矩阵和其逆矩阵的 乘积是一个 单位矩阵.逆矩阵 通过旋 ...

最新文章

  1. 运算放大器在强电磁干扰下会出现什么变化?
  2. Jackson 注解 -- 类型转换(序列化,反序列化)、私有字段
  3. Spring websocket 使用@Autowired 出现null
  4. ad15原理图中变压器种类_「知识」共轭结构整流变压器低压输出三排八列短网结构引线布置...
  5. pytorch-数据增强的trick
  6. csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法
  7. qt插件开发python_Qt5 Matplotlib设计器插件
  8. html网页实现查询功能实现,CSS与媒体查询实现网页导航功能(附代码)
  9. 麓堂诗话 明 李东阳 著
  10. 网工解惑?什么是路由器、交换机与防火墙,他们的区别与联系是什么?
  11. 计算机数字键盘无法输入数字,键盘无法输入,键盘数字键打不出来
  12. 浅析ARM公司在物联网领域的战略布局
  13. 收盘价对数收益率matlab,R语言怎么把股票日收盘价转换成对数收益率
  14. Unity3D中删除指定路径的文件+删除文件夹
  15. AMD推两款集成CPU和GPU的新FirePro处理器
  16. python爬虫入门——13行代码制作英语翻译器教程,小白入门一点通
  17. 升级iOS 15后iPhone无法连接App Store怎么办?
  18. jqGrid与Struts2的结合应用(一) —— 显示基本Grid表格
  19. CSS3实现图片的3D旋转效果
  20. 离线分析:Flume+Kafka+HBase+Hadoop通话数据统计

热门文章

  1. java orm框架 博客园_ORM框架的前世今生
  2. ppt模板目录结构怎么制作
  3. 十大最流行PHP框架排名
  4. java default string_Java--default详解
  5. 程序员离职代码交接_开发人员离职项目交接
  6. 限制输入框不能输入斜杠/和反斜杠\
  7. 工业图像异常检测最新研究总结(2019-2020)
  8. 大学计算机专业有哪些?该选择哪个专业呢?
  9. 科大讯飞的Chatgpt?
  10. 为毛老抱怨工资低又不离职