图形学基本概念及DDA算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
17
数值微分(DDA)法
直线的公式为:yi k xi b 当 k 1时,xi 1 xi 1; k xi b k yi k

则 yi 1 k xi 1 b k ( xi 1) b
即:当x每递增1,y递增k(即直线斜率);
18
特别提出:增量算法

图形硬件、图形标准、图形交互技术、光栅图 形生成算法、曲线曲面造型、实体造型、真实 感图形计算与显示算法,以及科学计算可视化、 计算机动画、自然景物仿真、虚拟现实等。
10
Βιβλιοθήκη Baidu
计算机图形学先修课程
计算机图形学
图学理论
应用数学
计算机科学
11
基本图形的生成

基本图形主要指直线或圆弧。在图形输出设 备上绘制基本图形,称为基本图形生成。
点阵表示 枚举出图形中所有的点(强调图形由点构成) 简称为图像(数字图像) 参数表示(矢量图形) 由图形的形状参数(方程或分析表达式的系数, 线段的端点坐标等)+属性参数(颜色、线型等)来 表示图形 简称为图形
5
点阵图和矢量图
6
图形的显示

主要显示在两类输出设备上:

显示器:画点设备 绘图仪:画线设备


增量算法:在一个迭代算法中,如果每一步 的x、y值是用前一步的值加上一个增量来获 得,则称为增量算法。 DDA算法就是一个增量算法。
19
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++) putpixel(x,(int)(y+0.5), color); y=y+k;
20
数值微分(DDA)法
当 k 1时,yi 1 yi 1; ( yi b ) k 由直线的公式yi k xi b可知,xi 则 xi 1 ( yi 1 b) ( yi b ) k k k ( yi 1 b ) k k
1
xi 1

无论是画点设备或画线设备,其输出的图 线都是不连续的,而是由离散的点或是折 线近似地组成。输出图线的质量决定于两 个因素:

图形输出设备的精度(分辨率或步距); 离散点(或走步)组合方案的科学性和先进 性。
7
光栅设备和光栅图形


画点设备可以看做一组栅格的交叉点,因此 也被称为光栅设备。栅格中一组水平和垂直 的线被称为扫描线。 光栅显示器上显示的图形,称之为光栅图形。

图形一般用某种连续函数来表示。计算机绘图 的实质是把图形从参数表示形式变换成点阵表 示形式。即确定最佳逼近图形的象素集合,并 用指定的颜色和灰度设置象素的过程。。

在光栅设备上基本图形生成也被称为基本图 形的扫描转换或光栅化。
12
直线的扫描转换

直线的扫描转换的任务

确定最佳逼近于该直线的一组象素
16
这样的代码??
Void MyLine(int x0,int y0,int x1,int y1,int color) dx = x1-x0; dy=y1-y0; k=dy/dx ; b=? y=y0; for (x=x0; x<=x1; x++) putpixel(x,(int)(y+0.5), color); y=k*x+b;
第一讲 图形学基本概念及DDA算法
2013-7-12
计算机图形学
1
学习目标


掌握计算机图形学的相关概念 了解计算机图形学的研究内容 掌握DDA画线算法
2
计算机图形学


计算机图形学是研究怎样用计算机生成、处 理和显示图形的一门学科。 ISO定义:计算机图形学是研究通过计算机 将数据转换为图形,并在专用设备上显示的 原理、方法和技术的学科。

已知过端点P0 (x0, y0), P1(x1, y1)的直线段方程为: y=kx+b 其中 k
y1 y0 x1 x0

当k<=1时:
令x x0 x1 ; x x stepx (通常取1 ) y k x b (需要四舍五入)
为什么取1?

这种方法直观,但效率太低,因为每一步需要一次浮点乘 法和一次舍入运算。 计算机怎样进 行四舍五入?

计算机绘图时,通过使交叉点每个点的亮度不 同,从而显示出各种光栅图形。
8
三维图形的显示
三维图形显示方式主要分为两类:
基于线条信息表示:工程图、等高线地图、曲面线框 图等。 基于颜色、纹理、光照信息: 也叫明暗图(Shading) 或真实感图形。
图形的表示
9
计算机图形学研究内容

如何在计算机中表示图形、以及利用计算机 进行图形的计算、处理和显示的相关原理与 算法,构成了计算机图形学的主要研究内容。
3
图形以及构成图形的要素


图形:计算机图形学的研究对象(广义的图形) 能在人的视觉系统中产生视觉印象的客观对 象 包括自然景物、拍摄到的图片、用数学方法 描述的图形等等 构成图形的要素

几何要素:刻画对象的轮廓、形状等 非几何要素:刻画对象的颜色、纹理等
4
计算机中存储图形的方法



即:当y每递增1,x递增1/k(即斜率的倒数);
21
数值微分(DDA)法示例

例:画直线段P0(0,0)--P1(5,2) K=2/5=0.4
y 0 0.4 0.8 1.2 1.6 2.0 (int)( y+0.5) 3 0 2 0 1 1 1 2 2
Line: P0(0, 0)-- P1(5, 2)
数值微分(DDA)法分析

优点:

成功地避免了浮点乘法运算 仍然存在浮点运算。 每一步都必须进行取整运算,不利于硬件实现 。

缺点:

24
x 0 1 2 3 4 5
0
1
2
3
4
5
22
当斜率的绝对值大于1

例:画直线段P0(0,0)--P1(2,5) K=5/2=2.5 ->1/k=0.4
x 0 0.4 0.8 1.2 1.6 2.0 (int)(x+0.5) 0 0 1 1 2 2
每次y增加一,x增加1/k
23
y 0 1 2 3 4 5

按扫描线顺序,对这些象素进行写操作 直线的扫描转换的方法


数值微分(DDA)算法 中点画线法 Bresenham画线算法
13
直线要求

通常假定:

直线的起点为(x0,y0 ) 直线的终点为(x1,y1 ) 且x0,y0, x1,y1都为整数。
14
斜率不同的直线
15
直线扫描转换的简单分析
相关文档
最新文档