实验三 二维图元的填充

实验三 二维图元的填充

ID:44819834

大小:76.00 KB

页数:14页

时间:2019-10-30

实验三  二维图元的填充_第1页
实验三  二维图元的填充_第2页
实验三  二维图元的填充_第3页
实验三  二维图元的填充_第4页
实验三  二维图元的填充_第5页
资源描述:

《实验三 二维图元的填充》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验三二维图元的填充实验目的:通过实验掌握下列知识:1.熟悉OpenGL中对颜色的设置2.边界填充算法的理解与实现;3.泛滥填充算法的理解与实现;4.扫描线填充算法的理解与实现;内容及步骤:一、OpenGL中颜色的设置OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式。无论哪种颜色模式,计算机都必须为每一个像素保存一些数据。不同的是,RGBA模式中,数据直接就代表了颜色值;而颜色索引模式中,数据代表的是一个颜色表的索引,要得到真正的颜色,还必须到颜色表去查找。颜色索引模式主要用于早期性能差,只能显示有限颜

2、色的显示设备上,现在由于显示设备的发展,普遍都采用RGBA模式,所以,我们只介绍RGBA模式。RGBA模式中,每一个像素会保存以下数据:R值(红色分量)、G值(绿色分量)、B值(蓝色分量)和A值(alpha分量,就是透明度分量)。其中红、绿、蓝三种颜色相组合,就可以得到我们所需要的各种颜色,而alpha不直接影响颜色,它将留待以后介绍。在RGBA模式下选择颜色是十分简单的事情,只需要一个函数。glColor*系列函数可以用于设置当前绘制颜色(前景色),其中三个参数的版本可以指定R、G、B的值,而A值采用默认;四个参数的

3、版本可以分别指定R、G、B、A的值。例如:voidglColor3(typer,typeg,typeb)voidglColor3v(type*color)voidglColor4(typer,typeg,typeb,typea)voidglColor4v(type*color)用标准类型来指定RGB或RGBA颜色值。如果函数名的末尾出现v,则颜色值由color所指向的数组指定,该数组中每个元素的类型均为type。将浮点数作为

4、参数,其中0.0表示不使用该种颜色,而1.0表示将该种颜色用到最多。例如:glColor3f(1.0f,0.0f,0.0f);表示不使用绿、蓝色,而将红色使用最多,于是得到最纯净的红色。glColor3f(0.0f,1.0f,1.0f);表示使用绿、蓝色到最多,而不使用红色,混合的效果就是浅蓝色。glColor3f(0.5f,0.5f,0.5f);表示各种颜色使用一半,效果为灰色。glColor3f(0.0f,0.0f,.0.0f);表示纯黑。glColor3f(1.0f,1.0f,.1.0f);表示纯白。用数组时,例

5、如:floatc[3]={1.0f,0.0f,0.0f};glColor3fv(c);与glColor3f(1.0f,0.0f,0.0f);等价,都是指定当前绘制颜色是红色。注意:浮点数可以精确到小数点后若干位,这并不表示计算机就可以显示如此多种颜色。实际上,计算机可以显示的颜色种数将由硬件决定。如果OpenGL找不到精确的颜色,会进行类似“四舍五入”的处理。注意:glColor系列函数,在参数类型不同时,表示“最大”颜色的值也不同。采用f和d做后缀的函数,以1.0表示最大的使用。采用ub或i做后缀的函数,以255表示

6、最大的使用。以下两种颜色相同,都表示纯蓝:glColor3f(0.0f,0.0f,1.0f);glColor3i(0,0,255);另外,我们可以用如下函数设定清除颜色,也就是背景颜色:glClearColor(float,float,float,float);四个参数分别就是RGBA四个通道的值,表示方法和glColor4f相同,例如:glClearColor(1.0f,1.0f,1.0f,1.0f);把背景设为白色;glClearColor(0.0f,0.0f,0.0f,1.0f);把背景设为黑色;glClearC

7、olor(1.0f,0.0f,0.0f,1.0f);把背景设为纯红;在OpenGL程序初始化的时候,会用到一个函数:glClear(GL_COLOR_BUFFER_BIT);这个函数是把屏幕上的颜色全部清空,变为glClearColor指定的背景颜色。GL_COLOR_BUFFER_BIT是头文件里定义的一个系统常量。在OpenGL中,颜色是OpenGL状态的一部分。我们可以认为在OpenGL的状态变量中存在一种当前绘制颜色(currentdrawingcolor)和当前清除颜色(currentclearcolor),

8、其中前者由函数glColor*()来指定,后者由glClearColor()来指定。用于绘制对象的颜色即为当前绘制颜色。当要绘制图形时,所用颜色从当前绘制颜色(currentdrawingcolor)中读取;当要清空屏幕时,所用颜色从当前清除颜色(currentclearcolor)中读取。所以,颜色与对象并不存在依附关系,而是作

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。