程序来自《OpenGL编程指南第七版》

 #include "stdafx.h"
#include <Windows.h>//头文件一定要加上,因为windows版本的gl.h和glu.h文件内部使用的宏是在windows.h中定义的
#include <gl/GL.h>
#include <gl/GLU.h>
#include <gl/glut.h>
static GLfloat spin=0.0;
int drawOneLine(float x1,float y1,float x2,float y2)
{
glBegin(GL_LINES);
glVertex2f((x1),(y1));
glVertex2f((x2),(y2));
glEnd();
return ;
} void init (void)
{
glClearColor(0.5,0.5,0.5,0.0);
glShadeModel(GL_FLAT);
}
void display(void)
{
int i;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,0.0);
glEnable(GL_LINE_STIPPLE);
glLineStipple(,0x0101);//注意glLineStipple用法以及每个参数的意义
drawOneLine(50.0,125.0,150.0,125.0);
glLineStipple(,0x00FF);
drawOneLine(150.0,125.0,250.0,125.0);
glLineStipple(,0x1C47);
drawOneLine(250.0,125.0,350.0,125.0);
glLineWidth(5.0);
glLineStipple(,0x0101);
drawOneLine(50.0,100.0,150.0,100.0);
glLineStipple(,0x00FF);
drawOneLine(150.0,100.0,250.0,100.0);
glLineStipple(,0x1C47);
drawOneLine(250.0,100.0,350.0,100.0);
glLineWidth(1.0);
glLineStipple(,0x1C47);
glBegin(GL_LINE_STRIP);
for (i=;i<;i++)
glVertex2f(50.0+((GLfloat)i+50.0),75.0);
glEnd();
for (i=;i<;i++)
drawOneLine(50.0+((GLfloat)i+50.0),50.0,50.0+((GLfloat)(i+)+50.0),50.0);
glLineStipple(,0x1C47);
drawOneLine(50.0,25.0,350.0,25.0);
glDisable(GL_LINE_STIPPLE);
glFlush();
} void reshape(int w,int h)
{
glViewport(,,(GLsizei)w,(GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,(GLdouble)w,0.0,(GLdouble)h);
} int main(int argc,char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(,);
glutInitWindowPosition(,);
glutCreateWindow(argv[]);
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return ;
}

运行的效果图:

OpenGL直线点画模式的更多相关文章

  1. 绘制图形与3D增强技巧(四)----多边形图元及其点画模式

    1.四边形图元 glBegin(GL_QUADS); glend(); 2.通用多边形 glBegin(GL_POLYGONS); glend(); 3.多边形点画模式 glenable(GL_POL ...

  2. OpenGL的核心模式与立即渲染模式

    早期的OpenGL使用立即渲染模式(Immediate mode,也就是固定渲染管线),这个模式下绘制图形很方便.OpenGL的大多数功能都被库隐藏起来,开发者很少能控制OpenGL如何进行计算的自由 ...

  3. OpenGL编程(五)绘直线以及分析绘直线的算法

    这次主要实现在窗口上绘制点.线以及修改其属性,另外还会分析画直线的原理和相关算法. 1.在窗口指定位置画点 glBegin(GL_POINTS); glEnd(); 使用glBegin()和glEnd ...

  4. 绘制图形与3D增强技巧(二)----直线图元之点画

    一.直线的点画模式:即并不完全填充所有像素来画一条直线,而是用点画的形式,间隔地画一条直线 首先启用点画模式: glEnable(GL_LINE_STIPPLE); 然后自定义创建自己的点画模式 gl ...

  5. OpenGL在图形管道中调用了什么用户模式图形驱动程序(UMD)?

    OpenGL在图形管道中调用了什么用户模式图形驱动程序(UMD)? 图形硬件供应商,需要为显示适配器编,编写用户模式显示驱动程序.用户模式显示驱动程序,是由Microsoft Direct3D运行时加 ...

  6. openGL研究钞四 : 关于颜色, 尺寸, 虚线, 多边形逆转, 空洞, 使用位图

    转载请保留源,,,,hushuai1992http://blog.csdn.net/u013642494/article/category/2675731 额. 这个标题我都不知道该怎么起了. 假设没 ...

  7. OpenGL的状态机理解

    OpenGL是一种状态机模式,比如你用glEnable打开一个状态,在以后的绘图中将一直保留并应用这个状态,除非你调用glDisable及同类函数来改变该状态或程序退出.例如当前颜色是一个状态变量,可 ...

  8. OpenGL学习进程(8)第六课:点、边和图形(三)绘制图形

    本节是OpenGL学习的第六个课时,下面介绍OpenGL图形的相关知识:     (1)多边形的概念: 多边形是由多条线段首尾相连而形成的闭合区域.OpenGL规定,一个多边形必须是一个“凸多边形”. ...

  9. OpenGL学习进程(7)第五课:点、边和图形(二)边

    本节是OpenGL学习的第五个课时,下面介绍OpenGL边的相关知识: (1)边的概念: 数学上的直线没有宽度,但OpenGL的直线则是有宽度的.同时,OpenGL的直线必须是有限长度,而不是像数学概 ...

随机推荐

  1. JAVA设计模式之---工厂模式

    1.引言 工厂模式可以分为类: 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory)  这种模式从上 ...

  2. element ui 1.4 升级到 2.0.11

    公司的框架 选取的是 花裤衩大神开源的 基于 element ui + Vue 的后台管理项目, 项目源码就不公开了,记录 分享下 步骤 1. 卸载 element ui 1.4的依赖包 2. 卸载完 ...

  3. JavaScript语言学习中的注意事项

    javascript: 基于浏览器 基于对象 事件驱动 脚本语言 由: javascript: ECMAscript(ES) DOM文档对象模型 BOM浏览器对象模型,三部分组成 使用js的三种方式 ...

  4. python学习资料链接

    1.入门与量化:https://www.v2ex.com/t/257297

  5. web攻击

    一.XSS(跨站脚本攻击) 最常见和基本的攻击WEB网站的方法.攻击者在网页上发布包含攻击性代码的数据.当浏览者看到此网页时,特定的脚本就会以浏览者用户的身份和权限来执行.通过XSS可以比较容易地修改 ...

  6. springIOC、AOP的一些注解

    springIOC.AOP的一些注解(使用这些注解之前要导入spring框架的一些依赖):    1.注入IOC容器        @Compontent:使用注解的方式添加到ioc容器需要在配置文件 ...

  7. 升级gitlab

    https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/update https://about.gitlab.com/update/#cent ...

  8. Nginx的try_files指令和命名location使用实例

    Nginx的配置语法灵活,可控制度非常高.在0.7以后的版本中加入了一个try_files指令,配合命名location,可以部分替代原本常用的rewrite配置方式,提高解析效率. 下面是一个使用实 ...

  9. javascript函数大全

    JavaScript函数大全 1.document.write(""); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->html->( ...

  10. /dev/null 2>&1 详解

     今天一个朋友突然在自己的维护的Linux中, /var/spool/cron/root 中看到了以下的内容: 30 19 * * * /usr/bin/**dcon.sh > /dev/nul ...