第一范文网 - 专业文章范例文档资料分享平台

贵州大学计算机图形学实验报告----直线生成算法

来源:用户分享 时间:2025/8/31 14:30:44 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

贵州大学计算机图形学实验报告

学院:计算机科学与信息学院 专业:软件工程 班级:102班

姓名 实验时间 学号 指导教师 实验组 成绩 实验项目名称 实验一 直线生成算法 实验目的 实1、 能够使用DDA数值微分法绘制直线。 验2、 能够使用中点画线算法绘制直线。 要3、 能够使用Bresenham画线算法绘制直线。 求 一、DDA数值微分法画直线 已知直线段L的起点为P0(x0,y0),终点为P1(x1,y1) 直线的斜率K则为:K=(y1-y0)/(x1-x0).直线的方程为:y = kx+b.则对于|k|<=1来说,x每增加1个步长,y增加 k(直线的斜率)。对于|k|>1来说,y每增加1个步长,x增加1/k。 分析如下所示: 实|k|<=1的推导过程 验yi+1 = kxi+1 + b = k(xi+Δx)+b = kxi+b+kΔx 原yi+1 = yi+ kΔx 理 Δx = 1 yi+1 = yi+ k |k|>1的推导过程 Xi+1 = yi+1/k – b/k = yi/k - b/k +Δy/k Δy = 1 Xi+1 = Xi+1/k xi xi+1 yi yi+1 通过本实验,了解并掌握在光栅显示系统中直线的生成和显示算法,熟悉相关开发平台。为后继实验打下基础。 DDA算法的分析: 复杂度:加法+取整 优点:避免了y=kx+b 方程中的浮点乘法,比直接用点斜式画线快。 缺点:需浮点数加法及取整运算,不利于硬件实现。 二、中点划线法 假设直线的起点、终点分别为:(X0,Y0),(X1,Y1),直线方程: F(x,y)=ax+by+c=0,其中: a=y0-y1,b=(x1-x0),c=x0y1-x1y0。 如F(x,y)=0, 则(x,y) 在直线上 如F(x,y)<0, 则(x,y)在直线下方 如F(x,y)>0, 则(x,y)在直线上方 对于|k|<=1 假设已确定当前象素点P(Xp ,Yp ),然后确定下一个象素点,即T 或B之一。M为T,B中点,Q为理想直线与栅格线的交点。若M在Q的下方,选T,否则选B。使用直线的正负划分性来判断M和Q的位置关系.构造判别式: d=F(M)=F(xp+1,yp+0.5)=a(xp+1)+b(yp+0.5)+c 当d<0,M在L(Q点)下方,取右上方T为下一个象素; 当d>=0,M在L(Q点)上方,取右方B为下一个象素; 当d=0,选T或B均可,约定取B为下一个象素 判断了M的位置之后则可以依次的画出各个点,从而得到一条直线。 对于|k|>1 d=F(M)=F(xp+0.5,yp+1)=a(xp+0.5)+b(yp+1)+c 当d>=0,M在L(Q点)下方,取右上方T为下一个象素; 当d<0,M在L(Q点)上方,取右方B为下一个象素; 当d=0,选T或B均可,约定取B为下一个象素 中点划线算法的分析: x Pi=(xi, P1 Q M p2 y

贵州大学计算机图形学实验报告----直线生成算法.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5aous2wojr44s0w0d4ij47hq70zb09011qg_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top