河南理工大学计算机图形学3章-1直线剖析

上传人:我** 文档编号:116965472 上传时间:2019-11-17 格式:PPT 页数:24 大小:471KB
返回 下载 相关 举报
河南理工大学计算机图形学3章-1直线剖析_第1页
第1页 / 共24页
河南理工大学计算机图形学3章-1直线剖析_第2页
第2页 / 共24页
河南理工大学计算机图形学3章-1直线剖析_第3页
第3页 / 共24页
河南理工大学计算机图形学3章-1直线剖析_第4页
第4页 / 共24页
河南理工大学计算机图形学3章-1直线剖析_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《河南理工大学计算机图形学3章-1直线剖析》由会员分享,可在线阅读,更多相关《河南理工大学计算机图形学3章-1直线剖析(24页珍藏版)》请在金锄头文库上搜索。

1、 第三章 二维图形生成技术计算机图形学 第3章- 2计算机科学与技术学院 第3章 二维图形生成 1 复杂的图形通常被看作是由一些基本图形元素(也 称图元)构成的; 2 基本二维图元包括点、直线、圆弧等; 3 点是由其坐标(x,y)来描述的。直线由其两端点坐标描 述。折线是由构成它的顶点序列描述; 4 所有图形的输出都归结为设备上的光栅像素点亮,或 者设备的动作; 5 基本图形除了位置信息外,还描述了图元的一些属性 信息,比如线宽、线型、颜色、填充图案等。 第三章 二维图形生成技术计算机图形学 第3章- 3计算机科学与技术学院 第3章 二维图形生成 3.1 直线图形生成 3.2 圆及二次曲线生成

2、 3.3 区域图形填充 3.4 字符生成 3.5 反走样 第三章 二维图形生成技术计算机图形学 第3章- 4计算机科学与技术学院 3.1 直线图形的生成 一、直线生成算法 直线的生成算法基本思想是折线逼近直线,根据逼近 的方式分为模拟逼近和插值逼近两种方式。 1.模拟逼近:模拟人的绘图过程,把动作进行分解 为基本动作,然后进行过程模拟,适应于绘图机。 2.插值逼近:在直线两端点之间进行差值计算,然 后在端点之间插入相应的点,适用于显示器。 3.常用算法:逐点比较法、数值微分法、 中点画线法和Bresenham算法等。 第三章 二维图形生成技术计算机图形学 第3章- 5计算机科学与技术学院 1D

3、DA算法(数值微分法) 本算法是根据直线的微分方程来画直线。 设直线从起点Ps(xs, ys)到终点Pe(xe, ye ), 令:x=(xe-xs),y=(ye-ys) k=y/x 方程:y=ys+k(xe-xs) xi+1=xi +x yi+1=yi +y x,y 为增量 xi+1=xi +x yi+1=yi +y y=mx 若01, 且|x|0 令 Fm= YmXa-YaXm 偏差判别式 若 Fm0,点M位于直线上方, M2,走X+。 Fm=0,=,点M位于直线上, M0,走X+。 Fm0,点M位于直线下边, M1,走Y+。 即 Fm0,点M位于直线上方, M2,走X+。 Fm0, 点M位

4、于直线下边, M1,走Y+。 两乘除一加减 第三章 二维图形生成技术计算机图形学 第3章- 11计算机科学与技术学院 在图中,计算点从M1到M3的走步过程和偏差判别式: 当点M1M2时,Fm=0, 令沿X+走一步距 即 X3=X2+1,Y3=Y2 判别式计算:F3=Y3Xa-YaX3 M3 第三章 二维图形生成技术计算机图形学 第3章- 12计算机科学与技术学院 递推方法: F1=Y1Xa-YaX1 F2=Y2Xa-YaX2=(Y1+1)Xa-YaX1=F1+Xa F3=Y3Xa-YaX3=Y2Xa-Ya(X2+1)=F2-Ya 计算量: 当Fm0 时, 令沿Y+走一步距,即 X2=X1,Y2

5、=Y1+1 偏差判别式 F2=F1+Xa 即 Fi+1=Fi+Xa 当Fm0 时,令沿X+走一步距,即X3=X2+1,Y3=Y2 偏差判别式 F3=F2-Ya 即 Fi+1=Fi-Ya 一加减 两乘除一加减一加减 第三章 二维图形生成技术计算机图形学 第3章- 13计算机科学与技术学院 4) 终点判断: 终点判断: 坐标判断:XmXa YmYa 两式同时成立两式同时成立 走步数控制:即单向步数和总步数。 若绘图的步距设为dt,直线在X和Y方向上的增量分别 为dx和dy,则: X方向的步数 Nx=|dx/dt| Y方向的步数 Ny=|dy/dt| 总步数 N=Nx+Ny =|dx/dt|+|dy

6、/dt| 单向步数 N单=max(Nx,Ny) 第三章 二维图形生成技术计算机图形学 第3章- 14计算机科学与技术学院 3Bresenham算法(插值) 1)算法分析 本算法由Bresenham在1965年提出。 设直线从起点(x1, y1)到终点(x2, y2 )。 直线方程:y=x.dy/dx。其中 dy=(y2-y1),dx=(x2-x1) 设Pi-1坐标(p,q),Si坐标(p+1,q), Ti的坐标(p+1,q+1), 得 s=(p+1)dy/dx-q t=(q+1)-(p+1)dy/dx 则:s-t=2(p+1)dy/dx-2q-1 即:dx(s-t)=2(pdy-qdx)+2d

7、y-dx 假设0k1 第三章 二维图形生成技术计算机图形学 第3章- 15计算机科学与技术学院 将p=xi-1,q=yi-1代入, di=2xi-1dy-2yi-1dx+2dy-dx 而 di+1=2xidy-2yidx+2dy-dx di+1di=2dy(xixi-1)2dx(yiyi-1) 在计算时令xixi-1=1可得: di+1=di+2dy2dx(yiyi-1) 若di0,选Ti,yi=yi-1+1,xi=xi-1+1,则 di+1=di+2(dydx) 若di0,选Si,yi=yi-1,xi=xi-1+1,则 di+1=di+2dy 一般情况见P39 第三章 二维图形生成技术计算机

8、图形学 第3章- 16计算机科学与技术学院 0 1 2 3 4 5 x y 3 2 1 2 )算法实例 利用Bresenham算法绘制P1(0,0)P2(5,3)直线段。 解:按照算法计算出各个参量: x0=0, y0=0, dx=5, dy=3 i x y d 1 0 0 0 2 1 1 -4 3 2 1 2 4 3 2 -2 5 4 2 4 若di0, yi=yi-1+1,xi=xi-1+1,则 di+1=di+2(dydx)=di-4 若di0, yi=yi-1,xi=xi-1+1,则 di+1=di+2dy=di+6 第三章 二维图形生成技术计算机图形学 第3章- 17计算机科学与技术

9、学院 3)算法流程 直线起点赋予动点P(x,y); 求端点坐标差:dx和dy; 求出循环总步数N 起点处的di的值; 循环计算中间插值点坐标: 若当前步数N,程序结束。 否则: 显示当前点P; 若di大于0,y坐标加1; 计算当前的di值; x坐标加1。 第三章 二维图形生成技术计算机图形学 第3章- 18计算机科学与技术学院 二、直线的属性 直线的属性包括线型、线宽和线的颜色等。 1) 线型:线型表示不同的实体形状。 最常用的线型有实线、虚线、点划线、波浪线等。 产生两种方式: 不同线型结构,编制不同程序模块,绘制特定线型。 编制通用程序模块,用文件形式定义线型结构。 2)线宽:用有宽度的线

10、型表示实体表面的形状和位置。 线宽处理方法: 定义基本线宽:通常定义1个像素宽度或绘图笔宽度。 扩充线的宽度:把基本线宽扩充为2倍或4倍等宽度。 第三章 二维图形生成技术计算机图形学 第3章- 19计算机科学与技术学院 3) 线色: 系统颜色,用颜色模型空间定义,如RGB模型等。 调用方法,采用专用函数来设定不同的颜色值。 图形用色,处理两种颜色:背景色和前景色。 背景色:绘制系统背景界面所定义颜色,通常不宜 太亮且易于和其它颜色调和。 前景色:绘制图形所需要各种颜色,由于表达的对象 种类繁多,所以图形颜色域也较宽,一般采用特征码表示 ,但不宜太亮。 第三章 二维图形生成技术计算机图形学 第3

11、章- 20计算机科学与技术学院 内容回顾:内容回顾: 作业:作业: 1.认真阅读课文内容 2.直线的常用生成算法有几种? 3.写出Bresenham画线算法的原理。 4.写出Bresenham画线算法的过程或画出其流程图。 5.直线的属性有哪些? 1直线生成的算法: 逐点比较法、DDA算法、Bresenham算法。 2直线的属性 颜色线宽线型组合 线 的 属 性 直线段的显示 第三章 二维图形生成技术计算机图形学 第3章- 24计算机科学与技术学院 若di0,选Ti, yi=yi-1+1,xi=xi-1+1,则 di+1=di+2(dydx) 若di0,选Si, yi=yi-1,xi=xi-1+1,则 di+1=di+2dy

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号