- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                第二章 直线、圆、椭圆生成算法 图形显示前需要:扫描转换+裁剪 裁剪---〉扫描转换:最常用,节约计算时间。 扫描转换---〉裁剪:算法简单; 直线的生成算法 确定最佳逼近该直线的一组象素,并且按扫描线顺序,对这些象素进行写操作 三个常用算法: 数字微分法(DDA) 中点画线法 Bresenham算法 数字微分法(DDA)     假定直线的起点、终点分别为:(xa,ya), (xb,yb),则斜率m为:   m=(yb-ya)/(xb-xa)=dy/dx 数值微分(DDA)法  基本思想 直线的起点和终点分别为(xa,ya), (xb,yb), 斜率m为:m=(yb-ya)/(xb-xa)=dy/dx 直线中每个点坐标由前一点坐标加增量(Dx,Dy)而得到      xi+1=xi+Dx   其中x1=xa           yi+1=yi+Dy           y1=ya        并且           Dy=m×Dx   数值微分(DDA)法 数值微分(DDA)法 二个规律      (1)   |dx|  |dy| 时, |Dx|=1, |Dy|=m 	         |dx|≤|dy| 时, |Dx|=1/m, |Dy|=1      (2)   Dx、Dy的符号与dx、dy的符号相同 增量算法:在迭代算法中,如果每一步的x、y值是用前一步的值加上增量来获得,则称为增量算法 DDA算法就是一个增量算法 数值微分(DDA)法 数值微分(DDA)法 void dda_line(int xa,int ya,int xb,int yb,int c) {     float delta_x,delta_y,x,y;     int dx,dy,steps,k;     dx=xb-xa;  dy=yb-ya;     if (abs(dx)abs(dy))  steps=abs(dx);         else steps=abs(dy);     delta_x=(float)dx/(float)steps; delta_y=(float)dy/(float)steps;     x=xa;  y=ya; putpixel(x,y,c);     for (k=1;k=steps;k++){        x+=delta_x;  y+=delta_y;        putpixel(x,y,c);     } } Bresenham画线算法 由DDA算法可知:yi+1=yi+m。由于m不一定是整数,由此式求出的yi也不一定是整数 本算法于1965年由Bresenham提出 在直线生成的算法中,Bresenham算法是最有效的算法之一 令 m=Δy/Δx,就0≤m≤1的情况来说明Bresenham算法 Bresenham画线算法 设直线从起点(xa,ya)到终点(xb,yb)。直线可表示为方程y=mx+b,其中 b=y1-m?x1,                        x1=xa,y1=ya m=(yb-ya)/(xb-xa)=dy/dx Bresenham画线算法    设(xi,yi)表示直线上当前点A,B是理想直线上的点,下一个表示直线的点到底取图中的C点还是D点,即当xi+1=xi+1时,yi+1取yi+1还是yi?     选择的原则取决于y与yi及yi+1的距离d1与d2。 Bresenham画线算法 取Pi=(d1-d2)dx,经整理,得         Pi=2xidy-2yidx+2dy+(2b-1)dx    由于在1a象限,有dx0,故Pi仍可以用来判断符号 求递推公式     Pi+1=2xi+1dy-2yi+1dx+2dy+(2b-1)dx          =2xidy+2dy-2yi+1dx+2yidx-2yidx+2dy+(2b-1)dx          = Pi+2dy-2(yi+1-yi)dx      即求得 Pi+1=Pi+2dy-2(yi+1-yi)dx 求初值      Pi中代入x1和y1,得初值      P1=2dy-dx Bresenham画线算法 算法思想    1. 画点(x1,y1),dx=xb-xa,dy=yb-ya,       计算P1=2dy-dx,i=1;    2. xi+1=xi+1,       如果Pi0,则            yi+1=yi, Pi+1=Pi+2dy;       否则 yi+1=yi+1,  Pi+1=Pi+2dy-2dx;    3. 画点(xi+1,yi+1);    4. i=i+1,如果idx+1,转2;否则结束 优点    1. 不必计算斜率,无除法    2. 不用浮点数,只用整数 
                您可能关注的文档
- 插入式在线密度计幻灯片.pdf
 - 演讲克隆技术教案.ppt
 - 组合数学课件--第一章:排列和组合.ppt
 - 操作系统原理文件虚拟管理幻灯片.pdf
 - 高并发网站架构解决方案解析.docx
 - 标准化达成率目录清单资料.doc
 - 第六章 word20031.ppt
 - 第七章 XBOX光盘游戏拷贝教程.doc
 - I2C总线与eeprom操作.ppt
 - 篇理玫瑰图做法.ppt
 
- 2025年光伏行业光伏发电系统安全性技术创新报告.docx
 - 跨境电商平台2025年国际物流异常件处理跟踪技术报告.docx
 - 2025至2030船舶防腐涂料环保配方研发与市场准入壁垒研究报告.docx
 - 2025年低空经济产业园区低空交通信息评估体系报告.docx
 - 2025年跨境资金流动监测预警报告.docx
 - 2025年生物基包装材料日化包装与设计创新报告.docx
 - 2025至2030中国冲压钣金行业市场深度调研及投资战略及有效策略与实施路径评估报告.docx
 - 2025年垃圾焚烧发电与新能源协同产业未来发展预测报告.docx
 - 2025年生物制造技术在功能性食品原料的天然应用报告.docx
 - 新能源汽车高压系统2025年安全性设计与测试标准化研究报告.docx
 
原创力文档
                        

文档评论(0)