一 配置openGL环境
参考博客https://blog.csdn.net/qq_19003345/article/details/76098781
二 目标
实现下列两张图片的输出效果
三 代码
(一)输出白色矩形:
- #include<GLglut.h>
- void init()
- {
- glClearColor(0.0, 0.0, 0.0, 0.0); //背景设为黑色
- glMatrixMode(GL_PROJECTION); //使用正交投影
- gluOrtho2D(0.0, 200.0, 0.0, 200.0); //坐标范围为 0<=x<=200 0<=y<=200
- }
- void display_square()
- {
- glClear(GL_COLOR_BUFFER_BIT);
- glRecti(50, 50, 150, 150); //填充矩形区域
- glFlush(); //强制清空所有缓存
- }
- int main(int argc, char** argv)
- {
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); //单个缓存,RGB三色模型
- glutInitWindowPosition(100, 50);
- glutInitWindowSize(400, 400); //设置窗口大小和位置
- glutCreateWindow("Square");
- init();
- glutDisplayFunc(display_square);
- glutMainLoop();
- }
(二)输出绿色黑框立方体:
- #include<GL/glut.h>
- //----------------//
- // 观察坐标系参数 //
- //----------------//
- //观察坐标系原点
- GLdouble x0 = 0.0;
- GLdouble y0 = 0.0;
- GLdouble z0 = 5.0;
- //视点
- GLdouble x1 = 0.0;
- GLdouble y1 = 0.0;
- GLdouble z1 = 0.0;
- //向上向量
- GLdouble vx = 0.0;
- GLdouble vy = 1.0;
- GLdouble vz = 0.0;
- void init()
- {
- glClearColor(1.0, 1.0, 1.0, 0.0); //
- glMatrixMode(GL_MODELVIEW);
- gluLookAt(x0, y0, z0, x1, y1, z1, vx, vy, vz);
- glRotatef(45.0, 0.0, 1.0, 1.0);
- glMatrixMode(GL_PROJECTION);
- glFrustum(-1.0, 1.0, -1.0, 1.0, 1.5, 15.0);
- }
- void display_cube() //绘制单位立方体和单位立方体线框
- {
- glClear(GL_COLOR_BUFFER_BIT);
- glColor3d(0.0, 1.0, 0.0);
- glutSolidCube(2.0);
- glColor3d(0.0, 0.0, 0.0);
- glLineWidth(2.0);
- glutWireCube(2.0);
- glFlush();
- }
- int main(int argc, char* argv[])
- {
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
- glutInitWindowPosition(100, 100);
- glutInitWindowSize(400, 400);
- glutCreateWindow("Cube");
- init();
- glutDisplayFunc(display_cube);
- glutMainLoop();
- return 0;
- }
最后
以上就是完美橘子最近收集整理的关于openGL学习(一)的全部内容,更多相关openGL学习(一)内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复