大连大有吴涛易语言软件开发有限公司 版权所有
高点。
设置点 (-100, -100, 0)
当前坐标X = —100,Y = —100,Z = 0,实际坐标为X = —100,Y = —100,Z= —1,三角形的左下角。
设置点 (100, -100, 0)
当前坐标X=100,Y=—100,Z=0,实际坐标为X=100,Y=—100,Z=—1,三角形的右下角。
停止画 () 画完,结束
参考例程“第二课练习.e” 运行后可以看到图 5中效果:
图 5
第三节、基础建模
其实在前面一节里,已经介绍了三角形的建模了,但是OpenGL并不是只能画一个的三角形那么简单。
任何一个模型的基本要素都包括:点、线、面。
二点可以确定一条线段,三个点可以确定一个面。所以只要为每个模型确定其顶点,模型的结构就是唯一的啦。
对于大多数的图形只需要使用“设置点 (横向位置,竖向位置,纵向位置)” 命令就可以定义其顶点。它必须在“开始画 (画出模式)”和“停止画 ()” 命令的之间出现。
图 6中显示了10种不同的“画出模式”:
11
大连大有吴涛易语言软件开发有限公司 版权所有
图 6
表 2中说明了各种不同的画出模式下的区别:
表 2
画出模式 点集 线段 闭合线段 连续线段 三角形 N个图元需要的顶点数量 其他条件 N N\2 1 N N – 1 N\3 N≥1 N为偶数 N = 2 N>2 N≥2 N是3整数倍 N≥3 N≥3 N≥4 N≥4、N为偶数 N≥3 图元 点 线段 三角形 连续三角形 N – 2 扇形三角形 N – 2 四边形 凸多边形 N\4 1 连续四边形 N\2 — 1 四边形 凸多边形 练习:
下面就来画一个的五角星。 1. 启动易语言OpenGL向导; 2. 点击完成按钮创建程序;
3. 在“绘图”子程序中加入变量; .局部变量 角, 双精度小数型 .局部变量 循环变量, 整数型
4. 在“绘图”子程序备注中标有“' 在这里加入你的代码”的下面加入以下代码: 画左边空心五角星的代码是: 坐标平移 (-80, 0, -2) 开始画 (#闭合线段)
.计次循环首 (5, 循环变量)
角 = (循环变量 - 1) ÷ 180 × #pi × 144 设置点 (求正弦 (角) × 50, 求余弦 (角) × 50, 0) .计次循环尾 () 停止画 ()
设置实心五角星的中心点的代码是: 坐标平移 (160, 0, 0)
12
大连大有吴涛易语言软件开发有限公司 版权所有
开始画 (#扇形三角形) 设置点 (0, 0, 0)
画出右边实心的五角星的代码是: .计次循环首 (6, 循环变量)
角 = (循环变量 - 1) ÷ 180 × #pi × 144 设置点 (求正弦 (角) × 50, 求余弦 (角) × 50, 0) .计次循环尾 () 停止画 ()
参考例程“第三课练习.e” 运行后可以看到图 7中效果:
图 7
第四节、绚丽的颜色
2.4.1 设置颜色模式
在OpenGL中有两种颜色模式:1、红绿蓝混合通道模式;2、颜色索引模式。在使用OpenGL前就必须确定将使用哪种颜色模式。
注意:颜色索引模式必须在16位颜色下才能使用。
使用哪种颜色模式需要在“像素格式.像素类型”中设置,如果值为0代表红绿蓝混合通道模式,如果值为1代表颜色索引模式。
虽然在颜色索引模式下可以节省部分系统资源,但是大多数时候都会使用红绿蓝混合通道模式,而且很多效果都必须在红绿蓝混合通道模式才有效。
从表 3中可以看出OpenGL中的颜色和画板中的颜色定义方法不同点:
表 3
定义 使
红绿蓝混合通道模式 像素格式.像素类型 = 0 设置颜色 (红,绿,蓝,混合通
颜色索引模式 画板
像素格式.像素类型 = 1 设置颜色索引 (索引号)
画板1.画笔颜色 =颜色
13
大连大有吴涛易语言软件开发有限公司 版权所有
用 道)
或
画板1.刷子颜色 =颜色
从OpenGL的颜色转换到画板的颜色:
颜色=红+绿×255+蓝×255×255
从画板的颜色转换到OpenGL的红绿蓝混合通道模式下的颜色: 字节集 = 到字节集 (颜色) 红 = 字节集 [1] ÷ 255 绿 = 字节集 [2] ÷ 255 蓝 = 字节集 [3] ÷ 255 颜色索引模式的颜色:
索引号的整数部分代表颜色,小数部分代表灰度。
2.4.2 为OpenGL设定背景色。
前面“框架初始化”子程序中命令“清除颜色缓存 (红色位,绿色位,蓝色位,通道位)”就是专门用来设定背景色的。当使用命令“清除缓存 (#颜色缓存位)”的时候,屏幕中的颜色就被还原到设定的背景颜色中。那么除去图元之外的所有地方都被显示为设定的背景色。(有关缓存操作的内容可以查看第十四节的)
2.4.3 为图元设定颜色。
命令“设置颜色 (红色位,绿色位,蓝色位,通道位)”是为了在红绿蓝混合通道模式下给图元设定颜色的。当需要给某个图元指定一个颜色的时候,必须先使用“设置颜色”,然后再开始画图元。只有再次使用“设置颜色”才会改变图元的颜色,否则会一直保持这个颜色。
有关颜色的使用方法可以参考例程“颜色模式.e” 调整红色、绿色、蓝色的数值可以观看到颜色的变化。 运行后可以看到图 8中效果:
14