openGL学习(一)

一 配置openGL环境

    参考博客https://blog.csdn.net/qq_19003345/article/details/76098781

二 目标

    实现下列两张图片的输出效果

openGL学习(一)_第1张图片   openGL学习(一)_第2张图片

三 代码

(一)输出白色矩形:

  1. #include  
  2.   
  3. void init()  
  4. {  
  5.     glClearColor(0.0, 0.0, 0.0, 0.0); //背景设为黑色  
  6.     glMatrixMode(GL_PROJECTION); //使用正交投影  
  7.     gluOrtho2D(0.0, 200.0, 0.0, 200.0); //坐标范围为 0<=x<=200 0<=y<=200  
  8. }  
  9.   
  10. void display_square()  
  11. {  
  12.     glClear(GL_COLOR_BUFFER_BIT);  
  13.     glRecti(50, 50, 150, 150); //填充矩形区域  
  14.     glFlush(); //强制清空所有缓存  
  15. }  
  16.   
  17. int main(int argc, char** argv)  
  18. {  
  19.     glutInit(&argc, argv);  
  20.     glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); //单个缓存,RGB三色模型  
  21.     glutInitWindowPosition(100, 50);   
  22.     glutInitWindowSize(400, 400); //设置窗口大小和位置  
  23.     glutCreateWindow("Square");  
  24.   
  25.     init();  
  26.     glutDisplayFunc(display_square);  
  27.     glutMainLoop();  
  28. }  

(二)输出绿色黑框立方体:

  1. #include  
  2.   
  3. //----------------//  
  4. // 观察坐标系参数 //  
  5. //----------------//  
  6.   
  7. //观察坐标系原点  
  8. GLdouble x0 = 0.0;  
  9. GLdouble y0 = 0.0;  
  10. GLdouble z0 = 5.0;  
  11. //视点  
  12. GLdouble x1 = 0.0;  
  13. GLdouble y1 = 0.0;  
  14. GLdouble z1 = 0.0;  
  15. //向上向量  
  16. GLdouble vx = 0.0;  
  17. GLdouble vy = 1.0;  
  18. GLdouble vz = 0.0;  
  19.   
  20. void init()  
  21. {  
  22.     glClearColor(1.0, 1.0, 1.0, 0.0); //  
  23.     glMatrixMode(GL_MODELVIEW);  
  24.     gluLookAt(x0, y0, z0, x1, y1, z1, vx, vy, vz);  
  25.     glRotatef(45.0, 0.0, 1.0, 1.0);  
  26.     glMatrixMode(GL_PROJECTION);  
  27.     glFrustum(-1.0, 1.0, -1.0, 1.0, 1.5, 15.0);  
  28. }  
  29.   
  30. void display_cube() //绘制单位立方体和单位立方体线框  
  31. {  
  32.     glClear(GL_COLOR_BUFFER_BIT);  
  33.     glColor3d(0.0, 1.0, 0.0);  
  34.     glutSolidCube(2.0);  
  35.     glColor3d(0.0, 0.0, 0.0);  
  36.     glLineWidth(2.0);  
  37.     glutWireCube(2.0);  
  38.     glFlush();  
  39. }  
  40.   
  41. int main(int argc, char* argv[])  
  42. {  
  43.     glutInit(&argc, argv);  
  44.     glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);  
  45.     glutInitWindowPosition(100, 100);  
  46.     glutInitWindowSize(400, 400);  
  47.     glutCreateWindow("Cube");  
  48.   
  49.     init();  
  50.     glutDisplayFunc(display_cube);  
  51.     glutMainLoop();  
  52.     return 0;  
  53. }  


你可能感兴趣的:(openGL)