教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> > 互联网> 实验一 计算机图形学

实验一 计算机图形学

上传者:齐立哲
|
上传时间:2015-04-24
|
次下载

实验一 计算机图形学

西北农林科技大学实习报告

课程:计算机图形学 学 院:理 学 院 专业班级:信计121 姓名:张晶晶 学 号:2012014276 日 期:2014/11/29 实验一 基本图形元素生成算法

一.实验目的

1)熟练掌握基本图形元素生成算法(DDA算法和中点Bresenham算法);

2)对高级语言的图形模式的设定有比较详细的了解;

二.实验步骤

1)实验使用Bresenham算法和DDA算法;

2)画出程序流程图;

3)编写程序的源程序;

4)编辑源程序并进行调试;

5)运行源程序并保存运行结果。

三.实验内容

学生自己选定一种基本图形(直线段),编写生成该基本图形的源程序,并能在计算机上编译运行,画出正确的图形。

1. 原理简介

DDA算法略。

Bresenham算法是计算机图形学领域使用最广泛的直线扫描转换方法。

其原理是:过各行、各列像素中心构造一组虚拟网格线,按直线从起点到终点的顺序计算直线各垂直网格线的交点,然后确定该列像素中与此交点最近的像素。该算法的优点在于可以采用增量计算,使得对于每一列,只要检查一个误差项的符号,就可以确定该列所求的像素。

如果令d0=0, d=d+k (k为直线斜率,假设k<1,当d≥1时,减1) 保证d在0、1之间;当d>0.5, (X0,Y0)→(X0+1,Y0+1) ;d<0.5, (X0,Y0)→(X0+1,Y0)。

具体步骤:

下面是0?k?1的时候的算法,其他时候类似

(1) 输入直线的两个端点P0(x0,y0)和P1(x1,y1)

(2)计算初始值?x,?y,e???x,x?x0,y?y0

(3)绘制点(x,y)

(4)e更新为e?2?y。判断e的符号,若e?0,则(x,y)更新为(x?1,y?1),同时将e更新为

e?2?x;否则(x,y)更新为(x?1,y)

(5)当直线没画完时,重复步骤(3)和(4),否则结束 流程图为:

2.图形描述:

分别画出(0,0)到(800,500)的直线段 >> MidBresenhamline(0,0,800,500)

>>DDA(0,0,800,500,'r') 结果如下图所示:

内容需要下载文档才能查看

内容需要下载文档才能查看

内容需要下载文档才能查看

3.程序的源程序:

%中点Bresenham算法

function MidBresenhamline( x0,y0,x1,y1 ) if (x0>x1)

x=x1;x1=x0;x0=x;

y=y1;y1=y0;y0=y;

end

dx=x1-x0;

dy=y1-y0;

d=dx-2*dy;

x=x0;y=y0;

UpIncre=2*dx-2*dy;DownIncre=-2*dy; while (x<=x1)

plot(x,y,'*');

hold on;

x=x+1;

y=y+1;

if (d<0)

y=y+1;

d=UpIncre+d;

else

x=x+1;

d=DownIncre+d;

end

end

hold on;

xlabel('xÖá');%横坐标显示x轴

ylabel('yÖá');%纵坐标显示y轴

title('ÖеãBresenhamËã·¨'); %标题为中点Bresenham算法

end

%DDA算法画直线

function DDA(x1,y1,x2,y2,color)

length =abs(x2-x1);

if abs(y2-y1)>length

length=abs(y2-y1);

end

dx=(x2-x1)/length;

dy=(y2-y1)/length;

x=x1+0.5*sign(dx);

y=y1+0.5*sign(dy);

hold on

for i=1:length

plot(round(x),round(y),'Color',color)

x=x+dx;

y=y+dy;

end

xlabel('xÖá'); %横坐标显示x轴

ylabel('yÖá'); %纵坐标显示y轴

title('DDAËã·¨'); %标题为DDAm算法

hold off

end

四 实验总结

本实验中编写的中点Bresenham算法只适用斜率在0,1之间的线段,其他的情况也可以写出算法,在此没作深入讨论。

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

下载文档

热门试卷

2016年四川省内江市中考化学试卷
广西钦州市高新区2017届高三11月月考政治试卷
浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
广西钦州市钦州港区2017届高三11月月考政治试卷
广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
广西钦州市高新区2016-2017学年高二11月月考政治试卷
广西钦州市高新区2016-2017学年高一11月月考政治试卷
山东省滨州市三校2017届第一学期阶段测试初三英语试题
四川省成都七中2017届高三一诊模拟考试文科综合试卷
2017届普通高等学校招生全国统一考试模拟试题(附答案)
重庆市永川中学高2017级上期12月月考语文试题
江西宜春三中2017届高三第一学期第二次月考文科综合试题
内蒙古赤峰二中2017届高三上学期第三次月考英语试题
2017年六年级(上)数学期末考试卷
2017人教版小学英语三年级上期末笔试题
江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
四川省简阳市阳安中学2016年12月高二月考英语试卷
四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
安徽省滁州中学2016—2017学年度第一学期12月月考​高三英语试卷
山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷

网友关注视频

沪教版八年级下册数学练习册21.3(3)分式方程P17
沪教版牛津小学英语(深圳用) 四年级下册 Unit 3
冀教版英语四年级下册第二课
【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
外研版英语七年级下册module1unit3名词性物主代词讲解
七年级英语下册 上海牛津版 Unit9
冀教版英语三年级下册第二课
沪教版牛津小学英语(深圳用)五年级下册 Unit 1
人教版历史八年级下册第一课《中华人民共和国成立》
二年级下册数学第三课 搭一搭⚖⚖
七年级英语下册 上海牛津版 Unit5
沪教版八年级下册数学练习册21.3(2)分式方程P15
第12章 圆锥曲线_12.7 抛物线的标准方程_第一课时(特等奖)(沪教版高二下册)_T274713
8 随形想象_第一课时(二等奖)(沪教版二年级上册)_T3786594
化学九年级下册全册同步 人教版 第22集 酸和碱的中和反应(一)
《小学数学二年级下册》第二单元测试题讲解
化学九年级下册全册同步 人教版 第25集 生活中常见的盐(二)
沪教版八年级下次数学练习册21.4(2)无理方程P19
冀教版小学数学二年级下册第二单元《有余数除法的整理与复习》
30.3 由不共线三点的坐标确定二次函数_第一课时(市一等奖)(冀教版九年级下册)_T144342
沪教版牛津小学英语(深圳用) 五年级下册 Unit 10
冀教版小学数学二年级下册1
19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T502436
苏科版八年级数学下册7.2《统计图的选用》
3.2 数学二年级下册第二单元 表内除法(一)整理和复习 李菲菲
【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,辽宁省
精品·同步课程 历史 八年级 上册 第15集 近代科学技术与思想文化
每天日常投篮练习第一天森哥打卡上脚 Nike PG 2 如何调整运球跳投手感?
第五单元 民族艺术的瑰宝_16. 形形色色的民族乐器_第一课时(岭南版六年级上册)_T1406126
北师大版小学数学四年级下册第15课小数乘小数一