1.点画多边形

//定义填充多边形的点画模式。mask为32 x 32 的位图指针,1画0不画,使用前必须启用多边形点画功能
void glPloygonStipple(const GLubyte* mask);
//绘制一个矩形
void glRectf(GLfloat x1,GLfloat y1,GLfloat x2,GLfloat y2);

2.示例

#include <GL/glut.h>
#include <stdlib.h>void display(void)
{GLubyte fly[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x03, 0x80, 0x01, 0xC0, 0x06, 0xC0, 0x03, 0x60, 0x04, 0x60, 0x06, 0x20, 0x04, 0x30, 0x0C, 0x20, 0x04, 0x18, 0x18, 0x20, 0x04, 0x0C, 0x30, 0x20,0x04, 0x06, 0x60, 0x20, 0x44, 0x03, 0xC0, 0x22, 0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22,0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22, 0x66, 0x01, 0x80, 0x66, 0x33, 0x01, 0x80, 0xCC, 0x19, 0x81, 0x81, 0x98, 0x0C, 0xC1, 0x83, 0x30,0x07, 0xe1, 0x87, 0xe0, 0x03, 0x3f, 0xfc, 0xc0, 0x03, 0x31, 0x8c, 0xc0, 0x03, 0x33, 0xcc, 0xc0, 0x06, 0x64, 0x26, 0x60, 0x0c, 0xcc, 0x33, 0x30,0x18, 0xcc, 0x33, 0x18, 0x10, 0xc4, 0x23, 0x08, 0x10, 0x63, 0xC6, 0x08, 0x10, 0x30, 0x0c, 0x08, 0x10, 0x18, 0x18, 0x08, 0x10, 0x00, 0x00, 0x08};GLubyte halftone[] = {0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55};glClear (GL_COLOR_BUFFER_BIT);glColor3f (1.0, 1.0, 1.0);//白色//矩形1glRectf (25.0, 25.0, 125.0, 125.0);    //绘制矩形//矩形2glEnable (GL_POLYGON_STIPPLE);       //开启多边形点画功能glPolygonStipple (fly);              //定义点画模式填充内容glRectf (125.0, 25.0, 225.0, 125.0);//绘制矩形//矩形3glPolygonStipple (halftone);glRectf (225.0, 25.0, 325.0, 125.0);glDisable (GL_POLYGON_STIPPLE);      //关闭多边形点画功能glFlush ();
}void init (void)
{glClearColor (0.0, 0.0, 0.0, 0.0);glShadeModel (GL_FLAT);    //采用恒定着色模式,使用图元中某个顶点的颜色来渲染整个图元。
}void reshape (int w, int h)
{glViewport (0, 0, (GLsizei) w, (GLsizei) h);glMatrixMode (GL_PROJECTION);   //将当前矩阵指定为投影矩阵  glLoadIdentity ();              //把当前矩阵设为单位矩阵  gluOrtho2D (0.0, (GLdouble) w, 0.0, (GLdouble) h);
}void keyboard(unsigned char key, int x, int y)
{switch (key) {case 27:exit(0);break;}
}int main(int argc, char** argv)
{glutInit(&argc, argv);glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);glutInitWindowSize (350, 150);glutCreateWindow (argv[0]);init ();glutDisplayFunc(display);glutReshapeFunc(reshape);glutKeyboardFunc (keyboard);glutMainLoop();return 0;
}

3.效果图

转载于:https://www.cnblogs.com/fzll/p/3954574.html

【OpenGL 学习笔记03】点画多边形相关推荐

  1. OpenGL学习笔记(十三):将纹理贴图应用到四边形上,对VAO/VBO/EBO/纹理/着色器的使用方式进行总结

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7919 ...

  2. Git 的安装与初次使用 —— Git 学习笔记 03

    Git 的安装与初次使用 -- Git 学习笔记 03 Git 的安装与初次使用 -- Git 学习笔记 03 安装 Git 在 Linux 上安装 在 Windows 上安装 初次运行 Git 前的 ...

  3. JavaWeb黑马旅游网-学习笔记03【登陆和退出功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  4. HTML/CSS学习笔记03【CSS概述、CSS选择器、CSS属性、CSS案例-注册页面】

    w3cschool菜鸟教程.CHM(腾讯微云):https://share.weiyun.com/c1FaX6ZD HTML/CSS学习笔记01[概念介绍.基本标签.表单标签][day01] HTML ...

  5. JDBC学习笔记03【JDBC事务管理、数据库连接池、JDBCTemplate】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  6. MySQL学习笔记03【数据库表的CRUD操作、数据库表中记录的基本操作、客户端图形化界面工具SQLyog】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  7. Scala学习笔记03:操作符

    Scala学习笔记03:操作符 一.scala中操作符与方法的等价性 scala中操作符即方法.方法即操作符.scala中操作符其实是普通方法调用的另一种表现形式,运算符的使用其实就是隐含地调用对应的 ...

  8. ES6学习笔记03:变量的解构赋值

    ES6学习笔记03:变量的解构赋值 如果想从复杂数据结构(数组.对象)中获取某一个数据,可能需要大量的遍历操作才能完成.通过解构赋值,这一过程可以得到简化. 1.字符串的解构赋值 其实,Python也 ...

  9. PHP学习笔记03:简单网上调查站点

    PHP学习笔记03:简单网上调查站点 网上调查站点由两个页面构成.第一个页面(vote.html文件)是一份问卷,问卷上只有一个问题"开发MySQL应用程序你最喜欢哪种编程语言?" ...

最新文章

  1. Nginx防盗链,Nginx访问控制, Nginx解析php相关配置, Nginx代理
  2. php导包,Thinkphp5.1 导入第三方包的问题
  3. Kong APIGW — OpenResty
  4. ZOJ 1410 题解
  5. python执行系统命令的方法
  6. SD--RV_accounting_document_create函数的代码解读
  7. 计算机网络复习-应用层
  8. Apache Kafka消息格式的演变(0.7.x~0.10.x)
  9. php mysql 取最小值_php – 根据另一个值更新最小值 – MySql
  10. java取模多位数_JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)...
  11. jQuery API 3.1.0 速查表-打印版
  12. C语言编写九九乘法表
  13. mysql上传spc数据慢_SPC实施篇:控制图数据处理这8个细节要注意!
  14. 【彩虹 钢琴伴奏】笔记
  15. LZJ流体质量计算机价格,LZJ-ⅢC型流体质量计算机技巧.doc
  16. cad2017单段线_AutoCAD2017命令总结
  17. crontab——定时周期性执行任务
  18. 茶文化网页代码(详细解释)
  19. 关于装msdn网站纯净版win7正版授权问题(已解决)
  20. JavaScript里的var变量

热门文章

  1. QT的firstblood
  2. TCP之系统调用listen()
  3. nyist-部分和问题
  4. 每天一个效果 :(14)抽奖器功能
  5. [bzoj2208][Jsoi2010]连通数
  6. bi工程师和java哪个好_每个好架构师都是一位出色的程序员
  7. 三国杀开源系列之三106@365
  8. 蜻蜓FM课程种类繁多,用python爬取热门课程排行榜
  9. GO 编程模式学习笔记——GO GENERATION
  10. linux升级Openssh到8.4