绘制图形与3D增强技巧(二)----直线图元之点画
一.直线的点画模式:即并不完全填充所有像素来画一条直线,而是用点画的形式,间隔地画一条直线
首先启用点画模式:
glEnable(GL_LINE_STIPPLE);
然后自定义创建自己的点画模式
glLineStipple(GLlint factor,GLushort pattern);
其中第一个参数factor为乘法因子,第二个参数pattern为自定义的点画模式:一个16位的值,每个位表示线段的一部分状态为打开或者关闭,采用16进制,例如:0x5555
直线点画的实例程序:
// STIPPLE.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<GL\glut.h>
void Init()
{
glClearColor(0.0f,0.0f,0.0f,0.0f); } void MyDisplay()
{
glClear(GL_COLOR_BUFFER_BIT); GLint factor=;
GLushort pattern=0x5555;
GLfloat y;
glEnable(GL_LINE_STIPPLE); glColor3f(0.0,1.0f,0.0f); for ( y = -80.0f; y < 80.0f; y+=20.0f)
{
glLineStipple(factor,pattern);
glBegin(GL_LINES);
glVertex2f(-80.0f,y);
glVertex2f(80.0,y);
factor++;
glEnd(); } glutSwapBuffers(); }
void ChangeSize(int w,int h)
{
if (h==)
{
h=;
}
glViewport(,,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (w<=h)
{
gluOrtho2D(-100.0,100.0,-100.0*(GLfloat)h/(GLfloat)w,100.0*(GLfloat)h/(GLfloat)w);
}
else
{
gluOrtho2D(-100.0*(GLfloat)w/(GLfloat)h,100.0*(GLfloat)w/(GLfloat)h,-100.0,100.0);
}
glMatrixMode(GL_MODELVIEW);
glLoadIdentity(); }
int main(int argc, char ** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);
glutInitWindowPosition(,);
glutInitWindowSize(,);
glutCreateWindow("Line_STIPPLE"); Init();
glutDisplayFunc(MyDisplay);
glutReshapeFunc(ChangeSize); glutMainLoop(); }
绘制图形与3D增强技巧(二)----直线图元之点画的更多相关文章
- 绘制图形与3D增强技巧(二)----直线图元
一. glBegin(GL_LINES); glend(); 二.线带和线环 glBegin(GL_LINE_STRIP); glend(); glBegin(GL_LINE_LOOP); glend ...
- 绘制图形与3D增强技巧(四)----多边形图元及其点画模式
1.四边形图元 glBegin(GL_QUADS); glend(); 2.通用多边形 glBegin(GL_POLYGONS); glend(); 3.多边形点画模式 glenable(GL_POL ...
- 绘制图形与3D增强技巧(五)----多边形图元的使用及其他
1.注意多边形图元中的多边形只能是平面的,而且必须为凸多边形,且多边形的边不能弯曲 2.细分和边界,可以人为设置边界边和非边界边 glEdgeFlag(true)//接下来所有点均为边界边起点 glE ...
- 绘制图形与3D增强技巧(三)----三角形图元TRANGLE
1. glBegin(GL_TRANGLES); ........ glend(); 2.多边形的环绕方向:逆时针和顺时针的正反面 GLFront(GL_CCW)和GLFront(GL_CW); 3. ...
- 绘制图形与3D增强技巧(一)----点图元
1.图元 1.点图元 glBegin(GL_POINTS); glend(); 程序:点图元的应用 #include "stdafx.h" #include<stdio.h& ...
- 【canvas学习笔记二】绘制图形
上一篇我们已经讲述了canvas的基本用法,学会了构建canvas环境.现在我们就来学习绘制一些基本图形. 坐标 canvas的坐标原点在左上角,从左到右X轴坐标增加,从上到下Y轴坐标增加.坐标的一个 ...
- OpenGL学习进程(4)第二课:绘制图形
本节是OpenGL学习的第二个课时,下面介绍如何用点和线来绘制图形: (1)用点的坐标来绘制矩形: #include <GL/glut.h> void display(void) ...
- 在Android中使用OpenGL ES进行开发第(三)节:绘制图形
一.前期基础知识储备笔者计划写三篇文章来详细分析OpenGL ES基础的同时也是入门关键的三个点: ①OpenGL ES是什么?与OpenGL的关系是什么?——概念部分 ②使用OpenGLES绘制2D ...
- html5 canvas 笔记一(基本用法与绘制图形)
<canvas> 元素 <canvas id="tutorial" width="150" height="150"> ...
随机推荐
- zlog学习笔记(zc_arraylist)
zc_arraylist.h /** * 实现类似列表的功能 * */ #ifndef __zc_arraylist_h #define __zc_arraylist_h #define ARRAY_ ...
- text
链接: 初识 TextKit 如何实现自己没实现过的需求之文本动画
- 处理OSX创建的U盘, 删除EFI分区
1. 运行 diskpart 2. list disk 3. 根据列出的硬盘, select disk [编号] 4. clean 5. exit 然后再创建分区和格式化
- Tomcat 开启 SSL
生成keystore /usr/java/default/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore ~/tomcat.keysto ...
- Java GC回收机制
优秀Java程序员必须了解的GC工作原理 一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只 ...
- centos 命令集合
链接: http://www.cnblogs.com/zitsing/archive/2012/05/02/2479009.html http://www.centoscn.com/CentOS/he ...
- 尝试HTML + JavaScript 编写Windows App
一直以来博文中使用最多的就是C# + XAML.进入Windows App时代,又多了一对 Javascript + HTML组合,这对于Web开发的程序员来说再熟悉不过了.其实小编也做过几年的Web ...
- 推薦使用 Microsoft Anti-Cross Site Scripting Library V3.0
原文出至: http://blog.miniasp.com/post/2009/07/29/Recommand-Microsoft-Anti-Cross-Site-Scripting-Library- ...
- 简单的js验证码
转自:未找到 <script type ="text/javascript" language ="javascript"> var cod ...
- java动态代理浅析
最近在公司看到了mybatis与spring整合中MapperScannerConfigurer的使用,该类通过反向代理自动生成基于接口的动态代理类. 于是想起了java的动态代理,然后就有了这篇文章 ...