- 1、本文档共129页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机图形学教案第五章基本图形生成算法
第5章 基本图形生成算法;图形的生成:在指定的输出设备上,根据坐标描述构造二维几何图形。
图形的扫描转换:在光栅显示器等数字设备上确定一个最佳逼近于图形的象素集的过程(连续图形到象素集的转换)。 ;5.1 直线的扫描转换;■数值微分法(DDA法);DDA算法原理:;max(|△x|,|△y|)=|△x|,即|k|≤1的情况:;注:round(x)=(int)(x+0.5)
;void DDAline(int x0, int y0, int x1, int y1)
{ int dx,dy,epsl,k; float x,y,xIncre,yIncre;
dx=x1-x0; dy=y1-y0; x=x0; y=y0;
if(abs(dx)abs(dy)) epsl=abs(dx);
else epsl=abs(dy);
xIncre=(float)(dx)/epsl;
yIncre=(float)(dy)/epsl;
for(k=0;k=epsl;k++)
{ putpixel((int)(x+0.5),(int)(y+0.5));
x+= xIncre; y+= yIncre;
}
} ;■中点Bresenham算法;;基本原理:
假定0≤k≤1,x是最大位移方向
;判别式:;误差项的递推
d0:;误差项的递推
d≥0:;初始值d的计算
;0≤k≤1时Bresenham算法的算法步骤为:
1.输入直线的两端点P0(x0,y0)和P1(x1,y1)。
2.计算初始值△x、△y、d=0.5-k、x=x0、y=y0;
3.绘制点(x,y)。判断d的符号;
若d0,则(x,y)更新为(x+1,y+1),d更新为d+1-k;
否则(x,y)更新为(x+1,y),d更新为d-k。
4.当直线没有画完时,重复步骤3。否则结束。
;改进:用2d△x代替d
1.输入直线的两端点P0(x0,y0)和P1(x1,y1)。
2.计算初始值△x、△y、d=△x-2△y、x=x0、y=y0。
3.绘制点(x,y)。判断d的符号。
若d0,则(x,y)更新为(x+1,y+1),d更新为
d+2△x-2△y;
否则(x,y)更新为(x+1,y), d更新为d-2△y。
4.当直线没有画完时,重复步骤3。否则结束。
;void MidBhline(int x0, int y0, int x1, int y1)
{ int dx,dy,d,UpIncre,DownIncre,x,y,xend;
if(x0x1){x=x1;x1=x0;x0=x; y=y1;y1=y0;y0=y;}
x=x0; y=y0; dx=x1-x0; dy=y1-y0; d=dx-2*dy;
UpIncre=2*dx-2*dy; DownIncre=-2*dy;
while(x=x1)
{ putpixel(x,y);
x++;
if(d0) { y++; d+= UpIncre; }
else d+= DownIncre;
}
} ;■改进的Bresenham算法;误差项的计算
d初=0,
每走一步:d=d+k
一旦y方向上走了一步,d=d-1
;算法步骤:
1.输入直线的两端点P0(x0,y0)和P1(x1,y1)。
2.计算初始值△x、△y、d=0、x=x0、y=y0。
3.绘制点(x,y)。
4.d更新为d+k,判断d的符号。若d0.5,则(x,y)更新为(x+1,y+1),同时将d更新为d-1;否则(x,y)更新为(x+1,y)。
5.当直线没有画完时,重复步骤3和4。否则结束。
;改进1:令e=d-0.5;算法步骤为:
1.输入直线的两端点P0(x0,y0)和P1(x1,y1)。
2.计算初始值△x、△y、e=-0.5、x=x0、y=y0。
3.绘制点(x,y)。
4.e更新为e+k,判断e的符号。若e0,则(x,y)更新为(x+1,y+1),同时将e更新为e-1;否则(x,y)更新为(x+1,y)。
5.当直线没有画完时,重复步骤3和4。否则结束。;改进2:用2e△x来替换e
e初=-△x,
每走一步有e=e+2△y。
if (e0) then e=e-2△x
;算法步骤:
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的符号。若e0,则(x,y)更新为(x+1,y+1),同
您可能关注的文档
- 行政部半年工作小结.ppt
- 行车道的区别和行车方法.ppt
- 行程开关及其应用_副本.ppt
- 行前培训2014_留服中心.ppt
- 衡水老白干基本知识点.ppt
- 行车视距及路线平面设计成果.ppt
- 行政的管理实操练习[欧阳少波老师].ppt
- 衡水中学英语2016高3策略研讨会(共68张PPT).ppt
- 衡阳中医医院7病区常用中医综合治疗项目0603.ppt
- 装配图(二)(装配图中的尺寸标注、零件序号及明细栏).ppt
- 人工智能在医疗影像增强与去噪中的应用研究.docx
- 2025年7月14日河北省特岗教师招聘考试《教育理论基础》真题试卷及答案.docx
- 银杏课件教学课件.pptx
- 2025年数字孪生技术在智慧能源系统优化中的应用研究.docx
- 乡村民宿智能化营销策略研究报告2025.docx
- 生活化教学对小学英语学习兴趣与语言能力的促进作用.docx
- 2025年交通设备制造业数字化转型策略深度分析报告.docx
- 影视行业工业化制作流程与2025年质量控制产业政策影响分析报告.docx
- 2025年工业互联网平台安全标准制定:安全测试与评估方法.docx
- 2025年中医药现代化进程中汤加市场拓展案例分析报告.docx
文档评论(0)