《OpenGL编程基础》第二章习题1
来源:互联网 发布:淘宝跑路双十一 编辑:程序博客网 时间:2024/04/20 16:56
还没看第三章,工作需要看了写纹理看了写矩阵变换,但是基本看不懂啊,,把活儿交差了先。
做了第二章的第一个习题,通过细分多边形模拟化缘,哦,是画圆
代码及注释:
#include <stdlib.h>#include <math.h>#include <stdio.h>static int n = 4;//多边形边数float a = 0; //多边形内角?不知道怎么称呼这个角。。float x=0, y=0; //多边形顶点float R = 1.0f; //半径。static void display(void){ glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_LINE_LOOP); glColor3f(1.0, 0.0, 0.0); a = 360/n; int i; n=n<3?3:n;//不能画成一条直线 for(i=1; a*i<=360; ++i) { //for循环确定多边型顶点 x = R*cos(i*a*3.14/180); y = R*sin(i*a*3.14/180); glVertex2f(x, y); } glEnd(); glLineWidth(10.0);//边线宽度10像素 glFlush();}void myReshape(GLsizei w,GLsizei h){ glViewport(0,0,w,h);}static void key(unsigned char key, int x, int y){ //这个按键处理回调是CodeBox自己创建的自动化代码,刚好拿来用作多边形变化 switch (key) { case 27 : case 'q': exit(0); break; case '+': ++n; //增加多边形边的数量。 break; case '-': --n; //减少边 break; } glutPostRedisplay();}/* Program entry point */int main(int argc, char *argv[]){ glutInit(&argc, argv); glutCreateWindow("Circle"); glClearColor(1.0, 1.0, 1.0, 1.0); //清理颜色,放在这里可以设置背景颜色。 glutDisplayFunc(display); //加班那些事儿 glutReshapeFunc(myReshape); //加班那些事儿,今次没在这个函数里加班。。 glutKeyboardFunc(key); glutMainLoop(); return EXIT_SUCCESS;}
程序出来后是一个整四边行,按“+”按键,逐渐变成一个圆,逐渐的化缘,慢慢的,就特用它化缘讨饭了,
还不清除如何在OpenGL里把数据输出到屏幕或者命令行,今次写这个习题的时候对顶点值的调试花了挺长时间。。郁闷,第二章里关于调试讲的很模糊,,,
- 《OpenGL编程基础》第二章习题1
- 《OpenGL编程基础》第二章笔记1
- 《OpenGL编程基础》第三章习题
- 《OpenGL编程基础》第二章笔记2
- 第二章 OpenGL基础图形编程 - OpenGL概念建立
- 编程珠玑之第二章习题1
- 编程珠玑第二章习题
- OpenGL编程指南 - 第二章
- Python核心编程(第二版) 第五章 课后习题(1)
- 编程珠玑第二章习题2.6(1-4)
- 《编程珠玑》 第二章 算法 习题
- 编程珠玑第二章习题2
- 编程珠玑第二章习题3
- python核心编程第二章习题
- C++ 编程思想 第二章习题
- Python核心编程第二章课后习题
- 编程珠玑 第二章 习题2
- 编程珠玑 第二章 习题6~9
- spring依赖注入(Ioc)控制反转
- Shell调试技术总结(一)
- CString转换为int
- JSON与JAVA数据的转换
- jQuery UI全教程之一(dialog的使用教程)
- 《OpenGL编程基础》第二章习题1
- 基于自由Linux十一国庆后的第二天提升
- mysql数据库远程访问设置方法--mysql授权
- Enterprise Architect 8之数据建模(创建外键)
- 基于自由Linux十一国庆后的第三天提升
- 培养人脉的106个技巧
- 经典SQL语句大全
- 基于自由Linux十一国庆后的第四天提升
- make xxx Is a directory. Stop. 的原因