直线和圆弧的生成算法
14页1、第3章直线和圆弧的生成算法3.1 直线图形的生成算法数学上的直线是没有宽度、由无数个点构成的集合,显然,光栅显示器只 能近地似显示直线。当我们对直线进行光栅化时,需要在显示器有限个像素中, 确定最佳逼近该直线的一组像素,并且按扫描线顺序,对这些像素进行写操作, 这个过程称为用显示器绘制直线或直线的扫描转换。由于在一个图形中,可能包含成千上万条直线,所以要求绘制算法应尽可能地快。本节我们介绍一个像素宽直线绘制的三个常用算法:数值微分法(DDA)、中点画线法和Bresenham算法。3.1.1 逐点比较法3.1.2 数值微分(DDA)法设过端点Po(xo , y0)、Pi(xi , yi)的直线段为L( Po , Pi),则直线段L的斜率为此=21二电。要在显示器显示L,必须确定最佳逼近的象素集合。我们从 演一坛L的起点Po的横坐标xo向L的终点Pi的横坐标xi步进,取步长=1(个像素),用L的直线方程y=kx+b计算相应的y坐标,并取像素点(x,round( y)作为当前点的坐标。因为:y+1= kxi+i+b=kixi+b+Hx=yi+k x所以,当Ax =1; yi+i = yi+k
2、o也就是说,当x每递增1, y递增k(即直线斜 率)。根据这个原理,我们可以写出 DDA (Digital Differential Analyzer)画线算 法程序。DDA画线算法程序:void DDALine(int x0,int y0,int x1,int y1,int color) int x ;float dx, dy, y, k;dx = x1-x0; dy=y1-y0;k=dy/dx, ; y=y0 ;for (x=x0 ; x x1 ; x+) drawpixel (x, int(y+0.5), color);y=y+k;注意:我们这里用整型变量color表示像素的颜色和灰度。举例:用DDA方法扫描转换连接两点P0 (0,0)和P1 (5,2)的直线段。xint(y+0.5)y+0.5000100.4+0.5210.8+0.5311.2+0.5421.6+0.5241卜1 012345图3.1.1直线段的扫描转换注意:上述分析的算法仅适用于|k| 1时,必须把x, y地位互换,y每增加1, x相应增加 1/k。在这个算法中,y与k必须用浮点数表示,而且每一步都要对 y进
3、行四舍五 入后取整,这使得它不利于硬件实现。动画演示:数值微分画线算法(DDA用血?方位制搐转挽遵接前点PO 9G和川(5.2)的直俵里一为当前象素点o 一为终止点O 为起始点3.1.3 中点画线法假定直线斜率k在01之间,当前像素点为(xp,yp),则下一个像素点 有两种可选择点 Pi(xp+1,yp)或 P2(xp+1,yp+1)。若 Pi 与 P2 的中点(Xp+1,yp+0.5) 称为M, Q为理想直线与x=xp+1垂线的交点。当M在Q的下方时,则取P2应 为下一个像素点;当M在Q的上方时,则取Pi为下一个像素点。这就是中点画 线法的基本原理。1知图3.1.2中点画线法每步迭代涉及的像素和中点示意图下面讨论中点画线法的实现。过点(xo,yo)、(xi, yi)的直线段L的方程式 为 F(x, y)=ax+by+c= 0,其中,a=yo-yi, b=xi-xo, c=xoyi-xiyo,欲判断中点 M 在 Q 点的上方还是下方,只要把 M代入F (x, y),并判断它的符号即可。为此,我 们构造判别式:d=F(M)=F(xp+i, yp+0.5)=a(xp+i)+b(yp+0.5
《直线和圆弧的生成算法》由会员ni****g分享,可在线阅读,更多相关《直线和圆弧的生成算法》请在金锄头文库上搜索。
2023广告牌制作合同样本(八篇).doc
维修合同集合6篇
东北农业大学21秋《电子商务》在线作业一答案参考76
年终述职大会简报
甲乙双方签订的公路运输合同范本集锦.doc
幼儿教师计划总结(三篇).doc
家具品牌ABC分类表
智能刹车系统的未来发展
数学教师年终工作总结标准模板(二篇).doc
2023年度护士个人计划模板(三篇).doc
年产80万个塑料桶项目资金申请报告写作模板定制
【精选】周记高中生寒假4篇
环保主题演讲稿七篇
骨外科护理常规
【最新】四川省三台县九年级期末教学质量检测试题
诵读经典演讲稿精选5篇
普通高中学生自我鉴定范文.doc
优秀护士演讲稿6篇(护士优质护理演讲稿)
网站建设服务合同
中药专业求职信3篇
2023-06-22 27页
2023-09-04 8页
2022-10-24 5页
2022-09-04 6页
2023-01-30 66页
2024-01-06 2页
2023-10-24 2页
2023-08-16 46页
2023-06-13 10页
2022-09-21 7页