- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.1.1 生成直线的 DDA 算法
数值微分法即 DDA 法 (Digital Differential Analyzer) ,是一种基于直线的微分方程来生成直
线的方法。
一、直线 DDA 算法描述:
设 (x 1,y 1 )和 (x 2 ,y2 )分别为所求直线的起点和终点坐标,由直线的微分方程得
= m = 直线的斜率 (2 - 1)
△
可通过计算由 x 方向的增量 x 引起 y 的改变来生成直线:
△ (2 -2)
x i+1 =x i+ x
△ △ · (2 -3)
y i+1 =y i+ y=y i + x m
也可通过计算由 y 方向的增量 △y 引起 x 的改变来生成直线:
△ (2 -4)
y i+1 =y i+ y
x i+1 =x i+ △x=x i + △y/m (2 -5)
式 (2 -2) 至 (2 -5) 是递推的。
二、直线 DDA 算法思想:
选定 x2 -x1 和 y2 -y 1 中较大者作为步进方向 ( 假设 x 2 -x 1 较大 ) ,取该方向上的增量为一个
△ △ △ ·
象素单位 ( x=1) ,然后利用式 (2 - 1) 计算另一个方向的增量 ( y= x m=m) 。通过递推公式 (2 -
2) 至 (2 -5) ,把每次计算出的 (x i+1 ,y i+1 )经取整后送到显示器输出,则得到扫描转换后的直线。
之所以取 x 2 -x 1 和 y2 -y1 中较大者作为步进方向,是考虑沿着线段分布的象素应均匀,这
在下图中可看出。
Δ Δ
另外,算法实现中还应注意直线的生成方向,以决定 x 及 y 是取正值还是负值。
三、直线 DDA 算法实现:
1 、已知直线的两端点坐标: (x1 ,y1) ,(x2 ,y2)
2 、已知画线的颜色: color
3 、计算两个方向的变化量: dx=x2 -x1
dy=y2 -y1
4 、求出两个方向最大变化量的绝对值:
steps=max(|dx| ,|dy|)
5 、计算两个方向的增量 (考虑了生成方向 ) :
xin=dx/steps
精品文库
yin=dy/steps
6 、设置初始象素坐标: x=x1,y=y1
7 、用循环实现直线的绘制:
for(i=1 ;i=steps ;i++)
{ putpixe
您可能关注的文档
最近下载
- 青鸟气体灭火系统全系列产品接线图.pptx VIP
- 快开门式压力容器(蒸压釜)实际操作考核课件[整理].pdf VIP
- 第10课.公共场所的文明素养(课件) 道德与法治统编版三年级上册2025.ppt
- 中国汉语《通用规范汉字表》.docx VIP
- 化水(预处理)技术规范书[1].docx VIP
- 安保服务工作标准及操作规程.pdf VIP
- DB42T 1032-2014绿色食品 猕猴桃生产技术规程.docx VIP
- 棉铃虫的综合防治方法.pptx VIP
- 2019-2020年杭州师范大学考研真题-347心理学专业综合.pdf VIP
- (高清版)DB3603∕T 1-2022 煤矿地表沉陷区监测技术指南.pdf VIP
原创力文档


文档评论(0)