计算机图形学 - 第三章讲义

合集下载

计算机图形学第3章 基本图形生成算法

计算机图形学第3章 基本图形生成算法
基函数(基本样条) 在局部参数区域分布 (支撑区间),因此 影响范围有限。
例题:有点P0(4,3);P1(6,5);P2(10,
6 );P3(12,4),用以上4点构造2次B样条曲线。
2.1.7 非均匀有理B样条
非均匀有理B样条NURBS(Non Uniform Rational BSpline);
3.2.2
Bresenham画圆法
该算法是最有效的算法之一。
不失一般性,假设圆心(xc,yc) ,圆上的点(x′,y′),则:
x' x xc
y ' y yc
圆心为原点,半径为R的位于第一象限1/8圆弧的画法,即(0, R)~( R , R )。
2 2
yi ), 思想:每一步都选择一个距离理想圆周最近的点P( xi , 使其误差项最小。
画其他曲线。
3.3
自由曲线的生成
正弦函数曲线
指数函数曲线
多项式函数曲线
自 由 曲 线
概率分布曲线及样条函数曲线
3.3.1 曲线的基本理论
基本概念
2.1.4
规则曲线:可用数学方程式表示出来的,如抛物 线等。
自由曲线:很难用一个数学方程式描述的,如高
速公路等。可通过曲线拟合(插值、逼近)的方法来
例题: 利用Bresenham算法生成P (0,0)到Q(6,5)的直 线所经过的像素点。要求先 列出计算式算出各点的坐标 值,然后在方格中标出各点。
(1,1)
3.1.5 双步画线法 原理
模式1:当右像素位于右下角时,中间像素位于底线 模式4:当右边像素位右上角时,中间像素位于中线 模式2和模式3:当右像素位于中线时,中间像素可能位于底线 上,也可能位于中线上,分别对应于模式2和模式3,需进一步 判断。 当0≤k≤1/2时,模式4不可能出现,当1/2≤k≤1时,模式1不 可能出现。

计算机图形学_完整版 ppt课件

计算机图形学_完整版 ppt课件
三维观察设备 虚拟现实系统的输出显示设备 ……
输入设备
键盘、鼠标 按钮盒、旋钮 跟踪球、空间球 操作杆 触觉反馈设备 数据手套、数据衣 数字化仪 扫描仪 触摸板 光笔 ……
硬拷贝设备
打印机 喷墨 激光 ……
绘图仪 台式 大型滚动传送式 ……
图形硬件系统组成模块示意图:
或称图形坐标系、用户坐标系、全局坐标系 如在世界坐标系中进行装配
观察坐标系(viewing coordinate)
对场景进行观察所对应的坐标系 对象经变换到该场景的一个二维投影——投影变换
规范化坐标系(normalized coordinate)
可使图形软件与特定输出设备的坐标范围无关 坐标范围:-1~1,或0 ~ 1 等等
在场景中对物体移动、旋转、缩 放、扭曲等,或转换模型坐标系
3D→2D,并对观察区域进行裁 剪和缩放
一种伪变换,对窗口上的最终输 出进行移动、缩放等
三维几何变换
可用4×4矩阵操作统一表示二维和三维几何变换
缩放、旋转、 对称、错切等
平移
投影
整体缩放
基本变换:平移、旋转、缩放
复合变换:可由平移、旋转、缩放和其他变换的矩阵乘积 (合并)形成。
图元的绘制、显示过程
顶点 法向量、颜色、纹理… 像素
图元操作、像素操作 光栅化(扫描转换)
像素信息 帧缓存 显示器
调用底层函数,如 setPixel (x,y);将当 前像素颜色设定值存 入帧缓存的整数坐标 位置(x,y)处。
图元描述与操作
几何图元由一组顶点(Vertex)描述 这一组顶点可以是一个或是多个。每个顶点信息二维或 三维,使用 2~4 个坐标。顶点信息由位置坐标、颜色 值、法向量、纹理坐标等组成。

第3章 图形的基本算法

第3章 图形的基本算法

dy s t 2 ( x i 1 1) 2 y i 1 1 dx
dx(s t ) 2( xi 1 dy y i 1 dx) 2dy dx
因dx>0,所以我们可以以dx(s-t) 的正负作 为选择点的依据。若令其为di,则
d i 2( xi 1 dy y i 1 dx) 2dy dx
若s<t,则Si较靠近理论直线,应选Si,y 不变; 若s>t,则Ti较靠近理论直线,应选Ti,y 增1。 现在需要一个判别式,来判断每一步是选 Ti还是选Si。下面导出Bresenham 算法的 判别式。
判别式的导出
设一直线段由(x1,y1)至(x2,y2),(其中 y2>y1,x2>x1)则直线方程可表示为
怎样选择直线的最佳光栅位置(象素点), 是Bresenham 算法追求的目标。为此,算 法根据直线的斜率在计长方向(x或y)上, 每次都递增一个单位步长即一个象素单位, 另一个方向的增量为0或1。这种算法的巧 妙之处是只需检查判别式的符号即可,而 且计算量很小,只进行整型数计算,不必 做舍入操作。
直线的近似表示
第三章 图形的基本算法
本章内容
3.1 图形的表示 3.2 图形模式与坐标系 3.3 直线的扫描转换 3.4 圆的生成算法 3.5 多边形的填充
3.1 图形的表示
计算机图形学是一门复杂而又多样化的技 术。要想了解这项技术必须把它分成几个 易于操作的部分。图形是计算机图形学的 关键概念,处理图形我们应考虑以下问题: 1. 如何在计算机中表示图形? 2. 如何准备图形的数据? 3. 如何显示准备好的图形? 4. 如何实现人与图形的交互?
这里,图形是一个广义的概念,凡是可 以在图形设备上输出的点、线、文本等 的集合都可以称为是图形。

计算机图形学讲稿

计算机图形学讲稿
计算机动画的应用领域非常广,最典型的有: 1、计算机模拟飞行 2、动画片 3、电视广告
第二章 计算机图形系统及其设备
本章内容:介绍计算机图形系统的组成以及主要的图形外部设备。 2.1 计算机图形显示原理
阴极射线管(CRT)显示器的特点:亮度高,对比度好,分辨率高和色彩
鲜艳并丰富。缺点是体积大、厚与笨重。 液晶显示器的特点:器件薄,面积可大可小,重量轻,特别适合便携式计 算机使用,缺点是分辨率相对较低,色彩不够鲜艳,且价格偏高。 2.1.1 CRT显示器
SVGA 1024×768 PGA 1024×768ຫໍສະໝຸດ AVGA 1280×1024
PC显示适配器的发展 (2)显示适配器的结构
ROM BIOS
主板
显示控制器
显示器
显示存储器
•显示存储器 存储显示图像的点阵数据。每个象点对应1-3个字节(由颜色深度决定),屏 幕上有多少个象点(由分辨率决定)就要有多少个这样的字节,从而可以估 算出应有的显示存储器的基本容量。 •显示控制器 是显示适配器的心脏。其功能包括: ①管理与系统总线的接口 ②读取显示存储器中的图像点阵,通过转换后送至显示器 ③调色板功能,增加同屏显示颜色数目 ④先进的显示控制器具有图形加速功能,包括位和块传送、画线、填充和颜 色扩展。 •ROMBIOS 含有少量的固化软件,用于支持显示控制器建立所要求的显示环境。主要用 于DOS操作系统。在Windows 95或者Windows NT的环境下,它的大部分功能是 不被使用的。
1.3 场景绘制
•取景变换
将几何对象的三维坐标转换到屏幕上的象素位置,需要进行一系列的坐标变 换,这些变化统称为取景变换。
•删除隐藏面
背向视点的面被正面遮挡,需要及早删除。目的是为了减少图形绘制的工作 量,提高场景动态显示的实时性。

计算机图形学_第三章-6(求交分类)

计算机图形学_第三章-6(求交分类)

3.3.3
基本的求交算法
• 3.3.3.1 线与线的求交计算
– 二次曲线与二次曲线的求交。
• 求交策略是将坐标系变换到该圆锥曲线的局部坐标 系下,一个圆锥曲线用隐式方程的形式表示,而另 一圆锥曲线采用参数方程的形式,代入即可获得有 关参数的四次方程,,因而可计算出二者的交点。
– 二次曲线与NURBS曲线求交
• 1.初始化。依据离散精度,将NURBS曲线离散成 二叉树的形式
清华大学计算机科学与技术系 计算机图形学基础
• 2.求初始交点。遍历该二叉树和四叉树,如果 曲线二叉树叶子结点的包围盒与曲面四叉树的叶 子结点的包围盒有交点,则将子曲线段中点的参 数值、子曲面片的中心点的坐标值与参数值作为 初始交点,记录到初始交点点列中去。 • 3.对初始交点进行迭代,形成精确交点。可用 牛顿迭代法求解精确交点。设NURBS曲线为C(t), NURBS曲面为S(u,v),则在交点处应满足: C(t)-S(u,v)=0 设 f(u,v,t)=C(t)-S(u,v)
– 代数法的弱点是对误差很敏感
• 这是因为代数法经常需要判别某些量是否大于零、 等于零或小于零,而在计算机中的浮点数近似表 示的误差常常会使这种判别出现错误。
清华大学计算机科学与技术系
计算机图形学基础
• 2.几何方法
– 利用几何的方法,对参与求交的曲面的形状 大小、相互位置以及方向等进行计算和判断, 识别出交线的形状和类型,从而可精确求出 交线。 – 几何求交适应性不是很广,一般仅用于平面 以及二次曲面等简单曲面的求交
清华大学计算机科学与技术系 计算机图形学基础
• 4.跟踪方法
– 通过先求出初始交点,然后从已知的初始交 点出发,相继跟踪计算出下一交点,从而求 出整条交线的方法。 – 跟踪法的本质是构造交线满足的微分方程组, 先求出满足方程组的某个某个初值解,通过 数值求解微分方程组的方法来计算整个交线。 – 跟踪方法在计算相继交点的时候,利用了曲 面的局部微分性质,一般采用数值迭代的方 法求解,使得计算效率较高。

计算机图形学(1-3章讲义汇总整理)

计算机图形学(1-3章讲义汇总整理)
图形显示系统
图形显示系统是计算机图形处理系统中极其重要的部分。图形显示系统负责实时显示图 形处理的中间或最终结果,为用户提供可视的工作界面等。PC 机的图形显示系统逻辑上是 由监视器(Monitor,又称显示器)和显示卡(又称显示适配器)两大部分组成。目前显示器中主 要包括阴极射线管(CRT),液晶显示器(LCD)和等离子显示器(PDP)。
图形输入板与坐标数字化仪
图形输入板与坐标数字化仪两者的工作原理与功能完全相同,它们都是将图形转变成计 算机能接收的数字量的专用设备。它们按工作原理的不同分为电磁式、超声波式、电位梯度 式、机械式等多种。数字化仪往往具在定位、拾取、选择的功能,其主要性能指标有分辨率、 精度和幅面。许多数字化仪提供多种压感。现在非常流行的汉字手写系统就是一种数字化仪。
光笔
光笔是一种手持检测光的装置,它直接在屏幕上操作,拾取位置。光笔原理简单,操作 直观,但荧光屏的分辨率、电子束扫描速度、荧光粉的特性、笔尖与荧光粉的距离和角度等 诸多因素都会影响光笔的分辨率与灵敏度。另外,光笔对于荧光屏上不发光的区域无法检测, 也不能用于液晶、等离子体等类型的显示器。
触摸屏
触摸屏利用手指等对屏幕的触摸位置进行定位。按工作原理可以分为:电阻式、电容式、 红外线式和声波表面波式。
计算机图形学的研究内容 计算机图形学的定义
计算机图形学是利用计算机来建立、处理、传输和存储从某个客观对象抽象得到的几何 和物理模型,并根据模型产生该对象图形输出的有关理论、方法和技术。1982 年,国际标 准化组织 ISO 将计算机图形学定义为:研究用计算机进行数据和图形之间相互转换的方法和 技术。
CRT 显示器
CRT 显示器由于分辨率和可靠性高、速度快、成本低等优点,多年来一直是图形显示系 统中最重要的设备。CRT 显示器的工作方式分为随机扫描和光栅扫描两种方式,目前以光栅 扫描方式为主,这是因为,虽然随机扫描图形显示器具有画线速度快、分辨率高等优点,但 难以生成具有多种灰度和颜色且色调能连续变化的图形,而光栅扫描图形显示器却可以生成 有高度真实感的图形,因而已成为 PC 机和 Macintosh 计算机以及各种工作站所使用的最重 要的信息显示设备。

计算机图形学-第三章-变换及裁剪

计算机图形学-第三章-变换及裁剪
xh hx, yh hy, h 0
(x,y)点对应的齐次坐标为三维空间的一条 直线
xh hx
yh
hy
zh h
7
齐次坐标的作用
1. 将各种变换用阶数统一的矩阵来表示。提供了用矩阵 运算把二维、三维甚至高维空间上的一个点从一个坐 标系变换到另一坐标系的有效方法。
2. 便于表示无穷远点。
例如:(x h, y h, h),令h等于0
25
3 规格化设备坐标系 用于用户的图形是定义在用户坐标系里,
而图形的输出定义在设备坐标系里,它依赖于 基体的图形设备。由于不同的图形设备有不同 的设备坐标系,且不同设备间坐标范围也不尽 相同, 例如:分辨率为1024*768的显示器其屏幕坐标的 范围:x方向为0~1023,y方向为0~767,分辨 率为640*480的显示器,其屏幕坐标范围为:x 方向0~639,y方向0~479
y 1),则
1 0 0
P'x' y' 1 x y 1 0 1 0 x
Tx1
Ty1
1
y 1Tt1
经第二次平移变换后的坐标为P*(x* y* 1)
P * x *
y * 1 x'
y'
1
1 0
0 0 1 0
Tx
2
Ty 2
1
1 0 0 1 0 0
x y 1 0 1 0 0 1 0 x y 1 Tt1Tt2
44
关于透视投影
一点透视投影
两点透视投影
三点透视投影
45
内容
二维变换 三维变换 裁剪
二维线裁剪 二维多边形裁剪 文本裁剪 三维裁剪 关于三维变换与裁剪
46
三维变换流程图

计算机图形学第3章

计算机图形学第3章
第3章 基本图形 生成算法
第3章 基本图形生成算法
3.1 生成直线的常用算法
均假定所画直线的斜率k∈[0,1]。
3.1.1 DDA画线算法
DDA(Digital Differential Analyzer)画线 算法也称数值微分法,是一种增量算法。它的算 法实质是用数值方法解微分方程,通过同时对x和 y各增加一个小增量,计算下一步的x、y值。
边界表示的四连通区域种子填充算法 内点表示的四连通区域种子填充算法 边界表示的八连通区域种子填充算法 内点表示的八连通区域种子填充算法
第3章 基本图形生成算法
1.边界表示的四连通区域种子填充算法
基本思想:从多边形内部任一点(像素)出发,依“左 上右下”顺序判断相邻像素,若其不是边界像素且没有被填 充过,对其填充,并重复上述过程,直到所有像素填充完毕。 可以使用栈结构来实现该算法,算法的执行步骤如下: 种子像素入栈,当栈非空时,重复执行如下三步操作: (1)栈顶像素出栈; (2)将出栈像素置成多边形填充的颜色; (3)按左、上、右、下的顺序检查与出栈像素相邻的 四个像素,若其中某个像素不在边界上且未置成多边形色, 则把该像素入栈。
过各行各列像素中心构造一组虚拟网格线,按直 线从起点到终点的顺序计算直线与各垂直网格线的交 点,然后确定该列像素中与此交点最近的像素。 由图3-5不难看出:若s<t, 则Si比较靠近理想直线,应 选Si;若s≥t,则Ti比较靠近 理想直线,应选Ti。
第3章 基本图形生成算法
令dx=x2-x1,dy=y2-y1 递推公式 :di 1 di 2dy 2dx( yi yi 1 ) di的初值: d1 2dy dx 当di≥0时,选Ti,
第3章 基本图形生成算法

计算机图形学第3章二维基本图(4)

计算机图形学第3章二维基本图(4)

二、扫描线种子填充算法实现
借助于堆栈,上述算法实现步骤如下:
1、初始化堆栈。 2、种子压入堆栈。 3、while(堆栈非空) { (1)从堆栈弹出种子象素。 (2)如果种子象素尚未填充,则:
a.求出种子区段:xleft、xright; b.填充整个区段。 c.检查相邻的上扫描线的xleft≤x≤xright区间内, 是否存在需要填充的新区段,如果存在的话, 则把每个新区段在xleft≤x≤xright范围内的最 右边的象素,作为新的种子象素依次压入堆栈。 d.检查相邻的下扫描线的xleft≤x≤xright区间内, 是否存在需要填充的新区段,如果存在的话, 则把每个新区段在 xleft≤x≤xright范围内的 最右边的象素,作为新的种子象素依次压入堆 栈。 }
扫描线种子填充算法步骤 (1)种子象素入栈。 (2)栈非空时象素出栈,否则结束。 (3)对出栈象素及左、右两边象素填充,直到遇边界XL、XR。 (4)在(XL ,XR) 内查相临的上、下两条扫描线是否为边界或已填充, 如不是,则将每区间的最右边的象素入栈。回到(2)。
练习: 用扫描线种子填充算法,写出图中顺序进栈的种子坐标及 所需最大栈空间
2、国标码 我国除了采用ASCII码外,还制定了汉字编 码的国家标准字符集:中华人民共和国国家标准 信息交换编码,代号为“GB2312-80”。该字符 集共收录常用汉字6763个,图形符号682个。 它规定所有汉字和图形符号组成一个94×94 的矩阵,在此方阵中,每一行称为“区”,用区 码来标识;每一列称为“位”,用位码来标识, 一个符号由一个区码和一个位码共同标识。 区码和位码分别需要7个二进制位,同样, 为了方便,各采用一个字节表示。所以在计算机 中,汉字(符号)国标码占用两个字节。

计算机图形学完整课件

计算机图形学完整课件
x y =(a·x1+b·y1+c)+a+0.5·b
=F(x1,y1)+a+10.5·b 1
x y 但由于(x1,y1)在直线上,故F(x1,y1)=0。
因此d的初始值1 为d0=a+0.5·b 1
由于我们使用的只是d的符号,而且d的增量都是整数,只是其初 始值包含小数。因此,我们可以用2d代替d,来摆脱小数,写出仅包 含整数运算的算法:
当d<0时,M在直线下方(即在Q的下 方),故应取右上方的p2作为下一个象 素。
当d>0,则应取正右方的p1。
当d=0是,二者一样合适,可以随便取一 个。
我们约定取正右方的p1。 对 每一个象素计算判别式d,根据它 的符号确定下一象素。由于d是xp 和yp的线性函数,可采用增量计算 ,以便提高运算效率。
对于直线上的点F(x,y)=0; 对于直线上方的点F(x,y)>0; 对于直线下方的点F(x,y)<0。 因此,欲判前述Q在M的上方还是下方,只要把M代入F(x,y), 并判断它的符号。构造判别式
d=F(M)=F( , )=a( )+b( )+c
xp 1 yp 0.5
xp 1
yp 0.5
必须寻找只需做一些简单的 整数运算和判别运算的方 法即可确定圆上的象素点的算法。
考虑到圆的对称性可 以减少计算量。只要 能生成8分圆,那么圆 的其它部分可以通过 一系列的简单映射变 换得到。如图所示, 假设已知一个圆心在 原点的圆上一点(x,y),
(x, y)
( y, x)
(x, y)
(y, x)
( y, x)
( x, y)
( y,x)
( x, y)

计算机图形学第三章

计算机图形学第三章

void Bresenhamline (int x0,int y0,int x1, int y1,int color) { int x, y, dx, dy; float k, e; dx = x1-x0, dy = y1- y0, k=dy/dx; e=-0.5, x=x0, y=y0; for (i=0; idx; i++) { drawpixel (x, y, color); x=x+1,e=e+k; if (e0) { y++, e=e-1;} } }

设备级显示算法,考虑运算方式、时间、 次数等细节。
扫描转换直线段
直线的绘制要求:
1.直线要直; 2.直线上的点要准确,即无不定向性和断裂情况; 3.直线的亮度、色泽要均匀; 4.画线的速度要快; 5.要求不同直线可具有不同的色泽、亮度、线型等。
扫描转换直线段
直线基础
我们知道:直线的笛卡儿斜率截距方程为:y=m•x+b
过各行各列象素中心构造一组虚拟网格线。按直线 从起点到终点的顺序计算直线与各垂直网格线的交 点,然后根据误差项的符号确定该列象素中与此交 点最近的象素。
d d d
d
yi 1 yi k ( xi 1 xi ) yi k 设直线方程为: ,其中k=dy/dx。 因为直线的起始点在象素中心,所以误差 项d的初值d0=0。 X下标每增加1,d的值相应递增直线的斜率值k,即d=d+k。 一旦d≥1,就把它减去1,这样保证d在0、1之间。 当d≥0.5时,最接近于当前象素的右上方象素 xi 1 , yi 1 ( ) xi 1 , yi 而当d<0.5时,更接近于右方象素( )。 为方便计算,令e=d-0.5, e的初值为-0.5,增量为k。 当e≥0时,取当前象素(xi,yi)的右上方象素 ( ); xi 1 , yi 1 而当e<0时,更接近于右方象素( xi 1 , yi )。

05 C3 计算机图形学基础.ppt共32页PPT资料

05 C3 计算机图形学基础.ppt共32页PPT资料
B-spline曲线可克服上述问题
控制点移动时只会影响部分的曲线.
其次数与控制点数目无关,可由使用者任意选择,B-spline比 Bezier有更多的弹性
2019/10/22
上理机械 吴恩启
15
B样条曲线
数学表达:
可进行局部修改,曲线更逼近特征多边形,曲线的阶次和特 征多边形的顶点无关。
5.Transform of 3D graphics
6.Projection transform of 3D graphics
7.Free form curve and surface
2019/10/22
上理机械 吴恩启
2
3.7 free-form curve and surface
自由曲线和自由曲面:
上理机械 吴恩启
10
Hermite曲线
Hermite曲线又称为Ferguson曲线 在早期的曲面设计中得到了应用。但它有许多缺点:
设计条件与曲线始末两点的切矢大小和方向有关,设计 时不易控制;
如果定义高次 Ferguson曲线,需要用到曲线始末两点的 高阶导数。
为此人们在Ferguson数学模型上作了一些改进,得到另外 形式的曲线。 Bezier曲线就是其中一种
2019/10/22
上理机械 吴恩启
18
3.7 free-form curve and surface
曲线生成与编辑-以sw为例
草图中的样条曲线(SPLINE) 投影曲线、分割曲线、螺旋线与涡状线、组合曲线
曲面生成和编辑-以sw为例
拉伸、旋转、扫描、放样、延展、(网格、点云拟合) 圆角、等距、延伸、剪裁、填充、缝合、移动/复制/删
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
思想 算法公式推导 算法描述 举例
h
27
Bresenham 算法思想
思想:只用整数计算寻找最接近实际直线的整数坐标
y=mx+
13
b
12
11
10
10 11 12 13 14 15 16
从(10,10)像素开始,绘制h 0<m<1直线的屏幕网格28
Bresenham 算法思想
y
yk+h
8
3.2 画线算法
问题 画线算法
➢ DDA算法 ➢ Bresenham算法
h
9
3.2 画线算法
问题 已知直线的两个端点P1(x1, y1),P2(x2, y2) 求直线的中间各点
h
10
3.2 画线算法
已知:P1(x1,y1),P2(x2,y2) 直线的笛卡尔斜率截距方程
y += yIncrement;
setpixel(Round(x), Round(y), RED);
}
}
h
25
DDA算法 评价
比直接使用公式 y=m*x+b快 ,没有 用乘法
运算仍然耗时
➢ 设置增量的除法运算 ➢ 取整操作 ➢ 浮点
较长线段的误差积累
h
26
2. Bresenham算法
由Bresenham提出的一种精确而有效的光 栅线段生成算法,可用于直线、圆(圆弧)和 其它曲线的生成
像素点
(20, 10)
(20, 10)
0
(21,10.8) (21,11)
1
(22,11.6) (22,12)
2
(23,12.4) (23,12)
3
(24,13.2) (24,13)
4
(25, 14)
(25, 14)
5
(26,14.8) (26,15)
6
(27,15.6) (27,16)
7
(28,16.4) (28,16)
y
|m| <1
y2
y1
x1
h
x2 x
16
DDA算法公式
直线斜率满足|m|<1时,取x方向为 单位步长
递推公式为: xk+1=xk1 yk+1=ykm
h
17
求直线中间各个像素点-沿y轴取样
y |m|>1
y2
y1
h
18
x1
x2 x
DDA算法公式
直线斜率满足|m|>1时,取y 方向为单位步长
递推公式为: yk+1=yk1 xk+1=xk1/m
h
5
直线的绘制
光栅扫描系统 ➢ 屏幕位置以整数值表示; ➢ 以线路径上的离散点来显示线段 ➢ 显示的线段具有阶梯效果
h
6
直线的绘制
计算机绘制的直线是由一系列与该 直线最近的像素绘制而成
理论直线与计算机绘制的直线之间 总有一定的偏差
只能尽量减少偏差
偏差取决于屏幕光栅(分辨率)和光点 的运动方向
y = m*x + b
m = (y2-y1)/(x2-x1)
b = y1-m*x1
y= m* x
x = y/m h
11
3.2 画线算法
对于模拟显示设备,方程y、 x是决定偏 转电压变化的基础。
➢ 当|m|<1, △x 可以设置为正比于一水平偏转 电压, △y则可以根据公式计算。
➢ 当|m|>1, △y 可以设置为正比于一垂直偏转 电压, △x则可以根据公式计算。
yk
d1
y=mx+b
xk
xk+1
h
x
29
Bresenham 算法公式推导
假定:0<m<1, 已知(xk, yk),求下一点(xk+1, yk+1)
(xk+1, yk+1)的两种可能:
(xk+1, yk) 和 (xk+1, yk+1),其中xk+1 = xk+1
h
30
Bresenham 算法公式推导
h
20
DDA算法 举例
已知直线的两个端点P1(20,10),P2(30,18), 用DDA算法使该线段光栅化。
解:dx = 10; dy = 8;
循环次数:steps = 10;
沿X轴单位取样:x_in= 1 Y按斜率变化: y_in = 0.8
h
21
DDA算法 举例
step k (x,y)
h
12
直线绘制要求
直 端点准确 亮度均匀 速度 属性
h
13
求直线中间的各个像素点
y y2
y1
x1
h
x2 x
14
1. DDA算法
数字微分分析仪 思想:在一个坐标轴上以单位间隔对线
段取样,则另一个坐标轴以常数m或 1/m变化,从而获得线段上各像素点
h
15
直线中间的各个像素点-沿x轴取样
推导:设两点与理想直线距离分别为d1、d2
d1=y - yk=m*xk+1+b - yk =m*(xk+1)+b- yk d2= yk+1 - y=yk+1-m*(xk+1)-b d1 - d2=2m(xk+1)-2yk+2b-1 代入m= y / x,
h
19
DDA算法
画直线的DDA算法可表示为: 若|m|≤1:xk+1=xk+1,yk+1=yk+m
or : xk+1=xk-1,yk+1=yk-m
;xa<xb ;xa>xb
若|m|≥1:yk+1=yk+1, xk+1=xk+1/m ;ya<yb or :yk+1=yk-1, xk+1=xk-1/m ; ya>yb
8
(29,17.2) (29,17)
h
22
9
(30, 18)
(30, 18)
DDA算法 举例
18 17
16
15 14
13 12 11 10
20 21 22 23 24 2h 5 26 27 28 29 30
23
DDA算法的C实现
#define Round(a) ((int)(a + 0.5))
void lineDDA(int xa, int ya, int xb, int yb)
{
int dx = xb - xa, dy = yb - ya, steps, k;
float xIncrement, yIncrement, x=xa, y=ya;
if (abs(dx) > abs(dy))
steps = abs(dx);
第三章 输出图元
h
1
第三章 输出图元
点绘制 画线算法 圆生成算法 多边形
h
2
图元的概念
最基本的图形元素/图形输出原语
类型
图形一级元素:点、线
图形二级元素:弧、圆、多边形、曲 线、字符
其他:...
h
3
3.1 点和直线
点 直线
h
4
点的绘制
光栅扫描系统:帧缓冲器对应位置设为1 其他元素的绘制都在以点为基础产生。
else
steps = abs(hdy);
24
xIncrement = dx/(float) steps;
yIncrement = dy/(float) steps;
setpixel(Round(x), Round(y), RED);
for(k=0;k<steps;k++)
{
x += xIncrement;
相关文档
最新文档