1 / 83
文档名称:

《图形显示算法基础》.ppt

格式:ppt   大小:4,813KB   页数:83页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《图形显示算法基础》.ppt

上传人:相惜 2024/4/25 文件大小:4.70 MB

下载得到文件列表

《图形显示算法基础》.ppt

相关文档

文档介绍

文档介绍:该【《图形显示算法基础》 】是由【相惜】上传分享,文档一共【83】页,该文档可以免费在线阅读,需要了解更多关于【《图形显示算法基础》 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。所谓图元的生成,是指完成图元的参数表示形式〔由图形软件包的使用者指定〕到点阵表示形式〔光栅显示系统刷新时所需的表示形式〕的转换。通常也称扫描转换图元。 根本知识只有画水平线,垂直线,及正方形对角线时,象素点集的位置才是准确的。显示一条直线,:缓冲存储器,显示控制器,数/模转换器,阴级射线管〔CRT〕A(x1,y1)、B(x2,y2)、在纸上画一条直线和在计算机屏幕上画一条直线有什么本质的区别?2整理课件生成直线的一般要求是:〔数值微分法〕。图形生成算法的工作:在显示器所给定的有限个象素组成的矩阵中,,,且与直线的长度和方向无关。 直线光栅化的方法3整理课件已知端点A(x1,y1)、B(x2,y2),直线的微分方程:dy/dx=(y2-y1)/(x2-x1)=常数=myi+1=yi+(y2-y1)/(x2-x1)*Δx=yi+m*Δxyi=mxi+Byi+1=mxi+1+B=m(xi+Δx)+BA(x1,y1)B(x2,y2)Pi(xi,yi)Pi+1(xi+1,yi+1)dy=k· DDA算法(DigitalDifferentialAlgorithm)通过同时对x,y各增加一个小的增量,计算下一步的x,y值。在一个迭代算法中,如果每一步的x,y值是用前一步的值加上一个增量来获得,那么这种算法称为增量算法。4整理课件光栅中Δx=1直线的递推公式yi+1=yi+(y2-y1)/(x2-x1)xi+1=xi+1doublex=x1,y=y1;m=(y2-y1)/(x2-x1);intk=abs(x2-x1);for(inti=0;i<k;i++){x=x+1;y=y+m;}如果x2>x1≥0,y2>y1≥05整理课件oxyk>1讨论:oxyk<1xi+1=xi+1yi+1=yi+kyi+1=yi+1xi+1=xi+1/k(xi,yi)(xi+1,yi+1)(xi,yi)(xi+1,yi+1)因而造成隔行显示解决方法:将y看作自变量6整理课件结论:第一象限的直线DDA算法:(round(xi+1),yi+1)yi+1=yi+1xi+1=xi+1/kk>1(xi+1,round(yi+1))xi+1=xi+1yi+1=yi+kk<1逼近直线的象素点的坐标直线上点的坐标递推公式直线的斜率起点〔x1,y1〕,终点〔x2,y2〕(x2>x1,y2>y1)以〔x1,y1〕为起点7整理课件DDA算法的优、缺点DDA算法的本质:效率低,不利于硬件实现直观可行DDA算法也是一个增量算法。缺陷:做除法;须采用浮点数据计算要取整数->算法效率不高算法程序实现k=abs(x2-x1);if(abs(y2-y1)>k)doubledeltx=(x2-x1)/k;doubledelty=(y2-y1)/k;for(inti=0;i<=k;i++){x+=deltx;//x=x+deltx;y+=delty;//y=y+delty;}k=abs(y2-y1);putpixel((int)x,(int)y,2);用数值方法解微分方程(数值微分法),迅速确定直线上的点。借助于一个决策变量d的正负符号,来确定下一个该点亮的象素点。最逼近Pi+1点的象素点是Ti+1点还是Si+1点?由ti+1与si+1二者的相对大小决定。假设ti+1<si+1,那么取Ti点(xi+1,yi+1)假设ti+1>si+1,那么取Si点(xi+1,yi)ti+1与si+1二者的大小可以由si+1-ti+1的正负来判定。stTiSi(r,q) 直线的Bresenham算法9整理课件为讨论方便,假定:直线斜率k在0,1之间起点坐标A(x1,y1)终点坐标B(x2,y2)将直线平移到原点则起点坐标(0,0),终点坐标B(dx,dy)dx=x2-x1dy=y2-y1其中直线方程为:且其中r=xi-1,q=yi-1stTiSi(r,q)所以定义di=dx(s-t)为决策变量10整理课件