图形学第3章_1

合集下载

计算机图形学基础教程

计算机图形学基础教程

计算机图形学基础教程第一章:引言计算机图形学是研究计算机处理和生成图像的一门学科,它涵盖了从数学、计算机科学到视觉感知等多个领域。

本教程将介绍计算机图形学的基本原理和技术,并通过实例演示来帮助读者理解和应用这些知识。

第二章:矢量图形矢量图形是计算机图形学中重要的概念之一。

本章将介绍矢量图形的定义、特点以及其在计算机图形学中的应用。

我们将学习如何使用数学表示矢量图形,如何进行矢量图形的变换和组合等。

第三章:三维图形的表示与变换三维图形的表示与变换是计算机图形学中的核心问题之一。

本章将介绍三维图形的表示方法,包括顶点表示和多边形表示,并讨论如何进行三维图形的变换,如旋转、平移、缩放等。

第四章:光照模型与渲染技术光照模型和渲染技术是实现真实感图形的重要手段。

本章将介绍光照模型的基本原理,如漫反射、镜面反射等,并讨论如何利用光照模型和渲染技术来实现真实感图形的效果。

第五章:图形管线与渲染流程图形管线是计算机图形学中的一个重要概念,它描述了图形数据如何从输入到输出的过程。

本章将介绍图形管线的基本原理和流程,并讨论图形数据的处理过程,如顶点处理、光栅化、片元处理等。

第六章:纹理映射与贴图技术纹理映射和贴图技术是计算机图形学中常用的技术之一。

本章将介绍纹理映射的原理和方法,包括纹理坐标的计算、纹理过滤、纹理混合等,并讨论如何利用纹理映射和贴图技术来增强图形的真实感。

第七章:几何建模与曲面设计几何建模和曲面设计是计算机图形学中用于创建和编辑三维模型的技术。

本章将介绍几何建模的基本原理和方法,包括点、线、面的描述,以及曲线和曲面的表示与构造等。

第八章:动画与模拟动画和模拟是计算机图形学中用于呈现动态场景的重要手段。

本章将介绍动画和模拟的基本原理和技术,包括关键帧动画、插值动画、物理模拟等,并讨论如何利用动画和模拟来实现逼真的动态效果。

第九章:图形学应用与未来发展计算机图形学的应用广泛,涵盖了游戏、电影、虚拟现实、计算机辅助设计等多个领域。

第三章 二维图形基础

第三章 二维图形基础

while(k<=length) {
SetPixel(hdc,x,y,RGB(0,0,0)); x=x+deltx; y=y+delty; k=k+1; Sleep(50); } }
2018/5/11
坚持就是胜利
3 Bresenham直线生成算法
Bresenham直线生成算法是由Bresenham提出的一种精确而有效的 光栅线段生成算法,算法的目标是选择表示直线的最佳光栅位置。 为此,算法根据直线的斜率确定选择变量在X方向上或在Y方向上 每次递增一个单位,另一变量的增量为0或1,它取决于实际直线 与最近网格点位置的距离,这一距离称为误差。算法的构思巧妙, 使得每次只需检查误差项的符号即可确定所选象素。
2018/5/11
坚持就是胜利
3.2.1 圆的参数方程生成算法
圆是图形中经常使用的元素,圆被定义为所有离一中心位置 (xc,yc)距离为给定值R的点集,其函数方程为: (x﹣xc)2﹢(y﹣yc)2﹦R2 利用这个方程,我们可以沿X轴从xc﹣R 到xc﹢R以单位步长计算对 应的y值来得到圆周上每点的位置, 但这并非是生成圆的好方法。
2018/5/11
坚持就是胜利
直线的点斜式方程
y﹦m· x﹢b 其中,m表示直线的斜率,b是y轴截距。给定线段的两个端点 (x1,y1)和(x2,y2),可以计算斜率m和截距b: m﹦(y2﹣y1)/(x2﹣x1) b﹦y1﹣m· x1 对任何沿直线给定的x的增量△x,对应的y增量△y: △y﹦m· △x 同样,对应于y的增量△y,x的增量△x为: △x﹦(1/m)△y
2018/5/11
对于斜率值大于1的 线段,只要交换x和 y之间的规则,即沿 Y方向以单位步长增 加并计算最接近线 段路径的x连续值。 考虑到XY平面各种 八分和四分区域间 的对称性, Bresenham算法对任 意斜率的线段具有 通用性。

计算机图形学_完整版 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. 如何实现人与图形的交互?
这里,图形是一个广义的概念,凡是可 以在图形设备上输出的点、线、文本等 的集合都可以称为是图形。

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

计算机图形学第3章-基本光栅图形生成算法
• 用绘图软件包 • OpenGL就是一个典型的、已经被接受的国际工业标 准的图形软件包。 • Java3D
• 用操作系统的绘图功能 • 如Windows中Win32API中就提供了基本的绘图功能
• 在数学上,理想的直线是一条由无穷多个无限小的连续的 点组成。
• 在光栅显示平面上,我们只能用二维光栅格网上尽可能靠 近这条直线的象素点的集合来表示它。每个象素具有一定 的尺寸,是显示平面上可被访问的最小单位,它的坐标x 和y只能是整数,也就是说相邻象素的坐标值是阶跃的而不 是连续的。
������������ − ������������ = 20
第二步:在x轴方向上每次的变化量为∆������ 变化量为∆������ = ������������−������������ = 0.65
=
������������−������������ ������
=
−1,则y轴方向的
������
• DDA算法描述
• 设(xs,ys)和(xe,ye)分别为直线的起点坐标和终点坐标,则:
直线的斜率
=
∆������ ∆������
=
������������ ������������
− −
������������ ������������
• 可通过计算由x方向的增量 ∆������ 引起y的改变来生成直线。
由������������+1 = ������������ + ∆������,得到:
������������+1
=
������������
+
������ ������
×
∆������
=
������������

《地理空间图形学》第三章笔记

《地理空间图形学》第三章笔记

1、试描述地理空间实体的分类?答:➢现实存在且人眼可见的(建筑物、河流、道路灯)、现实存在但人眼不可见的(境界、航线、等气压线等);➢按照要素的地位作用及相关领域和应用范围等的差别:基础地理要素、专题地理要素:·基础地理要素:(底图要素)指与人们生产生活密切相关的地理空间环境所包括的基本的自然和人文地理要素;——地形图·专题地理要素:指以某种应用需要作为专题选择一种或相关的几种地理要素作为重点进行突出和详尽地表达,以满足各种专门用途的要求。

包括八大类:测量控制点、水系、居民地及设施、交通、管线、境界及政区、地貌、植被、土质。

——专题图专题地理要素信息:自然条件、自然资源、基础设施、社会经济、生态环境。

➢按照地理信息应用服务:道路与渡口、行政区划、命名区域、土地覆盖与土地利用、结构设施、铁路、水系、道路附属设施、服务、公共交通、链要素、通用要素;➢按照地理实体对象的空间定位分布特征或几何信息的空间维数:点、线、面、体四类:·点实体:零维(0D)地理实体对象、点状地理要素,简称点要素或点目标、定点目标;·线实体:一维(1D)地理实体对象、线状地理要素,简称线要素或线目标、定线目标;·面实体:二维(2D)地理实体对象、面状地理要素,简称面要素或面目标、定面目标;·体实体:三维(3D)地理实体对象、体状地理要素,简称体要素或体目标。

➢按照地理实体对象的组合关系特征:简单地理实体对象(目标)、复杂地理实体对象(目标);➢按照地理实体对象的运动变化特征:静态目标、动态目标。

2、举例谈谈地理空间图形是如何分类的?为什么?有何特点?答:➢按定位特征:点图形、线图形、面图形、体图形、注记图形。

点图形:具有一点定位的独立的个体地理图形符号,它表示按点定位分布的独立的地理目标,也称定点图形;线图形:定位于一条直线(定位线)上并沿定位线分布或配置的线性地理图形符号,它表示呈线状或条带状分布的地理目标,也称定线图形;面图形:定位于一定的边界(多边形)分为并按边界填充或配置颜色或图案的面状地理图形符号。

精品文档-计算机图形学(贾建)-第三章

30
第三章 基本图形生成技术
图3.4 Bresenham算法实例
31
第三章 基本图形生成技术
一般情况下, 任意直线的Bresenham算法为:
#include <stdio.h>
#include <graphics.h>
void BRES_line(int xs, int ys, int xe, int
P1=2dy-dx 综上所述, 满足条件0≤m≤1的直线的Bresnham算
法的步骤如下:
Step 1
初始化:
dx=xe-xs,dy=ye-ys,x=xs, y=ys,P=2dy-dx;
27
第三章 基本图形生成技术
28
第三章 基本图形生成技术
Step 3 算法结束。 Brsenham算法的程序实现如下: # include <stdio.h> # include <graphics.h> void line_BRES(int xs, int ys, int xe, int ye, int c) { int dx=xe-xs, dy=ye-ys, x=xs, y=ys; int twoDX=2*dx, twoDY=2*dy, P=2*dy-dx; setPixel(x, y, Color); while(x < xe) { if (P>0) {y++; P- = twoDX; } x++; P+ = twoDY; setPixel(x, y, c); } }
}
17
第三章 基本图形生成技术 算法将直线两个端点的像素位置作为输入, 其过程可概 括为: 将端点位置的水平和垂直差赋给参数dx和dy, 两者 中绝对值大者决定参数steps的值。 从像素位置(xs,ys) 开始, 确定沿直线生成下一个像素位置每步的所需偏移量, 并循环上述过程steps次。 如果dx的绝对值大于dy的绝对值, 那么x方向和y方向的 增量分别为±1和±m; 如果dy的绝对值大于dx的绝对值, 那么y向和x方向的增量分别为±1和±m-1。

第3章基本图形的生成与计算

1.数值微分法(DDA法)
2.中点画线算法
3.直线的Bresenham算法
2021年3月4日星期四
14
3.2 直线段的生成算法
第3章 基本图形的生成与计算
画一条从(x1,y1)到(x2,y2)的直线,实质上是确定 最佳逼近直线的像素序列,并填入色彩数据的过程。
当我们对直线进行光栅化时,只能在显示器所给定的 有限个象素组成的矩阵中,确定最佳逼近于该直线的一 组象素,并且按扫描线顺序,对这些象素进行写操作, 这就是通常所说的用显示器绘制直线或直线的扫描转换。
2021年3月4日星期四
10
3.1 基本绘图元素
第3章 基本图形的生成与计算
✓ 1.在几何学中,一个点即没有大小,也没有维数,点只是 表示坐标系统中的一个位置。
✓ 2.在计算机图形学中,点是用数值坐标来表示的。在直角 坐标系中点由(x,y)两个数值组成的坐标表示,在三维坐 标系中点由(x,y,z)三个数值组成的坐标表示,如下图:
此时 |K|<1
本算法的基本思想:从直线的起点开始,选定 x2 x1 和
y2 y1 中较大者为步进方向,不妨假设 x2 x1 较大,即让 x从起点到终点变化,每步递增1(即一个像素单位),然
后利用递推式 yi1 yi kx 计算相应的y值,取像素
点 ( xi 1, round ( yi1) )作为当前点坐标输出到显示器上, 则得到光栅化的直线。
第3章 基本图形的生成与计算
Loading …………
欢迎进入
第 3章
第3章 基本图形的生成与计算
本章概述:主要介绍了基本图形的生成与计
算,包括:基本绘图元素,直线段、圆与椭圆的 生成算法,区域填充算法,字符的生成,图

计算机图形学课后答案第三章

第三章答案3.1 修改Bresenham 算法,使之可绘制具有实线、虚线和点线等各种线型的直线,并且要求从键盘输入两端点坐标,就能在显示器屏幕上画出对应直线。

答案:(略)3.2 圆弧生成算法中,Bresenham 算法比正负法更合理的原因?答案:设圆的半径为R ,圆心在原点,则对于正负法,决定下一点走向的判别式为222(,)F x y x y R =+-,判别准则为:(,)0F x y ≤时,下一步取当前点的正右方的点;(,)0F x y >时,下一步取当前点正下方的点。

即若当前点在圆内,则下一步向圆外走;若当前点在圆外,则下一步向圆内走。

而对于Bresenham 算法,判别式为2222221111()()(1)(1)(1)i i i i i i i d D H D L x y R x y R ----=+=++-+++--判别准则为: 0<i d 时,下一步取当前点的正右方的点;0i d ≥时,下一步取当前点的正下方的点。

这说明Bresenham 算法在候选的两个像素中,总是选定离圆弧最近的像素为圆弧的一个近似点,因此,Bresenham 算法比正负法决定的像素更合理。

3.3 假设圆的中心不在原点,试编写算法对整个圆进行扫描转换。

答案:假设圆的方程为:222()()x a y b R -+-=,先用正负法、Bresenham 算法和圆的多边形迫近法这三种方法中的任一种生成圆心在原点的圆,再分别将x ,y 的坐标值加上a ,b ,得到的平移后的圆即所求的结果。

3.4 多边形的顶点和点阵表示各有什么优缺点?答案:顶点表示是用多边形的顶点序列来描述多边形。

该表示几何意义强、占内存少、几何变换方便;但它不能直观地说明哪些像素在多边形内,故不能直接用于面着色。

点阵表示用位于多边形内的像素的集合来描述多边形。

该方法虽然没有多边形的几何信息,但便于用帧缓存表示图形,可直接用于面着色。

3.5 在多边形的扫描线算法中,是如何处理奇点的?答案:为使每一条扫描线与多边形P 的边界的交点个数始终为偶数,规定当奇点是多边形P 的极值点时,该点按两个交点计算,否则按一个交点计算。

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

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

判别式: 判别式
dy s = dx ( r + 1) q dy t = ( q + 1) ( r + 1) dx
则有:
dy st = 2 ( r + 1) 2 q 1 dx
令 di=dx(s-t) 有:
di = dx(s t )
= 2(r dy q dx) + 2dy dx
给定圆心坐标(xc,yc),半径r及起始角ts和终止角te 离散化圆弧,求出从ts到te所需总步数n: 离散化圆弧
Ax + Bxy + Cy + Dx + Ey + F = 0
2 2
一,圆弧的拟合法
1. 逐点比较法插补圆弧
基本原理: 基本原理:输出圆弧过程中,每走完1个单位长度 后,就与应画圆弧进行比较,根据比较结果,决 定下一步走向.
图3-8 顺圆走向
图3-8 逆圆走向
(1)判别函数(以第I象限画逆圆为例) 设圆心为C(xc,yc),起始点S(xs,ys),另一点M(xm,ym), 半径Rs,M到圆心距离Rm
p p
现需确定下一个点亮的象素.
逐点比较法 (1)偏差计算 以第一象限为例推导偏差计算公式.
假定画的线段为OA,而画笔当前位置为M. OA,OM与x轴夹角分别为α,β.则偏差值d为:
y A(xA,yA)
yM yA d = tgβ tgα = xM xA yM xA yA xM = xM xA
第3章 二维图形生成技术 章
提出问题
如何在指定的输出设备上根据坐标描述构造基 本二维几何图形(点,直线,圆,椭圆,多边 形域,字符串及其相关属性等).
图形的生成: 图形的生成:是在指定的输出设备上,根据坐标描述 构造二维几何图形. 图形的扫描转换: 图形的扫描转换:在光栅显示器等数字设备上确定一 个最佳逼近于图形的象素集的过程.
M1(x1,y1)→ M2(x2,y2) F1=y1xA-yAx1<0,走+y一步 走 一步 即:x2=x1 A(xA,yA) y2=y1+1 M2(x2,y2)→ M3(x3,y3) F2=y2xA-yAx2= y1xA+xA-yAx1 = F1+xA ≥ 0, 走+x一步 一步 即:x3=x2+1 y3=y2 M3(x3,y3) F3=y3xA-yAx3= y2xA-yAx2-yA = F2-yA
二,直线属性
线色 一个光栅扫描系统可以提供多种颜色, 通常用0,1,2,……等整数值来表示不 同的颜色.
3.2 二次曲线
曲线:已知方程,画出曲线 未知方程,画出曲线(曲线拟合,曲线插值,曲线逼近)
二次曲线包括圆,椭圆,抛物线,双曲线. 基本技术: 基本技术:将曲线离散成小直线段,通过连接各直线段来逼近所需曲线.
二,直线属性
线型 最常见的线型有实线,虚线,点划线等. 最常见的线型有实线,虚线,点划线等. 可以自己编写函数sellt(lt)来设置直线的线型, 来设置直线的线型, 可以自己编写函数 来设置直线的线型 选择为1, , 分别对应所需要的线型 分别对应所需要的线型. 将lt选择为 ,2,3分别对应所需要的线型. 选择为 对于虚线和点划线, 对于虚线和点划线,应规定各段明暗部分的长 度,以便计算相应坐标,控制其输出. 以便计算相应坐标,控制其输出. 长度定义一般是在用户坐标系下进行的. 长度定义一般是在用户坐标系下进行的.
(2)对称 )对称DDA法 法
2 m 1 < max( dx , dy ) < 2 m
令: 所以: 所以:
dt = 2
m
xinc = dx 2
m m m
<1 <1
yinc = dy 2
在x和y两个方向上,步长均小于1,用2套寄存器和加法器 分别计算,哪个方向上有整数溢出,就驱动该方向走步.
增量算法:在一个迭代算法中,如果每一步的x, y值是用前一步的值加上一个增量来获得,则称 为增量算法. DDA算法就是一个增量算法. DDA算法特点:
当斜率大于1时, 就可以将x,y交换 , 即以y方向作为计 当斜率大于 时 就可以将 , 交换, 即以 方向作为计 交换 长方向. 长方向.
算法步骤: 算法步骤 1.输入直线的两端点 1(x1,y1)和P2(x2,y2). 输入直线的两端点P 输入直线的两端点 和 . 2.计算初始值 ,dy,inc1=2*dy, inc2=2*(dy-dx), 计算初始值dx, , , , 计算初始值 curx=x1,cury=y1 , d=inc1-dx. . 3.绘制点 绘制点(curx,cury). 绘制点 . 4.判断 的符号 更新 .若d<0,则(curx,cury)更新为 判断d的符号 更新d. 判断 的符号,更新 , 更新为 (curx+1,cury) ,d更新为 更新为d+inc1;否则 更新为 ;否则(x,y)更新为 更新为 (curx+1, cury+1), d更新为 更新为d+inc2 . , 更新为 5.当直线没有画完时,重复步骤3和4.否则结束. 当直线没有画完时,重复步骤 和 .否则结束. 当直线没有画完时
x = x1 + (x 2 - x1 )t y = y1 + (y 2 - y1 )t
将t分成n步,每一步变化dt,则第i步时:
ti = i dt ,
则:
(i = 1,2,, n)
x i = x1 + (x 2 - x1 )t i y i = y1 + (y 2 - y1 )t i x i +1 = x1 + dx (t i + dt ) = x i + dxdt y i +1 = y1 + dy (t i + dt ) = y i + dydt
图3-1 用一系列象素点来逼近直线
图5-1
用一系列的象素点来逼近直线
3.1 直线图形 3.2 二次曲线 3.3 自由曲线 3.4 字符 3.5 区域填充
3.1 直线图形
直线的绘制要求: 直线的绘制要求: 1.直线要直 2.直线的端点要准确,即无定向性和断裂情况 3.直线的亮度,色泽要均匀 4.画线的速度要快 5.要求直线具有不同的色泽,亮度,线型等
例:画直线段P0(0,0)--P1(5,2)
x 0 1 2 3 4 5 int(y+0.5) 0 0 1 1 2 2 y+0.5 0+0.5 0.4+0.5 0.8+0.5 1.2+0.5 1.6+0.5 2.0+0.5
Line: P0(0, 0)-- P1(5, 2) 3 2 1 0 1 2 3 4 5
x y n= + t t
2 直线 直线DDA算法 数值微分法) 算法( 算法
设(x1,y1)和(x2,y2) 分别为所求直线的端点坐标,由 直线的微分方程得:
dy y y 2 y1 = = =k dx x x 2 x1 dx = x 2 x1 dy = y 2 y1 (3 - 1)
直线的参数方程:
Fi +1 = Fi 2x ( xi xc ) + x
如果Fi<0,则走一步Δy,xi+1=xi,yi+1=yi+Δy F
2
Fi +1 = Fi 2y ( yi yc ) + y
2
(3)一般运算规律(P65表3-4) 逆圆的Ⅰ,Ⅲ象限和顺圆的Ⅱ,Ⅳ象限,运算规律相同; 逆圆的Ⅱ,Ⅳ象限和顺圆的Ⅰ,Ⅲ象限,运算规律相同.
增量算法 直观,易实现 易于用硬件实现
3. Bresenham算法 算法
直线的方程
F ( x, y ) = y kx b = 0 , dy y2 y1 其中k = = dx x2 x1
(3 - 5)
基本原理: 基本原理 假定0≤k≤1,x是最大位移方向
Ti=(r+1,q+1)
t
s Pi-1=(r,q) Si=(r+1,q) =(xi-1,yi-1) 图3-6 Bresenham算法生成直线的原理
Rs = Rm =
( xs xc ) 2 + ( y s yc ) 2 ( xm xc ) 2 + ( ym yc ) 2
判别函数: 判别函数: 2 F m = R m R s2 当Fm>0时,点M在圆外; Fm=0时,点M在圆上; Fm<0 时,点M在圆内.
(2)递推公式 如果Fi≥0,则走一步Δx,xi+1=xi-Δx,yi+1=yi F
(4)终点判断 每走一步x或y,与终点坐标比较.设终点坐标为 (xe,ye),当|xi-xe|<1且|yi-ye|<1时,到达终点.
2 角度 角度DDA法产生圆弧 法产生圆弧
算法原理:利用其函数方程,直接离散计算 算法原理 圆的参数方程为:
x = x c + r cos t y = y c + r sin t
o
x
结论: 结论:
如Fi ≥ 0 , 走+x一步 Fi+1= Fi -yA 一步, 一步 如Fi < 0 , 走+y一步 Fi+1= Fi +xA 一步, 一步
逐点比较法 (2)终点判断 设步距为Δt,直线在x,y方向的增量分别为 Δx, Δy 取n作为终点判断的控制数,在x或y方向上 每走一步,n减1,直至n=0为止.
M(xM,yM) o x
逐点比较法 当d<0 时,画笔在OA线段下方,应走+y一步. 当d≥ 0时,画笔在OA线段上方,应走+x一步. 结论: 对于第一象限,因为分母xM,xA永远为正, 只需判断分子项即可.因此,偏差判断公式:
FM = y M x A y A xM
相关文档
最新文档