5.5 Opengl编程实例-红蓝三角形
来源:互联网 发布:那个电视好 知乎 编辑:程序博客网 时间:2024/04/30 10:13
#include <GL/glut.h>typedef GLfloat point2d[2]; // a point data typevoid triangle( point2d a, point2d b, point2d c) // display a triangle{ glBegin(GL_TRIANGLES); glVertex2fv(a); glVertex2fv(b); glVertex2fv(c); glEnd();}void display(void){ point2d v[3] = {{-1.0, -0.58}, {1.0, -0.58}, {0.0, 1.15}}; //initial triangle vertices glClear(GL_COLOR_BUFFER_BIT); // Clear display window glColor3f(0.0,0.0,1.0); // Set fill color to blue glLoadIdentity();//应该放在此处,保证每次显示正确 glViewport(0, 0, 300, 400); // Set left viewport triangle(v[0], v[1], v[2]); glColor3f(1.0,0.0,0.0); // Set fill color to red glViewport(300, 0, 300, 400); // Set right viewport glRotatef(90.0, 0.0, 0.0, 1.0); // Rotate about z axis triangle(v[0], v[1], v[2]); // Display blue triangle glFlush();}void init(){ glMatrixMode(GL_PROJECTION); //glLoadIdentity();//如果放在此处,会导致第一次显示正确,再次刷新时图形旋转 gluOrtho2D(-2.0, 2.0, -2.0, 2.0); glMatrixMode(GL_MODELVIEW); glClearColor(1.0, 1.0, 1.0,1.0);}void main(int argc, char **argv){ glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(600, 400); glutCreateWindow("Triangle"); glutDisplayFunc(display); init(); glutMainLoop();}
注意:教材中原代码中第55行”glLoadIdentity()”位置不对,现在更正至第31行。教材中原图5.17同时更正如上图。
思考:教材中原代码中根据所给三角形顶点坐标,三角形应为一个正角形,为何显示时不是正角形呢?同时,在旋转后的三角形也发生了变形,请分析原因,并给出修改建议。提示:请从”glViewport()”函数入手。
阅读全文
0 0
- 5.5 Opengl编程实例-红蓝三角形
- OpenGL绘制旋转三角形实例
- OpenGL绘制旋转三角形实例
- OpenGL编程指南-环境搭建,渲染三角形
- 12[红+绿+蓝+Alpha]
- 红蓝按钮交替移动
- OpenGL ES2.0编程实例
- android opengl es实例画三角形-native C实现
- OpenGL蓝宝书
- Java编程实例:向内旋转的三角形
- 蓝桥 杨辉三角形
- 蓝魔rm600+ 红屏解决方案
- 红R绿G蓝B
- 红蓝3D的原理
- 北京理工大学虚拟现实作业之红蓝交替
- 随机生成双色球彩票红,蓝数字
- HTML之变色(蓝、绿、红)
- 4.4.2 OpenGL几何变换编程实例
- c_day06_宏定义
- 提交本地代码到git服务器
- 如何理解方向梯度直方图(Histogram Of Gradient)
- 2018网易校招内推-堆棋子(Python)
- LeetCode.66 Plus One
- 5.5 Opengl编程实例-红蓝三角形
- c++:变量在内存上的分布
- JZOJ2017.08.19 B组
- MobileNet 训练检测网实验总结
- hdu 3061 Battle (最小割最大流 --->最大闭合子图)
- 编写程序从键盘得到三个整数,找出其中的最大数(升级版)
- python爬虫进阶(十):日志系统、守护线程以及验证码处理
- 投资人读一份BP只用3分44秒,你还敢不认真准备吗?
- Oracle数据库如何优化已成为了很多人头痛的课题