C++ + opengl 的总结

3 篇文章 0 订阅

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 可以带234个坐标
2是二维xy的,3是三维xyz的,4xyzw(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

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值