C# OpenGL(SharpGL)Begin函数End函数使用
来源:互联网 发布:左轮吉他淘宝店怎么样 编辑:程序博客网 时间:2024/05/17 02:38
Begin函数:
函数功能:
绘制图形起始函数,参数表示图元的类型。
函数原型:
void Begin(mode M); (mode为unit类型,其值为在OpenGL类下定义的常数值)。
M(创建图元的类型)的值可以是如下值:
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_STRIP:绘制一组相连的三角形,对于奇数n,顶点n、n+1和n+2定义了第n个三角形;对于偶数n,顶点n+1、n和n+2定义了第n个三角形,总共绘制N-2个三角形
GL_TRIANGLE_FAN:绘制一组相连的三角形,三角形是由第一个顶点及其后给定的顶点确定,顶点1、n+1和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定义了这个多边形。
End函数:
函数功能:绘制图形终止函数。
函数原型:void End()
注意事项:
(1)在Begin和End函数之间可调用的函数:
Vertex*() 设置顶点坐标
Color*() 设置当前颜色
Index*() 设置当前颜色表
Normal*() 设置法向坐标
EvalCoord*() 产生坐标
CallList() 执行显示列表
CallLists() 执行显示列表
TexCoord*() 设置纹理坐标
EdgeFlag*() 控制边界绘制
Material*() 设置材质
*表示已所写字符串开头的一类函数均可调用。
(2)Begin与End()函数使用注意点:
在OpenGL最初的定义中,几何对象数据的输入是通过调用glBegin()和glEnd()接口对来实现的。glBegin()的参数表示其下所接收的数据是何种类型,如点,线段,三角型,扇形三角行,多边形等等。
而如glTranslatef(), glScalef(), glRotatef()等接口的作用是对当前模型空间进行几何转换。如glTranslatef(1,2,3);表示把模型的世界坐标原点从当前位置(系统总认为是(0,0,0))转到起相对位置(1,2,3)。注意,OpenGL空间使用的是右手系的定义,与屏幕水平方向一致,并方向向右的是x轴;与屏幕方向垂直方向一致,并方向向上的是y轴;与屏幕屏幕垂直,方向向外的是z轴。
glTranslatef()等此类几何转换接口在glBegin()和glEnd()之间是无效的。因此,如果想对模型的位置进行转换,要在调用glBegin()和glEnd()接口对之前行处理。
例如:
错误调用方式:
gl.Begin(GL_TRIANGLES);
gl.Translatef(1,2,3);
图像绘制代码段......
gl.End();
正确调用方式:
gl.Translatef(1,2,3);
gl.Begin(GL_TRIANGLES);
图像绘制代码段......
gl.End();
注意以上的函数均是OpenGL类内的函数,需要先创建OpenGl对象。
- C# OpenGL(SharpGL)Begin函数End函数使用
- STL库容器vector begin函数&end函数
- SharpGL: a C# OpenGL class library 转
- sort函数、vector中begin()、end()和front()、back()的区别
- 输出具有begin和end函数的容器
- STL中vector容器begin(),end(),push_back()等相关函数
- C++11标准库中的begin()和end()函数
- C++ 标准库函数的begin和end函数与标准库容器的begin和end成员
- C#的OpenGL控件SharpGL的应用教程
- C#中使用OpenGL:(五)1.1版本的OpenGL函数
- OpenGL(6)--SharpGL
- BEGIN...END
- begin-end
- Begin ... End
- C#中使用OpenGL:(六)C#中调用C函数时的参数传递问题
- C++STL中vector容器 begin()与end()函数、front()与back()的用法
- C++STL中vector容器 begin()与end()函数、front()与back()的用法
- C++STL中vector容器 begin()与end()函数、front()与back()的用法
- 编写BUG报告有诀窍?Toulmin模型来帮忙
- go beego模板嵌套list
- [剑指offer学习心得]之:栈的压入、弹出序列
- STL笔记(1)-string类
- JNI 在Android中的详细用法
- C# OpenGL(SharpGL)Begin函数End函数使用
- centos ntfs-3g挂载U盘
- 14.5.2.2 autocommit, Commit, and Rollback
- Working with Blocks
- oracle查询语句大全 oracle 基本命令大全
- libRTMP使用说明
- Coin Change
- Linux 档案与目录管理
- 算法-第四版-练习1.3.13解答