已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 实验目的:(1)学会使用OpenGL生成指定的直线。(2)掌握生成直线的DDA算法和Bresenham算法。2. 实验内容: 运用DDA和Bresenham算法画出一条直线,3. 实验算法分析:DDA算法:利用两点确定斜率,及在8个象限中的坐标增量的规律生成直线;Bresenham算法:1、将直线光栅化,计算误差初值Pi=2dy-dx,求出下一点的位置; 2、如果Pi0,则y(i+1)=yi+1,否则y(i+1)=yi; 3、画出点,继而迭代求出各点,最终生成直线。4. 程序源代码:DDA算法:#include void init(void) glClearColor(1.0,1.0,1.0,1.0); gluOrtho2D(0.0,50.0,0.0,50.0); int abs(int x) int y; if(xabs(dy) steps=abs(dx); else steps=abs(dy); delta_x=(float)dx/(float)steps; delta_y=(float)dy/(float)steps; x=xa; y=ya; set_pixel(x,y); for(k=1;k=steps;k+) x+=delta_x; y+=delta_y; set_pixel(x,y); void display(void) glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.5,1.0,0.5); dda_line(25,25,5,45); glPointSize(6.0); glBegin(GL_POINTS); glVertex2f(1.0,1.0); glEnd(); glFlush(); int main(int argc, char* argv) glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(250,250); glutInitWindowPosition(500,250); glutCreateWindow(OpenGL框架之直线与点); init(); glutDisplayFunc(display); glutMainLoop(); return 0; Bresenham算法:#include void init(void) glClearColor(1.0,1.0,1.0,1.0); gluOrtho2D(0.0,50.0,0.0,50.0); int abs(int x) int y; if(x=0) inc=1;else inc=-1; if (abs(dx)abs(dy) if(dx0) tmp=x1; x1=x2; x2=tmp; tmp=y1; y1=y2; y2=tmp; dx=-dx; dy=-dy; p=2*dy-dx;const1=2*dy;const2=2*(dy-dx);x=x1;y=y1;set_pixel(x,y);while(xx2) x+; if(p0) p+=const1; else y+=inc; p+=const2; set_pixel(x,y); else if(dy0) tmp=x1; x1=x2; x2=tmp; tmp=y1; y1=y2; y2=tmp; dx=-dx; dy=-dy; p=2*dx-dy; const1=2*dx; const2=2*(dx-dy); x=x1; y=y1; set_pixel(x,y); while(yy2) y+; if(p0) p+=const1; else x+=inc; p+=const2; set_pixel(x,y); void display(void) glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.5,1.0,0.5); voidline(25,5,45,45); glPointSize(6.0); glFlush(); int main(int argc, char* argv) glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(250,250); glutInitWindowPosition(500,250); glutCreateWindow(OpenGL框架之
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国液体化学品铁路运输成本控制与网络优化研究
- 房地产验房标准化检查表工具包
- 孤独症儿童康复训练评估工具
- 涤纶纤维纱线市场细分与客户分析
- 企业信息安全风险防控
- 安全文明施工管理培训方案
- 初中音乐教材教学设计案例
- 电子商务平台运营推广策划书模板
- 2025中国数字经济产业集群及区域发展潜力研究报告
- 2025中国数字化转型进程中的IT服务市场分析报告
- 2025年入团考试知识总结试题及答案
- JJF 2291-2025辉光放电质谱仪校准规范
- 2025江苏苏州市高新区基层公共服务岗位招聘高校毕业生30人考试参考题库及答案解析
- 统编版(2024)三年级上册道德与法治第二单元 爱科学 学科学 教案(4-6课)
- 山西三晋卓越联盟2025-2026高三10月质量检测(26-X-028C)英语(B)
- 中考英语阅读理解专项训练试卷
- DB31T 1605-2025电动自行车充换电柜建设和消防安全管理要求
- 地质灾害知识培训会
- GB/T 24460-2025太阳能光伏照明装置总技术规范
- 2025年通信技术公司工作人员招聘考试笔试试题(附答案)
- 视力障碍概述
评论
0/150
提交评论