OpenGL几何图元和缓冲区(六)
来源:互联网 发布:p2p监控软件客户端 编辑:程序博客网 时间:2024/04/28 14:52
前一阵子项目太忙了,Arabic的Bidi问题搞的头大。这阵子闲一点了,继续OpenGL的学习吧。
今天学习一下OpenGL中点划线的绘制。
要想用OpengL画点划线必须先开启点划线功能。函数如下:
glEnable(GL_LINE_STIPPLE)//开启点划线支持
glDisable(GL_LINE_STIPPLE)//关闭点划线功能
点划线功能打开之后就可以画点划线了,函数如下:
void glLineStipple(GLint factor,GLushort pattern)
接下来解释一下参数的意思。第二个参数pattern指的是点划线的显示模式--即哪几位像素点显示(1显示),哪几位不显示(0不显示)。第一个参数参数factor是显示或不显示像素点的倍数。
注:此处的绘制模式是从最低位开始绘制。
好了,废话不多说了,直接上代码,点划线:
#include <GL/glut.h>void RenderScene(void){GLfloat y;GLint factor = 1;GLushort pattern = 0x5555;glClear(GL_COLOR_BUFFER_BIT); //清除颜色glEnable(GL_LINE_STIPPLE); //启用点划线模式for(y = -90.0f; y<90.0f; y+=20.0f) {glLineStipple(factor,pattern);glBegin(GL_LINES); //划线 glVertex2f(-80.0f,y);glVertex2f(80.0f,y);glEnd();factor++; //改变partten宽度}glFlush(); //刷新}//当窗口大小变化时调用void ChangeSize(GLsizei w,GLsizei h){GLfloat aspectRatio;if(0 == h)h = 1;//设置视口大小glViewport(0,0,w,h);//重置坐标系glMatrixMode(GL_PROJECTION);glLoadIdentity();//建立裁剪区aspectRatio = (GLfloat)w / (GLfloat)h;if(w <= h)glOrtho(-100.0,100.0,-100.0/aspectRatio,100/aspectRatio,1.0,-1.0);elseglOrtho(-100.0*aspectRatio,100.0*aspectRatio,-100.0,100.0,1.0,-1.0);glMatrixMode(GL_MODELVIEW);glLoadIdentity();}//设置渲染void SetupRC(void) {glClearColor(0.0f,0.0f,1.0f,1.0f);}int main(int argc,char* argv[]){glutInit(&argc,argv);glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);glutCreateWindow("OpenGL Sample8");glutDisplayFunc(RenderScene);glutReshapeFunc(ChangeSize);SetupRC();glutMainLoop();return 0;}
代码结束。
以下是程序运行截图:
未完待续......
- OpenGL几何图元和缓冲区(六)
- OpenGL几何图元和缓冲区(一)
- OpenGL几何图元和缓冲区(二)
- OpenGL几何图元和缓冲区(三)
- OpenGL几何图元和缓冲区(四)
- OpenGL几何图元和缓冲区(五)
- OpenGL开发 空间绘图:几何图元和缓冲区
- OpenGL几何图元与缓冲区
- OpenGL绘图的基本过程是:清除缓冲区,设置当前颜色,绘制几何图元,输出图形。
- opengl 函数库--绘制几何图元
- OpenGL笔记之绘制几何图元(geometric primitives)
- OPENGL学习笔记整理(四):几何图元渲染
- OpenGL小探2--几何图元,3D初步
- 3D数学之-几何图元和几何检测
- flyweight模式和图元几何变换
- 基本几何图元
- opengl使用现在比较常用的方法来绘制简单几何图元
- openGl超级宝典学习笔记 (2) 7个基本的几何图元
- 畅想web的未来
- 系统调用跟我学(1)
- 系统调用跟我学(2)
- 2012.5.24
- request和ThreadLocal
- OpenGL几何图元和缓冲区(六)
- 数据库清空日文件快捷方法
- 编程之美3.3, 计算字符串的相似度
- UltraEdit快捷键
- Android 广播大全
- Struts2 对Date数据类型的转换器
- 麦克风没声音怎么办,解决麦克风没声音的方法
- Ubuntu下的AT89S52,S51+SDCC+USBASP的开发环境搭建-大工CSDN高校俱乐部EE01工作室
- JPEG2000压缩DICOM文件的解压(一)