使用OpenGL编程实现Bresenham直线扫描转换算法
更新时间:2023-10-25 06:50:01 阅读量: 综合文库 文档下载
实验要求:
学习Visual C++ 6.0 集成编程环境的使用,OpenGL编程环境的设置,OpenGL语法及基本函数的使用等基础知识,并编程实现Bresenham直线扫描转换算法,得出相应的输出图形。
源程序:
#include glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0,0.0,1.0); glBegin(GL_POINTS); GLint x1=0,y1=0,x2=400,y2=200; GLint x=x1,y=y1; GLint dx=x2-x1,dy=y2-y1,dT=2*(dy-dx),dS=2*dy; GLint d=2*dy-dx; glVertex2i(x,y); while(x { x++; if(d<0) d=d+dS; else { } glVertex2i(x,y); } y++; d=d+dT; glEnd(); } glFlush(); void k2() //k>1 { glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0,1.0,0.0); glBegin(GL_POINTS); GLint x1=0,y1=0,x2=200,y2=400; GLint x=x1,y=y1; GLint dx=x2-x1,dy=y2-y1,dT=2*(dx-dy),dS=2*dx; GLint d=2*dx-dy; glVertex2i(x,y); while(y { y++; if(d<0) d=d+dS; else { x++; d=d+dT; } glVertex2i(x,y); } glEnd(); } void k3() //-1 glFlush(); { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0,0.0,0.0); glBegin(GL_POINTS); GLint x1=0,y1=400,x2=400,y2=200; GLint x=x1,y=y1; GLint dx=x2-x1,dy=y2-y1,dT=2*dy,dS=2*dy+2*dx; GLint d=2*dy-dx; glVertex2i(x,y); while(x { x++; if(d<0) { } else d=d+dT; glVertex2i(x,y); } y--; d=d+dS; glEnd(); } void k4() //k<-1 { glClear(GL_COLOR_BUFFER_BIT); glFlush(); glColor3f(1.0,0.0,1.0); glBegin(GL_POINTS); GLint x1=0,y1=400,x2=200,y2=0; GLint x=x1,y=y1; GLint dx=x2-x1,dy=y2-y1,dT=-2*dy-2*dx,dS=-2*dx; GLint d=-dy-2*dx; glVertex2i(x,y); while(y>y2) { y--; if(d>0) d=d+dS; else { x++; d=d+dT; } glVertex2i(x,y); } glEnd(); } void main(int argc,char ** argv) { glutInit(&argc,argv); glFlush(); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(400,400); glutInitWindowPosition(200,100); glutCreateWindow(\ glClearColor(1.0,1.0,0.0,0.0); gluOrtho2D(0.0,400.0,0.0,400.0); glutDisplayFunc(k1); glutCreateWindow(\ glClearColor(1.0,0.0,1.0,0.0); gluOrtho2D(0.0,400.0,0.0,400.0); glutDisplayFunc(k2); glutCreateWindow(\ glClearColor(0.0,1.0,1.0,0.0); gluOrtho2D(0.0,400.0,0.0,400.0); glutDisplayFunc(k3); glutCreateWindow(\ glClearColor(0.0,1.0,0.0,0.0); gluOrtho2D(0.0,400.0,0.0,400.0); glutDisplayFunc(k4); glutMainLoop(); }
正在阅读:
使用OpenGL编程实现Bresenham直线扫描转换算法10-25
政法学院第十五届研究生会换届大会会议材料 - 图文10-22
好段大全02-10
一场有趣的拔河比赛作文600字06-20
糖尿病模型大鼠骨骼肌VEGF、bFGF、NGF的表达及意义06-05
中南大学 人工智能考试试卷及答案07-04
第9章物料需求计划 MRP05-11
2019-2020最新八年级物理上学期期末复习 第二章 第二节 声音的特性课课练测试卷新人教版word版05-03
刘燕文诉北京大学行政判决书07-06
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 算法
- 直线
- Bresenham
- 扫描
- 转换
- 编程
- 实现
- 使用
- OpenGL
- 高职教育实施第三方评价的主要问题与改进策略
- 五年级安全教案第一课 灾难面前 - 图文
- 2016人教版小学数学四年级上册知识点整理
- 结构力学计算
- 确定发展对象支委会会议记录
- 业扩用500kVA箱变技术协议
- 2018秋新改版苏教版三年级语文上册让我们荡起双桨教案
- 二(11)班《溪水叮咚》语文周报第2期 - 图文
- C语言经典例题及答案
- Console配置超级终端(含命令)
- 大学生恋爱观调查报告 - 图文
- 高考阅卷者青睐真性作文
- 2017年联合小学精准扶贫工作实施方案
- 大使命门徒训练之门徒之道第9-12课
- HIL-EIP33供应商社会责任管理程序
- 电线电缆规格及敷设的字母表示
- 建筑工程项目施工管理的控制措施
- 江苏省常州市2017年中考数学试题及答案含答案 - 图文
- 100万芳烃汽车装车 仪表监理细则 - 图文
- 江苏省江阴市要塞片中学2012年七年级(下)期中检测数学试题(含答案)