#include<GL/glut.h>
#include <windows.h>static GLfloat spin=0.0;             //旋转量
static GLfloat move=0.0;               //平移量
static GLfloat size=1.0;               //缩放量void init(void)
{glClearColor(0.0,0.0,0.0,0.0);     //指定清除颜色(黑色),即背景颜色glShadeModel(GL_FLAT);
}void display(void)
{glClear(GL_COLOR_BUFFER_BIT);      //清除所有的像素glPushMatrix();glTranslatef(move,0,0);             //移动,参数含义(x轴位移,y轴位移,z轴位移)glRotatef(spin,0,0,1);              //旋转,参数含义(旋转量,x轴,y轴,z轴)glScalef(size,size,1);                //缩放,参数含义(x轴倍数,y轴倍数,z轴倍数)glColor3f(0.0,1.0,0.0);             //绘制颜色RGBglRectf(-25.0,-25.0,25.0,25.0);        //绘制矩形glPopMatrix();glutSwapBuffers();
}void reshape(int w,int h)
{glViewport(0,0,w,h);glMatrixMode(GL_PROJECTION);glLoadIdentity();glOrtho(-50.0,50.0,-50.0,50.0,-1.0,1.0);
}void spinAndSizeDisplay()
{spin>360?spin-=360:spin+=2;size>2?size-=2:size+=0.003;glutPostRedisplay();             //标记当前窗口需要重绘,否则不会旋转Sleep(10);
}void moveDisplay()
{move=move>20?move-=20:move+=1;glutPostRedisplay();              //标记当前窗口需要重绘,否则不会旋转Sleep(10);
}int main(int argc,char* argv[])
{glutInit(&argc,argv);                          //初始化GLUT并处理命令行参数glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);     //指定模式:双缓存;RGB模式glutInitWindowSize(250,250);                  //指定窗口大小(像素)glutInitWindowPosition(300,200);              //指定窗口左上角在屏幕上的位置glutCreateWindow(argv[0]);                      //使用OpenGL场景创建一个窗口,参数为窗口名称init();                                            //调用初始化函数glutDisplayFunc(display);                      //显示glutReshapeFunc(reshape);                       //重绘glutIdleFunc(spinAndSizeDisplay);               //旋转&缩放//glutIdleFunc(moveDisplay);                     //移动(与上边函数只能有一个有效)glutMainLoop();                                   //进入主循环并处理事件,此时创建的所有窗口都会显示出来,被渲染到这些窗口中的内容也将显示出来,程序开始处理事件,注册的显示回调函数被触发return 0;                                      //ANSI C要求函数main()返回一个int值
}

效果图:

OpenGL入门示例8——图形平移、旋转、缩放相关推荐

  1. Unity 触屏手势控制Camera平移旋转缩放

    Unity 触屏手势控制Camera平移旋转缩放 实现思路 单点触屏,位移增量控制相机平移: 两点触屏,两点位移控制相机前后移动(缩放):两点中一点不位移控制相机绕点旋转: 实现需要的API Touc ...

  2. webgl图形平移、缩放、旋转

    文章目录 前言 平移 图示 代码示例 缩放 图示 代码示例 旋转 公式推导 代码示例 总结 前言 在webgl中将图形进行平移.旋转.缩放的操作称为变换或仿射变换,图形的仿射变换涉及到顶点位置的修改, ...

  3. 三维空间中的几何变换-平移旋转缩放

    前言 前段时间由于项目需要,深入学习了下图形几何变换,主要是绕任意轴旋转部分(其他的已有一定基础),现记录学习笔记. 文章内容部分引用并参考了下面的博客: http://netclass.csu.ed ...

  4. Unity矩阵平移旋转缩放Matrix4x4

    Unity中的矩阵(Matrix4x4) 最近在研究帧同步定点数物理系统中需要自定义定点数矩阵,所以在这里分享下基础的矩阵案例旋转.平移.缩放.(注意这里本文中的transform组件式基于unity ...

  5. OpenGL实验2:图形的旋转、平移、缩放

    之后有空再补一下具体的细节理论叭(可能正好当作自己复习的资料啦,

  6. OpenGL中的平移旋转缩放

    1.opengl中缩放使用的函数是glScalef 其原型为void glScalef(GLfloat  x,  GLfloat  y,  GLfloat  z); 该函数表示模型在各轴上进行扩大和缩 ...

  7. 初学计算机图形学——OpenGL实现二维图形平移,旋转(不使用opengl自带的函数,齐次方程实现)

    要求:1.给定窗口中绘制坐标系 2.给定坐标系内绘制三角形 3.完成平移.旋转等变换后的三角形绘制 4.采用OpenGL绘制 代码: #include<windows.h> #includ ...

  8. canvas学习笔记(下篇) -- canvas入门教程--保存状态/变形/旋转/缩放/矩阵变换/综合案例(星空/时钟/小球)...

    [下篇] -- 建议学习时间4小时  课程共(上中下)三篇 此笔记是我初次接触canvas的时候的学习笔记,这次特意整理为博客供大家入门学习,几乎涵盖了canvas所有的基础知识,并且有众多练习案例, ...

  9. 三维坐标 偏转_三维坐标变换原理-平移, 旋转, 缩放

    给定一个二维点(x, y),那么形如(kx, ky, k)的所有三元组就都是等价的,它们就是这个点的齐次坐标(homogeneous).齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示,是指 ...

最新文章

  1. 存储过程结果更改编码_Docker安装Minio存储服务器详解
  2. 一个关于native sql的程序
  3. Spring Boot 开发web 项目
  4. 「Python」python调用单个C++文件生成的动态库(.so)Part I
  5. Gradle入门:集成测试
  6. mysql 官方镜像_运行官方mysql 镜像
  7. uni-app微信小程序uni.navigateTo跳转无效问题;记录一次uni-app页面跳转无效,来回跳转问题;wx.navigateTo ,跳转超过10次怎么点不动的解决办法。
  8. 项目开发容易出错情况统计
  9. html区块位置怎么设置,HTML 区块
  10. RabbitMQ SSL安全认证
  11. 电磁学基础——数学场论
  12. 11款程序员实用工具,老少皆宜,你一定用得上!
  13. 湖南省第1届职业技能大赛(经历、总结)
  14. (高小德用车)高仿滴滴/快的应用源代码
  15. DAEMON 中的 SPTD 和 发生sptd.sys 错误的处理办法~
  16. Java递归解压zip压缩包
  17. docker(五):更新容器映射端口
  18. 笔记本无线和有线的MAC地址修改
  19. mac苹果电脑删除顽固残留软件图标
  20. 计算机网络常见的协议之ICMP协议

热门文章

  1. 猿创征文|国产数据库[StarRocks]实战学习
  2. 大学计算机基础知识电子版,大学计算机基础考试知识点(完整版).pdf
  3. input tabIndex说明
  4. matlab抗混叠滤波器,音频抗混叠滤波器设计
  5. getchar() 和 getch()
  6. C#WinForm应用程序——简易摇号系统
  7. vr虚拟现实技术介绍,vr虚拟现实技术未来前景
  8. Excel VBA:设置单元格边框
  9. js正则表达式的使用:
  10. 为什么有些应用程序愿意采用不可靠的UDP,而不愿意采用可靠的TCP?试解释为什么ARP高速缓存每存入一个项目就要设置10~20分钟的超时计时器。这个时间设置的太大或太小会出现什么问题?