基于freeglut的使用入门 三角形及多个图像绘制

来源:互联网 发布:国内微电网数据统计 编辑:程序博客网 时间:2024/06/07 22:31

前言:

课程最近开始学习使用OpenGL库函数进行图像处理,个人而言非常陌生,记录一下以便未来学习时候查阅。


主题:

绘制图形主要运用了glBegin()和glEnd()搭配的函数。在我们没有加入任何位移函数的时候,默认在我们画布的正中心即(0,0,0)为中点。

glBegin()中的参数规定了画的是什么图像。部分参数值对应图象会在下文中提及。

在同一组Begin()和End()中间可加入多个图形绘制,后绘制的图形会遮挡前方图形。而且他们共享同一个中点。

我们可以使用多组glBegin()和glEnd()通过glTransted()来构造我们的图案。由于还只是入门级别,这里我直接平面绘图的方式,所有函数中只涉及x,y轴,z轴没有提及。


好的直接上代码,其中glColor3f控制每个顶点的RBG值。背景初始化默认是黑色,我这里加入代码改变了颜色

#include "stdafx.h"#include <GL/freeglut.h>void helloOpengl(void) {glClearColor(1.0, 1.0, 0.6, 1.0);  //改变默认背景有颜色为浅黄色,要写在glLoadIdentity()前glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glLoadIdentity();glBegin(GL_TRIANGLES);{//glColor3f(0.0f, 1.0f, 0.0f);glVertex2f(0.0, 0.3);//glColor3f(1.0f, 0.0f, 0.0f);glVertex2f(-0.3, -0.3);//glColor3f(0.0f, 0.0f, 1.0f);glVertex2f(0.3, -0.3);}glEnd();glTranslated(0.3, 0.3, 0);glColor3f(1.0f, 0.0f, 1.0f);glBegin(GL_QUADS);                         {glVertex3f(-0.2f, 0.2f, 0.0f);               glVertex3f(0.2f, 0.2f, 0.0f);                  glVertex3f(0.2f, -0.2f, 0.0f);                   glVertex3f(-0.2f, -0.2f, 0.0f);                    }glEnd();glutSwapBuffers();}int main(int argc, char *argv[]) {glutInit(&argc, argv);glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);glutInitWindowPosition(100, 100);glutInitWindowSize(640, 640);glutCreateWindow("HelloTriangle");glutDisplayFunc(helloOpengl);glutMainLoop();return 0;}


这里环境简单配置了freeglut,GLFW的配置一直有部分问题,等我解决后再写一下。




额外:

提供几个其他博客看到的Begin中的参数,出处已标

GL_POINTS:把每个顶点作为一个点进行处理,顶点n定义了点n,绘制N个点。
GL_LINES:   把每个顶点作为一个独立的线段,顶点2n-1和2n之间定义了n条线段,绘制N/2条线段
GL_LINE_STRIP:绘制从第一个顶点到最后一个顶点依次相连的一组线段,第n和n+1个顶点定义了线段n,绘制n-1条线段。
GL_LINE_LOOP: 绘制从第一个顶点到最后一个顶点依次相连的一组线段,然后最后一个顶点和第一个顶点相连,第n和n+1个顶点定义了线段n,绘制n条线段。
GL_TRIANGLES: 把每个顶点作为一个独立的三角形,顶点3n-2,3n-1和3n定义了第n个三角形,绘制了N/3个三角形。
GL_TRIANGLE_STPIP:绘制一组相连的三角形,对于奇数n,顶点n,n+1,和n+2定义了第n个三角形;对于偶数n,顶点n+1,n和n+2定义了第n个三角形,绘制N-2个三角形。
GL_QUADS: 绘制由四个顶点组成的一组单独的四边形。顶点4n-3,4n-2,4n-1和4n定义了第n个四边形。绘制了N/4个四边形。
GL_QUAD_STRIP:绘制一组相连的四边形。每个四边形是由一对顶点及其后给定的一对顶点共同确定的。顶点2n-1,2n,2n+2和2n+1定义了第n个四边形,绘制了N/2-1个四边形。
GL_POLYGON:绘制了一个凸多边形。顶点1到n定义了这个多边形。
以上参考:http://blog.csdn.net/aa941096979/article/details/50843596

0 0
原创粉丝点击