OpenGL的使用步骤:
初始化glutinit
创建窗口glutcreatewindow
设定窗口的显示模式 glutinitdisplaymode
指定窗口的位置和大小 glutinitwindowposition glutinitwindowsize
指定窗口的显示内容函数glutdisplayfunc
运行框架glutmainloop
设定窗口北京颜色 glclearcolor,rgb数值从0-1
刷新窗口的缓冲区 glclear
设定投影参数 glmatrixmode gluortho2d
绘制图形 glRectf
glVertex3fv: 画点
glFlush();清空缓冲区,将指令送往缓硬件立即执行
图元的绘制在glBegin(GL_QUADS);和 glEnd()中间绘制,只要是绘制点线面,必须在glbegin 和glend之间写,否则无法实现
点的绘制,glVertex 可以带2,3,4个坐标
2是二维xy的,3是三维xyz的,4是xyzw(w不为零,实现缩放)
用opengl 画两个点,发现这个点怎么都没显示出来: 应该用glBegin(GL_POINTS);
glClearColor(0.4, 0.5, 1, 0);
glColor3f(0.0f, 1.0f, 0.0f);
glBegin(GL_POINT);
glPointSize(106);
glVertex3f(0.90f, 0.10f, 0.0f);
glVertex3f(0.4f, 0.40f, 0.0f);
glEnd();
最后发现,我是画的两个点,glBegin后面是point参数,应该为
glBegin(GL_POINTS);
但这段代码中,点的尺寸没有更改成功呢。
画点时像素大小修改失败,显示的还是小点一个像素 glPointSize 放置的位置不对。
解析: 设置像素大小 glPointSize(106); 放在begin之前就可以拉,见下图
画三角形面,每个面一个颜色
//画三角形面
glClearColor(0.4, 0.5, 1, 0);
glColor3f(1.0f, 1.0f, 1.0f);
glBegin(GL_TRIANGLE_STRIP);
glVertex2f(0.0f, 0.0f);
glColor3f(0.0f, 1.0f, 1.0f);//每个设置一个颜色
glVertex2f(10.10f, 10.10f);
glColor3f(0.10f, 0.20f, 1.0f);
glVertex2f(0.200f, 0.20f);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex2f(0.30f, 0.30f);
glColor3f(1.0f, 0.0f, 1.0f);
glVertex2f(0.10f, 0.40f);
glEnd();
glFlush();
例子:
https://www.cnblogs.com/shiyanch/archive/2012/03/01/2375836.html
视频地址:
https://www.bilibili.com/video/BV1d7411Z7Ax/?spm_id_from=333.788.videocard.0
例子:
https://zhidao.baidu.com/question/623404935945508564.html