使用opengl程序绘制实线、虚线和点划线
更新时间:2023-07-27 15:25:01 阅读量: 实用文档 文档下载
GIS专业实验报告(计算机图形学)
实验5 使用opengl程序绘制实线、虚线和点划线。
一.实验目的及要求
使用opengl程序绘制实线、虚线和点划线。。
二. 理论基础
1. 显示列表:
显示列表是一组OpenGL函数调用,它被存储起来供以后执行。这样就可以将基本图素的OpenGL函数实现组织起来,指定名称,构成图段,所构成的图段可以再以后需要的地方显示出来。
创建显示列表方式如下:
glNewList(listID,listMode);
glutSoildCube(2.0);
……
glEndList();
2. 显示列表的调用:
在显示列表创建之后,可以使用函数
Void glCallList(GLuint listID);
调用显示列表,其中参数listID是已定义的显示列表标识。
3. OpenGL划线函数:
glBegin(GL_LINES);
glVertex2i(坐标1x,坐标1y);
glVertex2i(坐标2x,坐标2y);
glEnd();
GL_LINES:直线模式
GL_LINE_STIPPLE:虚线模式
三. 算法设计与分析
程序源码如下:
#include <windows.h>
#include <gl/glut.h>
GLuint Line;
void Initial(void)
{
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
Line = glGenLists(1);
glNewList(Line, GL_COMPILE);
/************实线***************/
glColor3f(0.0, 1.0, 0.0);
glLineWidth(3);
glTranslatef(-20.0, 20.0, 0.0);
glBegin(GL_LINES); //实线
glVertex2i(-10,5);
glVertex2i(40,5);
glEnd();
/****************虚线*******************/
glColor3f(0.0, 0.0, 0.0);//更改颜色
glEnable(GL_LINE_STIPPLE); //声明线型为虚线;
glLineStipple (3, 0x0101); //设定线型
glLineWidth(2); //设定线宽
glBegin(GL_LINES);
glVertex2i(-20,-15);
glVertex2i(50,-15);
glEnd();
/**************点划线********************/
glColor3f(0.0, 0.0, 1.0);
glLineStipple (3, 0x0101); //设定线型
glLineWidth(5); //设定线宽,先画点
glBegin(GL_LINES);
glVertex2i(-20,-35);
glVertex2i(50,-35);
glEnd();
glLineStipple (6, 0x0606); //设定线型
glLineWidth(2); //设定线宽,再画线
glBegin(GL_LINES);
glVertex2i(-20,-35);
glVertex2i(50,-35);
glEnd();
glEndList();
}
void ChangeSize(int w, int h)
{
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D (-70.0f, 70.0f, -70.0f, 70.0f);
}
void Display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0, 0.0, 0.0);
glCallList(Line);
glFlush();
}
int main(int argc, char* argv[])
{
}
glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(800,600); glutInitWindowPosition(200,200); glutCreateWindow("OpenGL直线、点画线、虚线——姓名:殷悦——学号:2010203482"); glutDisplayFunc(Display); glutReshapeFunc(ChangeSize); Initial(); glutMainLoop(); return 0;
四. 程序调试及运行结果的自我分析与自我评价
代码中调用了画线函数的两个不同模式,绘制实线模式(GL_LINES)和绘制虚线模式(GL_LINE_STIPPLE)。点划线是由两条虚线拼合而成,通过设置不同的点距、线宽和样式实现。三种线条一次设置了红、绿、蓝三种颜色,由上而下平行排列。
运行结果见下图1。
图1 调试结果
五、实验心得及建议
通过这次自己动手作程序,加深了对以往所学知识的了解和应用。把老师讲的东西,通过自己的努力和探索并加以研究,变成自己所能理解的东西。在已经基本上掌握了VB基础,又加深了各项功能的认识理解。我会把这次作业当作起点,更加加深对VB软件的研究,为自己可以早日熟练掌握此软件的各项操作步骤而努力。
正在阅读:
最新五年级资料袋课外拓展试题-巩固必练12-29
小学三年级数学期末整理与复习教案05-10
六西格玛单选题题库11-26
市场调查与分析教学大纲05-29
基因表达调控05-20
2015-2016学年高中物理 第2章 第3节 示波器的使用学案 教科版选04-06
2015~2016苏教版小学数学二年级上册教学计划09-11
朗文 2B Chapter 1 Buying Snacks 教案(1) - 图文10-21
县教育和体育局2022年工作计划04-04
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 实线
- 虚线
- 划线
- 绘制
- 程序
- 使用
- opengl
- 护 理 考 试 卷 B
- 七年级英语学习情况问卷调查
- 哪些主语属于第三人称单数
- 英语短篇小说教程 虞建华 高等教育出版社 课后答案
- 2004年英语专业四级听力试题原文答案
- 2007年5月理财规划师三级考试基础知识和专业能力真题(含答案)
- 部编版语文六年级下册第六单元测试卷A卷
- 高中语文教学批注阅读法之应用
- 2010牛津英语八年级期末考试试卷及答案16
- 2015年河北公务员申论热点:给养老子女发工资
- 2012年世界预防自杀日专题课
- 汽包水位影响因素及水位控制浅析
- 高一生物必修一 细胞中的元素和化合物
- 外研版英语中考复习1
- 电子体重秤校准与我要太胖了要减肥
- 沉降观测实施细则
- 2011云南省数据结构与算法考试答题技巧
- 2010一级新疆维吾尔自治区建造师市政最新考试试题库
- 绩效管理方案-连锁餐饮公司绩效考核管理体系设计方案 精品
- 供电所电能计量装置异常处理及电量退补管理办法