计算机图形学 - 第三章讲义ppt课件.ppt

计算机图形学 - 第三章讲义ppt课件.ppt

ID:58657712

大小:744.50 KB

页数:80页

时间:2020-10-05

计算机图形学 - 第三章讲义ppt课件.ppt_第1页
计算机图形学 - 第三章讲义ppt课件.ppt_第2页
计算机图形学 - 第三章讲义ppt课件.ppt_第3页
计算机图形学 - 第三章讲义ppt课件.ppt_第4页
计算机图形学 - 第三章讲义ppt课件.ppt_第5页
资源描述:

《计算机图形学 - 第三章讲义ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章输出图元点绘制画线算法圆生成算法多边形第三章输出图元图元的概念最基本的图形元素/图形输出原语类型图形一级元素:点、线图形二级元素:弧、圆、多边形、曲线、字符其他:...3.1点和直线点直线点的绘制光栅扫描系统:帧缓冲器对应位置设为1其他元素的绘制都在以点为基础产生。直线的绘制光栅扫描系统屏幕位置以整数值表示;以线路径上的离散点来显示线段显示的线段具有阶梯效果直线的绘制计算机绘制的直线是由一系列与该直线最近的像素绘制而成理论直线与计算机绘制的直线之间总有一定的偏差只能尽量减少偏差偏差取决于屏幕光栅(分辨率)和光点的运动方向阶梯效果的直线3.2画线算法问题画线算法DDA算法Brese

2、nham算法3.2画线算法问题已知直线的两个端点P1(x1,y1),P2(x2,y2)求直线的中间各点3.2画线算法已知:P1(x1,y1),P2(x2,y2)直线的笛卡尔斜率截距方程y=m*x+bm=(y2-y1)/(x2-x1)b=y1-m*x1y=m*xx=y/m3.2画线算法对于模拟显示设备,方程y、x是决定偏转电压变化的基础。当

3、m

4、<1,△x可以设置为正比于一水平偏转电压,△y则可以根据公式计算。当

5、m

6、>1,△y可以设置为正比于一垂直偏转电压,△x则可以根据公式计算。直线绘制要求直端点准确亮度均匀速度属性x1x2y1y2xy求直线中间的各个像素点1.DDA算法

7、数字微分分析仪思想:在一个坐标轴上以单位间隔对线段取样,则另一个坐标轴以常数m或1/m变化,从而获得线段上各像素点直线中间的各个像素点-沿x轴取样x1x2y1y2xy

8、m

9、<1DDA算法公式直线斜率满足

10、m

11、<1时,取x方向为单位步长递推公式为:xk+1=xk1yk+1=ykm求直线中间各个像素点-沿y轴取样x1x2y1y2xy

12、m

13、>1DDA算法公式直线斜率满足

14、m

15、>1时,取y方向为单位步长递推公式为:yk+1=yk1xk+1=xk1/m画直线的DDA算法可表示为:若

16、m

17、≤1:xk+1=xk+1,yk+1=yk+m;xa

18、xa>xb若

19、m

20、≥1:yk+1=yk+1,xk+1=xk+1/m;yaybDDA算法DDA算法举例已知直线的两个端点P1(20,10),P2(30,18),用DDA算法使该线段光栅化。解:dx=10;dy=8;循环次数:steps=10;沿X轴单位取样:x_in=1Y按斜率变化:y_in=0.8DDA算法举例DDA算法举例2021222324252627282930101112131415161718DDA算法的C实现#defineRound(a)((int)(a+0.5))voidlineDDA(intxa,intya,

21、intxb,intyb){intdx=xb-xa,dy=yb-ya,steps,k;floatxIncrement,yIncrement,x=xa,y=ya;if(abs(dx)>abs(dy))steps=abs(dx);elsesteps=abs(dy);xIncrement=dx/(float)steps;yIncrement=dy/(float)steps;setpixel(Round(x),Round(y),RED);for(k=0;k

22、;}}DDA算法评价比直接使用公式y=m*x+b快,没有用乘法运算仍然耗时设置增量的除法运算取整操作浮点较长线段的误差积累2.Bresenham算法由Bresenham提出的一种精确而有效的光栅线段生成算法,可用于直线、圆(圆弧)和其它曲线的生成思想算法公式推导算法描述举例Bresenham算法思想从(10,10)像素开始,绘制0

23、yk),求下一点(xk+1,yk+1)(xk+1,yk+1)的两种可能:(xk+1,yk)和(xk+1,yk+1),其中xk+1=xk+1Bresenham算法公式推导推导:设两点与理想直线距离分别为d1、d2d1=y-yk=m*xk+1+b-yk=m*(xk+1)+b-ykd2=yk+1-y=yk+1-m*(xk+1)-bd1-d2=2m(xk+1)-2yk+2b-1代入m=y/x,Bresenham算法公式推导d1-d2=2*y/x

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

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

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