裁剪区域和视口区域(1)
来源:互联网 发布:矩阵理论与应用研究生 编辑:程序博客网 时间:2024/05/22 04:54
参考网址:http://www.cnblogs.com/MenAngel/p/5630475.html
问题:画圆,然后拖拽窗口的大小,圆会发生变形。
代码如下:
// ClipWindow.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<GL/glut.h>#include<math.h>const float Pi = 3.1415926f;const int n = 1000;const float R = 0.8f;void init(void){ glClearColor(0.0f,0.0f,0.0f,0.0f); //设置背景色为黑色 glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(-1.0f, 1.0f, -1.0f, 1.0f);}void paintCircle(){ int i; glColor3f(1.0f, 1.0f, 1.0f); //红色的圆 glBegin(GL_POLYGON); for (i = 0; i < n; ++i) { glVertex2f(R*cos(2 * Pi / n*i), R*sin(2 * Pi / n*i)); } glEnd(); glFlush();}int _tmain(int argv, char * argc[]){ glutInit(&argv, argc); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowSize(300, 300); glutInitWindowPosition(800, 300); init(); glutCreateWindow("检测形状变化"); glutDisplayFunc(paintCircle); glutMainLoop(); return 0;}
运行结果:
当拖拽窗口之后得到:
问题产生的原因:
没有正确设置投影矩阵,默认的透视投影矩阵且宽高比为1。因此宽高比改变了,投影就变形了。因此只要宽高比改变了,投影就应该重新计算。
0 0
- 裁剪区域和视口区域(1)
- 裁剪区域和视口区域(2)
- 理解OpenGL 裁剪区域和视口
- 矩形、区域和裁剪
- 5.6 矩形、区域和裁剪
- 5.6 矩形、区域和裁剪
- 详解路径层和裁剪区域应用
- 详解路径层和裁剪区域应用
- 裁剪区域的实现
- Unity-裁剪区域自适应
- Canvas裁剪区域
- ios截屏 裁剪区域
- cocos2dx 裁剪区域
- 区域绘图、绘图路径、裁剪区域
- matlab截取一段视频和裁剪一小块视频区域
- 裁剪cclayer,显示特定区域
- cocos2d-x之区域裁剪
- cocos2d-x之区域裁剪
- c++输出调试信息到vs中的输出窗口
- 笔试题(四)
- 协程到底是个啥
- 【Spark】RDD操作详解2——值型Transformation算子
- 【C++】零碎知识
- 裁剪区域和视口区域(1)
- 广播或者activity跳转singleTask模式的 Activity Bundle和intent参数值为null
- mysql性能优化-慢查询分析、优化索引和配置
- [Elasticsearch] 集群的工作原理 - 第一部分
- Cocos2dx 2.x pk 3.x lua---偏windows
- 微信开发
- java垃圾回收机制
- Node.js url.parse(url, parseQueryString, slashesDenoteHost) 详解
- 破解极验(geetest)验证码