基本图形生成算法

基本图形生成算法

ID:27428354

大小:2.24 MB

页数:117页

时间:2018-12-01

基本图形生成算法_第1页
基本图形生成算法_第2页
基本图形生成算法_第3页
基本图形生成算法_第4页
基本图形生成算法_第5页
资源描述:

《基本图形生成算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章基本图形生成算法提出问题如何在指定的输出设备上根据坐标描述构造基本二维几何图形(点、直线、圆、椭圆、多边形域、字符串及其相关属性等)。2021/9/151华中理工大学计算机学院陆枫99-7图形的生成:是在指定的输出设备上,根据坐标描述构造二维几何图形。图形的扫描转换:在光栅显示器等数字设备上确定一个最佳逼近于图形的象素集的过程。2021/9/152华中理工大学计算机学院陆枫99-75.1直线的扫描转换直线的绘制要求:1.直线要直2.直线的端点要准确,即无定向性和断裂情况3.直线的亮度、色泽要均匀4.画线的速度要

2、快5.要求直线具有不同的色泽、亮度、线型等2021/9/153华中理工大学计算机学院陆枫99-75.1.1数值微分法(DDA法)解决的问题:给定直线两端点P0(x0,y0)和P1(x1,y1),画出该直线。直线的微分方程:2021/9/154华中理工大学计算机学院陆枫99-7DDA算法原理:ε=1/max(

3、△x

4、,

5、△y

6、)2021/9/155华中理工大学计算机学院陆枫99-7max(

7、△x

8、,

9、△y

10、)=

11、△x

12、,即

13、k

14、≤1的情况:max(

15、△x

16、,

17、△y

18、)=

19、△y

20、,此时

21、k

22、≥1:2021/9/156华中

23、理工大学计算机学院陆枫99-7程序注意:round(x)=(int)(x+0.5)2021/9/157华中理工大学计算机学院陆枫99-7特点:增量算法直观、易实现不利于用硬件实现2021/9/158华中理工大学计算机学院陆枫99-75.1.2中点Bresenham算法直线的方程该直线方程将平面分为三个区域:对于直线上的点,F(x,y)=0;对于直线上方的点,F(x,y)>0;对于直线下方的点,F(x,y)<0。2021/9/159华中理工大学计算机学院陆枫99-72021/9/1510华中理工大学计算机学院陆枫99-

24、7基本原理:假定0≤k≤1,x是最大位移方向2021/9/1511华中理工大学计算机学院陆枫99-7判别式:则有:2021/9/1512华中理工大学计算机学院陆枫99-7误差项的递推d<0:2021/9/1513华中理工大学计算机学院陆枫99-7误差项的递推d≥0:2021/9/1514华中理工大学计算机学院陆枫99-7初始值d的计算2021/9/1515华中理工大学计算机学院陆枫99-70≤k≤1时Bresenham算法的算法步骤为:1.输入直线的两端点P0(x0,y0)和P1(x1,y1)。2.计算初始值△x、△

25、y、d=0.5-k、x=x0、y=y0;3.绘制点(x,y)。判断d的符号;若d<0,则(x,y)更新为(x+1,y+1),d更新为d+1-k;否则(x,y)更新为(x+1,y),d更新为d-k。4.当直线没有画完时,重复步骤3。否则结束。2021/9/1516华中理工大学计算机学院陆枫99-7改进:用2d△x代替d1.输入直线的两端点P0(x0,y0)和P1(x1,y1)。2.计算初始值△x、△y、d=△x-2△y、x=x0、y=y0。3.绘制点(x,y)。判断d的符号。若d<0,则(x,y)更新为(x+1,y+1

26、),d更新为d+2△x-2△y;否则(x,y)更新为(x+1,y),d更新为d-2△y。4.当直线没有画完时,重复步骤3。否则结束。程序2021/9/1517华中理工大学计算机学院陆枫99-75.1.3改进的Bresenham算法假定直线段的0≤k≤1基本原理:2021/9/1518华中理工大学计算机学院陆枫99-7误差项的计算d初=0,每走一步:d=d+k一旦y方向上走了一步,d=d-12021/9/1519华中理工大学计算机学院陆枫99-7算法步骤:1.输入直线的两端点P0(x0,y0)和P1(x1,y1)。2.

27、计算初始值△x、△y、d=0、x=x0、y=y0。3.绘制点(x,y)。4.d更新为d+k,判断d的符号。若d>0.5,则(x,y)更新为(x+1,y+1),同时将d更新为d-1;否则(x,y)更新为(x+1,y)。5.当直线没有画完时,重复步骤3和4。否则结束。2021/9/1520华中理工大学计算机学院陆枫99-7改进1:令e=d-0.5e初=-0.5,每走一步有e=e+k。if(e>0)thene=e-12021/9/1521华中理工大学计算机学院陆枫99-7算法步骤为:1.输入直线的两端点P0(x0,y0)和

28、P1(x1,y1)。2.计算初始值△x、△y、e=-0.5、x=x0、y=y0。3.绘制点(x,y)。4.e更新为e+k,判断e的符号。若e>0,则(x,y)更新为(x+1,y+1),同时将e更新为e-1;否则(x,y)更新为(x+1,y)。5.当直线没有画完时,重复步骤3和4。否则结束。2021/9/1522华中理工大学计算机学院陆枫99-7

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。