已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026及未来5年中国七分裤市场现状数据分析及前景预测报告
- 2026及未来5年中国B型全翻盖镀金圆型自助餐炉市场现状数据分析及前景预测报告
- 2026年初级经济师工商管理考试试卷及答案
- 2025年温州市事业单位招聘历年真题及答案
- 2026年湖南事业单位联考E类笔试试题及答案
- 2026年品牌设计师模拟试卷(含答案)
- 2026年认知水平模拟题及答案详解
- 2026年公基刷题模拟试题(含答案)
- 2026年容器智商模拟题及答案详解
- 2026年初级经济师之初级经济师财政税收模拟题库及及答案详解
- 主动脉夹层诊疗中国专家共识(2025版)
- 2026年中国太平洋保险集团股份有限公司人员招聘笔试参考题库及详细答案解析
- 2026云南省综合评标专家库专家考试历年参考题库含答案详解
- 劳动用工风险防控手册
- GA/T 2355-2025机动车驾驶人考试组织工作规程
- 交通运输部所属事业单位统一招聘笔试真题2025
- 植物拓印艺术课件
- DB32-T 4870-2024 中医膏方临床应用与制备工艺规范
- GB/T 25052-2024连续热浸镀层钢板和钢带尺寸、外形、重量及允许偏差
- 贵州建筑工程计价定额解释
- YS/T 461.5-2013混合铅锌精矿化学分析方法第5部分:二氧化硅量的测定钼蓝分光光度法
评论
0/150
提交评论