第2讲 计算机图形学基础-基本图形生成
《基本图形的生成》课件
这份PPT课件旨在向您展示基本图形的生成方法,帮助您深入理解这一概念。 通过介绍不同的图形生成技术,我们将带您走进图形生成的魅力世界。
课件目标
清晰明了
通过简明的讲解和实例演示, 让您更好地理解基本图形的生 成。
生动有趣
用趣味的方式呈现内容,使您 在学习的过程中保持积极的关 注和参与。
2 B样条曲线
由多个片段构成,每个片段由一组控制点控制,灵活且逼近真实曲线。
3 样条曲线拟合通过一系列来自点来逼近实际曲线,生成光滑且高度接近的曲线。
矩形和正方形的生成
中心点和长度
顶点坐标和边长
通过确定矩形的中心点坐标和长度,可以轻松生成矩形。 通过指定正方形的顶点坐标和边长,可以迅速绘制出完 美的正方形。
3 持续学习和探索
图形的生成是一个广阔的领域,只有不断学习和探索,才能不断提高自己的图形设计能 力。
实用可应用
将学到的知识应用到实际案例 中,提供一些实用的技巧和建 议。
基本图形的定义
1 直观易懂
基本图形是由简单的几何元素组成,如点、线、矩形和圆形等。它们是构建更复杂图形 的基础。
2 重要性
理解基本图形的生成是学习图形设计和计算机图形学的关键,为后续学习打下坚实基础。
3 灵活性
基本图形可以通过不同的算法和技术进行生成,使其具备无限的创造力和变化性。
多边形
通过多个顶点的坐标来定义多 边形的边界,可以创造出封闭 和开放的多边形。
自定义图形
利用基本图形生成的技术和算 法,可以实现各种自定义的图 形效果。
总结和要点
1 学以致用
学习图形的生成技术,让您能够应用到实际的图形设计和计算机图形学项目中。
计算机图形学基本图形生成法算法原理课件资料
区域填充的过程(2W)、扫描线填充的基本过程,两个问 题、两个连贯性、有序边(表)、活化边(表)、边的结 构、判断顺序.
二、种子填充算法
❖多边形表示方法
✓顶点表示 ✓点阵表示
顶点表示:用多边形顶点的序列来刻划多边形 特点:直观、几何意义强、占内存少;不能直接用于面
ee20
45 432/4 5-/14 ∧
e2
5 43/4 5/4 ∧
活化边表的建立 有序边表
8^ 7^ 6^ 5^ 4^ 3^ 2^
1^
0^
e5
10 7 -5/3
e3
11 12 0 ∧
e4
11 7 5/4 ∧
10 2 0 ∧
e6 e0
4 5 -1
e2
5 7 5/4 ∧
活化边表
Y=4
10
Y=5
10
e6
(3)按从下到上的顺序对纵坐标值为y的扫描线(当前扫描 线)执行下列步骤,直到有序边表ET和活化边表AEL都 变成空为止.
a)如有序边表ET中的第y类元素非空,则将属于该类的所有 边从ET中取出并插入第y类扫描线的活化边表中,AEL中 的各边按照x值(当x值相等时,按Δx值)递增方向排序. 边的增加和排序
着色;广泛应用于各种几何造型系统; 点阵表示:用位于多边形内的象素的集合来刻划多边形 特点:失去了许多重要的几何信息(边界、顶点等);
易于面着色;光栅显示系统显示时所需的表示形式;
❖光栅系统中两种基本的区域填充算法
✓针对采用顶点表示的多边形
通过确定横越区域的扫描线的覆盖间隔来填充 的多边形扫描转换区域填充算法,主要填充简单多 边形、圆、椭圆以及其它简单的曲线. ——扫描线填充算法 ✓针对采用点阵表示的多边形
计算机图形学ppt课件 第二章基本图形的生成与计算
for (x=x0; xx1, x++) drawpixel (x, int(y+0.5), color); y=y+k;
例:画直线段P0(0,0)--P1(5,2)
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
角度DDA法
显然,确定x,y的初值及d值后,即可以增量方 式获得圆周上的坐标,然后取整可得象素坐标。 但要采用浮点运算、乘法运算、取整运算。
中点画圆法
利用圆的对称性,只须讨论1/8圆。第二个8分 圆 P(Xp ,Yp )
P1
M P2
P为当前点亮象素,那么,下一个点亮的象素可 能是P1(Xp+1,Yp)或P2(Xp +1,Yp +1)。
pi 2 xi dy 2 yi dx 2dy (2b 1)dx
(2.4)
在1a象限内,dx总大于0,所以pi可以判断d1d2的符号。Pi+1为
pi 1 2 xi 1dy (2 yi 1 2 yi 2 yi )dx 2dy (2b 1)dx
2( xi 1)dy (2 yi 1 2 yi 2 yi )dx 2dy (2b 1)dx
本算法是Bresenham在1965年提出。
设直线起点(x1,y1)终点(x2,y2),直 线可表示为 y mx b
y2 y1 dy b y1 m x1 , m x2 x1 dx
此处讨论先将直线方向限于1a象限,当
xi 1 xi 1
计算机图形学-基本图形的生成与显示
y0 kx0 b 0
则: d 0 0.5 k
(x0+1,y0+0.5) (x0,y0)
中点算法的改进——整数化判别式
改进:用2dΔx代替d, 令D=2dΔx 则:
D0 2 xd 0 2 x (0.5 k ) x 2 y di 0 Di 0 Di +1 2 xd i 1 2 x ( d i 1 k ) 2 xd i 2 x 2 y Di 2 x 2 y di 0 Di 0
12
中点画线算法
直线与空间的关系
y F(x,y)=0 F(x,y)>0 x F(x,y)<0 F(x,y)=0 F(x,y)>0 y
F(x,y)<0
x
图3 直线将平面分为三个区域
13
假定0≤k≤1,即0≤Δy/Δx≤1,x是最大位移方向 当前点 P 的下一点只能取 Pu 或 Pd,可用中点与直线 的位置关系来判定,中点偏差判别式
中点偏差判别式的初始值 直线的起点坐标为P0(x0,y0),x为主位移方向。 因此,第一个中点是(x0+1,y0+0.5),相应 的d的初始值为:
d 0 F ( x0 1, y0 0.5) y0 0.5 k ( x0 1) b
y 0 kx0 b k 0.5
Pu(xi+1,yi+1) Q M(xi+1,yi+1/2) P(xi,yi) Pd(xi+1,yi)
图4 中点算法生成直线的原理
中点M坐标为(xi+1, yi+0.5), 判别式:
d F ( xM , yM ) F ( xi 1, yi 0.5) yi 0.5 k ( xi 1) b
计算机图形学基础 ppt课件
第二章 计算机图形学基础
机械CAD/CAM
虚拟现实(Virtual Reality
第二节 图形的几何变换
图形变换指对图形的几何信息经过几何变换后产生新 的图形,提出的构造或修改图形的方法。
除图形的位置变动外,可以将图形放大或缩小,或者对图形
作不同方向的拉伸来使其扭曲变形…
• 图形变换基本知识
• 二维图形基本几何变换
(4)图形编辑
如何对图形进行组合、分解、插入、裁剪等技术。
第二章 计算机图形学基础
三 计算机图形学的应用
(1)在机械设计中的应用
机械CAD/CAM
(a)工程图
(b)线框图 (c)实体图
第二章 计算机图形学基础
机械CAD/CAM
(2)科学计算可视化
广泛应用于医学、流体力学、有限元分析及气候分析中。
(3)计算机动画
第二章 计算机图形学基础
机械CAD/CAM
(4)过程监控
用曲线来模拟火箭发射的飞行轨迹,同时不断修正参数。
(5)计算机辅助教学
利用计算机图像可以清楚的表现数学曲线、几何曲面的形成。
(6)虚拟现实技术
用计算机技术来生成一个逼真的三维视觉、听觉、 触觉或嗅觉等感觉世界,让用户可以从自己的视点出发, 利用自然的技能和某些设备对这一生成的虚拟世界客体 进行浏览和交互考察。
平移变换
图形的每一个点在给定的方向上移动相同距离所得的变换称为 平图移形变在换x轴。方向的平移量为l, 在y轴方向的平移量为m,
则坐标点的平移变换:
几何关系
x' x l
y
'
ym
矩阵形式
1 0 0
x y 1=x y 1 0
计算机图形学基本图形生成算法
y= k· x+b
k=0.571429
b=0.428571
2 X[0]=1 y0 X[1]=2
Y[0]=1 Y[0]=1 Y[1]=kx[1]+b=1.57 Y[1]=y0+k=1.57 Y[2]=y1+k=2.14 Y[2]=kx[2]+b=2.14 Y[3]=y2+k=2.71 Y[3]=kx[3]+b=2.71 Y[4]=y3+k=3.28 Y[4]=kx[4]+b=3.28 Y[5]=y4+k=3.85 Y[5]=kx[5]+b=3.85 Y[6]=y5+k=4.4 Y[6]=kx[6]+b=4.4 Y[7]=5 Y[7]=5
第3章 基本图形生 成算法
1 直线生成算法(DDA、BRES) 2 圆生成算法(Mid) 3 多边形填充算法(扫描线、区域) 4 字符图元算法
2015/4/19
1
图元
• 图元:图形软件包中用了描述各种几何 图形元素的函数称为图形输出原语,简 称图元。 • 描述对象几何要素的输出图元一般称为 几何图元。点的定位和直线段是最简单 的几何图元。 • 在选定坐标系中指定一个图形的几何要 素后,输出图元投影到该输出设备显示 区域对于的二维平面上,并扫描转换到 帧缓存的整数像素位置。
2015/4/19
5
1 直线生成算法(DDA、BRES) 2 圆生成算法(Mid) 3 多边形填充算法(扫描线、区域) 4 字符图元算法
1 直线的DDA算法
2015/4/19
6
OpenGL画点和画线函数 1) 画点函数 glVertex*( ); (*={234}{sifd}[v]) 表示该函数有后缀,指 明空间尺寸、坐标数据类型或向量形式描述。 Ex: glBegin(GL_POINTS); glVertex2i(100,50); glEnd(); glBegin(GL_POINTS); glVertex2i(100,50); glVertex2i(75,90); glVertex2i(300,590); glEnd();
计算机图形学PPT课件
三维图形投影方法
正投影
平行光线垂直投射到投影面上 ,形成物体的正投影。
斜投影
平行光线与投影面成一定角度 投射,形成物体的斜投影。
透视投影
从视点出发,通过透视变换将 三维物体投影到二维平面上。
阴影生成
根据光源位置和物体形状,计 算阴影的位置和形状。
05
真实感图形绘制技术
Chapter
消隐技术
消隐算法分类
计算机图形学PPT课件
目录
• 引言 • 图形系统基础 • 基本图形生成算法 • 三维图形变换与观察 • 真实感图形绘制技术 • 曲线与曲面绘制技术 • 计算机动画技术 • 计算机图形学前沿技术
01
引言
Chapter
计算机图形学概述
01
02
03
计算机图形学定义
研究计算机生成、处理和 显示图形的一门科学。
平移变换 旋转变换 缩放变换 镜像变换
将三维图形沿x、y、z方向移动一 定距离,不改变图形形状和大小 。
在x、y、z方向分别进行缩放,可 改变图形的大小和形状。
三维图形复合变换
变换顺序
先进行缩放、旋转,再进行平移,注意变换顺序对结果的影响。
变换矩阵
将各种基本变换表示为矩阵形式,便于进行复合变换的计算。
医学诊断
通过计算机图形学技术,医生可以更 直观地了解病人病情,进行更准确的 诊断和治疗。
军事模拟
计算机图形学在军事模拟和训练中发 挥重要作用,提高训练效果和作战能 力。
THANKS
感谢观看
通过模拟自然现象或物理过程,生成具有真实感的动画效 果。
过程动画制作流程
建立自然现象或物理过程的数学模型,利用计算机图形学 技术模拟模型的运动和变化过程,生成具有真实感的动画 效果。
第2讲-计算机图形学基础
•算法小结
21:16
• 研究图形的基本生成算法,其宗旨是尽快提高算法的计算速度、精度 及可靠性,为各种图形平台提供算法支撑。 • 原则:尽量避免除法、浮点运算,尽可能采用整数加减及移位等运算。
计算机图形学基础
计算机图形学与CAD技术
计算机图形学主要内容
1.图形生成及算法 1.1 基本图形生成 1.2 基本图形算法 2.图形变换 2.1 二维图形几何变换 2.2 三维图形几何变换 3.图形显示 3.1 坐标系统 3.2 二维图形显示流程 3.3 规范化和视口变换 3.4 二维裁减算法
计算机图形学基础
计算机图形学与CAD技术
算法应用举例 直线起点P0(0,0),终点P1(5,2)
Line: P0(0, 0)-- P1(5, 2) 3 2 1 0 1 2 3 4 5
DDA算法实现
计算机图形学基础
计算机图形学与CAD技术
2) Bresenham算法 Bresenham算法是目前使用最广泛的直线生成算法。 过各行各列象素中心构造一组虚拟网格 线。按直线从起点到终点的顺序计算直 线与各垂直网格线的交点,然后根据误 差项的符号确定该列象素中与此交点最 近的象素(如右图所示)。 -算法思想
d d d
d
假设直线方程为:yi+1 = yi + k ( xi +1 – xi ),且横坐标象素为 xi,其纵 坐标为yi ,斜率 k < 1 ; 那么下一个象素的横坐标为 xi+1,而纵坐标要么为yi,要么递增1为 yi+1,是否增1取决于误差项d的值。 误差项 d 的初值 d0 = 0,x 坐标每增加 1,d 的值相应递增直线的斜 率值 k,即 d=d+k。 一旦 d≥1,就把它减去1,这样保证 d 在 0、1 之间; 当 d ≥ 0.5 时,直线与垂线 x = xi + 1 交点最接近于当前象素 (xi,yi) 的右上方象素 ( xi+1,yi+1 ); 而当 d < 0.5 时,更接近于右方象素 ( xi+1,yi ) 。 为方便计算,令e =d-0.5,e 的初值为-0.5,增量为 k; 当e ≥ 0 时,取当前象素 (xi,yi)的右上方象素(xi+1,yi+1); 而当 e < 0 时,取 ( xi,yi )右方象素 ( xi+1,yi )。
《计算机图形学》02 基本图形生成
例2 (1,1)-(9,6)直线的点阵
10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
例3 (1,1)-(6,9)直线的点阵
10 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 3)-(8,7)直线的点阵
-4
-3
-2
-1
0
1
2
3
4
5
作业: 作业: (1)对圆心为原点,半径为7的圆,生成其1/8圆弧段上的点。 (2)写出完整的Bresenham画圆算法计算步骤(圆心为(x0,y0),半径 为r,生成圆周上的全部点) (3)对圆心为(2,5),半径为6的圆,生成全部圆周点。 (4)写出Bresenham算法完整的画圆程序: DrawCricle(int x0,int y0,int r)
(2,2)-(5,7)直线的点阵
10 9 8 7 6 5 4 3 2 1 0
0
1
2
3
4
5
6
7
8
9
10
作业: 作业: (1)用Bresenham算法生成 4),(8, 8)之间的直线。写出计算过 用 算法生成(2, , 之间的直线。 算法生成 之间的直线 程并画出点阵图。 程并画出点阵图。 (2)用Bresenham算法生成 2),(7, 8)之间的直线。写出计算过 用 算法生成(3, , 之间的直线。 算法生成 之间的直线 程并画出点阵图。 程并画出点阵图。 (3)写出陡峭向上的 写出陡峭向上的Bresenham画线函数 画线函数void DrawLine2(…)。 写出陡峭向上的 画线函数 。 (4)写出陡峭向下的 写出陡峭向下的Bresenham画线算法的计算步骤。 画线算法的计算步骤。 写出陡峭向下的 画线算法的计算步骤
计算机图形学基础教程——课件
实践项目与案例分析
3D建模与渲染项目
01
02
03
3D建模
学习使用3D建模软件(如 Blender、Maya等)进行 基本物体建模,包括几何 体、曲面和细分曲面等。
材质与纹理
掌握如何为模型添加材质 和纹理,以实现更逼真的 视觉效果。
光照与渲染
学习设置场景灯光,理解 不同类型的光源对渲染效 果的影响,以及如何使用 渲染器进行最终渲染。
光照模型
光源类型
包括点光源、方向光源和 聚光灯等,每种光源都有 不同的光照效果。
材质属性
包括颜色、纹理、透明度 等,影响物体对光的反射 和折射方式。
光照计算
根据光源和材质属性,计 算物体表面的光照强度和 颜色,以实现逼真的渲染 效果。
纹理映射
STEP 01
纹理定义
STEP 02
纹理映射技术
纹理是用于描述物体表面 细节的图像或图像集。
图像压缩
减少图像文件大小的过程,以加 快传输和存储速度。
图像分辨率
描述图像的细节和清晰度的度量 。
图像处理算法
用于改善图像质量或提取信息的 各种算法和技术。
计算机图形学中的数学基础
01
向量运算
在图形学中用于描述方向和位移的 基本数学概念。
插值和拟合
用于创建平滑曲线和表面的数学方 法。
03
02
矩阵运算
发展历程
起步阶段
20世纪50年代,计算机图形学开始起步,主要应用 于科学可视化。
发展阶段
20世纪80年代,随着计算机硬件和软件技术的进步 ,计算机图形学在电影、游戏等领域得到广泛应用。
成熟阶段
21世纪初,计算机图形学技术逐渐成熟,广泛应用于 教育、工业设计、医学影像等领域。
基本图形生成算法原理
基本图形生成算法原理现在的计算机能够生成各种复杂的图形,但无论其多么复杂,它都是由一些基本图形组合而成的。
因此,学习基本图形的生成算法是掌握计算机图形的基础。
本章就主要讨论一些基本图形的生成原理,如点、直线、椭圆生成。
如前面所述,目前我们使用的主要图形输出设备显示器(一般为光栅图形显示器)和打印机(喷墨、激光打印机)本质上是一种画点设备,是由一定数量的网络状细小光点(即像素)组成,使某些像素亮(将帧缓存中对应位置的值为1)和某些像素不亮(将帧缓存中对应位置的值为0)来显示图形。
因此,基本图形生成的原理是指在点阵输出设备的情况下,如何尽可能地输出最接近于原图形(理想图形)的直线或曲线图形,即以最快的速度确定最佳逼近于图形的像素集。
确定图形的像素集合并显示的过程常称之为图形的扫描转换或光栅化。
这一过程使用的计算方法称之为图形生成算法。
1 点2 直线段的生成直线是点的集合,几何学中的一条直线是由两点决定,直线在数学上可以有多种表示方法,而在计算机图形学里,直线是由离散的像素点逼近理想直线段的点的集合。
数学上的直线是没有宽度的,而计算机图形学中显示出的直线的宽度与像素点的大小有关,一个像素宽的直线的线粗为像素的边长。
由计算机生成的图形中有大量的直线段,而且曲线也是由一系列短直线段逼近生成的。
因此,研究直线生成的方法是计算机图形学的基本问题之一。
对计算机生成直线的一般要求是:线段端点的位置要准确;构成线段的像素点的集合应尽可能分布均匀,其密度应该与线段的方向及长度无关;线段生成的速度要快。
生成直线的算法有多种,这里仅介绍两种方法,即DDA 算法和Bresenham 算法。
2.1 直线DDA 算法该直线生成算法称为数值微分算法(Digital Differential Analyzer 简称DDA )。
它是一种根据直线的微分方程来产生直线的方法。
设直线的起点坐标为),(s s y x ,终点坐标为),(e e y x ,则=dx dy k xy x x y y s e s e =∆∆=-- (3-1)k 是直线的斜率。
计算机图形学第二章基本图形的生成与计算ppt课件
P2 Q
P=(xp,yp) P1
• 问题:如何判断M与Q点的关系?
直线中点画线法
假设直线方程为:ax+by+c=0 其中a=y0-y1, b=x1-x0, c=x0y1-x1y0 由常识知:
Fx, y0 Fx, y0 Fx, y0
Dy
1a True 1b False 2a Ture 2b False
1
m
1/m 1
-1
m
-1/m 1
3a True 3b False 4a Ture 4b False
-1
-m
-1/m -1
1
-m
1/m -1
表2.1
研究表2.1的数据,可以得到如下规律:
1、当|dx|>|dy|时
|Dx|=1 ,|Dy|=m
直线中点画线法
画线从(x0, y0)开场,d的初值
d0=F(x0+1, y0+0.5)= a(x0 +1)+b(y0 +0.5)+c
a+0.5b
= F(x0, y0)+a+0.5b =
由于只用d 的符号作判断,为了只包含整数运 算,
可以用2d代替d来摆脱小数,提高效率。
直线中点画线法
void Midpoint Line (int x0,int y0,int x1, int y1,int color)
否则
|Dx|=1/m ,|Dy|=1
2、Dx,Dy的符号与dx,dy的符号相同
依据上述规律可以生成直线,每生成一条直线 做两次除法,画线中的每点做两次加法,所以 DDA算法生成直线的速度还是很快的。
计算机图形学基本知识PPT课件
通过仿射变换矩阵对图像进行变换,可以处理更复杂的几何变换。
04 计算机图形学高级技术
光照模型与材质贴图
光照模型
描述物体表面如何反射光线的数 学模型,包括漫反射、镜面反射 和环境光等。
材质贴图
通过贴图技术将纹理映射到物体 表面,增强物体的真实感和细节 表现。
纹理映射
纹理映射技术
将图像或纹理图案映射到三维物体表 面,增强物体的表面细节和质感。
总结
计算机图形学在游戏设计、电影与动 画制作、虚拟现实与仿真等领域有着 广泛的应用。
计算机图形学的发展历程
起步阶段
20世纪50年代,计算机图形 学开始起步,主要应用于几 何形状的生成和简单图形的 处理。
发展阶段
20世纪80年代,随着计算机 性能的提高,计算机图形学 开始广泛应用于电影、游戏 等领域。
总结
计算机图形学利用计算机 技术生成、处理和显示图 形,实现真实世界的模拟 和再现。
计算机图形学的应用领域
游戏设计
游戏中的角色、场景和特效都需要用 到计算机图形学技术。
电影与动画制作
电影特效、角色建模和动画制作都离 不开计算机图形学。
虚拟现实与仿真
虚拟现实技术、军事仿真、工业设计 等领域都广泛应用计算机图形学。
向量图
向量图是矢量图的一种,通常用于描 述二维图形,如几何图形和图表。
图像的分辨率与质量
分辨率
分辨率是指图像中像素的数量, 通常以像素每英寸(PPI)或像素
每厘米(PPC)为单位。
质量
图像质量取决于分辨率、颜色深度 和压缩等因素。
压缩
图像压缩是一种减少图像文件大小 的方法,常见的图像压缩格式有 JPEG和PNG等。
基本图形的生成优秀课件
yi+1 (画非水平线时,y的值变化,需要计算)
其中:yi+1的计算为:
yi+1=kxi+1 +B
=k(xi+△x)+B =kxi+k△x +B =kxi+B+k△x =yi +k△x
//yi=kxi+B
=yi +k
//当△x的步进为1时
故Pi
点的坐标为:
+1
xi+1=xi+1
yi+1=round ( yi+k) //进行取整运算
xi+1=xi+1 yi+1=round ( yi+k)
分析:下一点的y坐标为当前点y 坐标加上斜率k,省略了浮点乘法。
数
值
微
(xi+1,(int) (yi+k))
分
法
示
意 图
(xi, yi)
(xi+1, yi+k)
(xi, (int) (yi))
理想直线上的坐标点 扫描转换后的像素点
2 算法:
基本图形的生成
概论
一 光栅扫描:
1 光栅扫描的基本原理: 电子束在荧光屏上按照固定的扫描线和扫描顺序扫出 一个由行和列组成的光的栅网。
2 像素: 栅网中的每一个孤立的光点,它是光栅显示的最小单位。 像素可以有不同的亮度,像素的坐标值都是整数。
3 提出问题
(1)目前使用的图形输出设备显示器:光栅图形显示器
二 数值微分法的改进算法(关键:找到Pi(Xi,Yi), Pi+1(Xi+1,Yi+1)的关系)
1 推导:
《计算机图形学》基本图形生成-精PPT28页
•
46、寓形宇内复几时,曷不委心任去 留。•47源自采菊东篱下,悠然见南山。•
48、啸傲东轩下,聊复得此生。
•
49、勤学如春起之苗,不见其增,日 有所长 。
•
50、环堵萧然,不蔽风日;短褐穿结 ,箪瓢 屡空, 晏如也 。
6、最大的骄傲于最大的自卑都表示心灵的最软弱无力。——斯宾诺莎 7、自知之明是最难得的知识。——西班牙 8、勇气通往天堂,怯懦通往地狱。——塞内加 9、有时候读书是一种巧妙地避开思考的方法。——赫尔普斯 10、阅读一切好书如同和过去最杰出的人谈话。——笛卡儿
Thank you
【华科 CAD技术与应用】第2讲 计算机图形学基础-基本图形生成
2.3.基本图形生成算法
— 直线生成算法 — 圆弧生成算法 — 其它基本图形生成
2.4.图形裁减算法 2.5.多边形填充算法(选学) 2.6.图形反走样算法(选学) 2.7.基于OpenGL图形库生成图形(选学)
华中科技大学CAD中心
思考问题:
1)图形如何在屏幕上显示出来?? 2)CAD图形如何生成??
象素的亮度值控制电子束对荧光屏的轰 击强度,象素在帧缓存寄存器中的位置编码 控制电子束的偏转位置。
图形系统为灵活控制图形颜色变化,往 往不直接将帧缓冲器中的数值作为显示的亮 度值,而是先经过颜色查找表(称调色板) 产生变换值来控制光点亮度。其工作方式:
显存中某位值 度
颜色表地址
华中科技大学CAD中心
为叙述方便,仅考虑圆心在原点的圆(其它位置圆可平移到原点位置)。
不妨设函数:
F (x, y) = x2 + y 2 - r 2
显然有: F(x,y)< 0,则(x,y)位于圆边界内 F(x,y)= 0,则(x,y)位于圆边界上 F(x,y)> 0,则(x,y)位于圆边界外
考虑到圆的八对称 性,不妨以第二个 八分圆进行分析, 其它八分圆则可通 过镜像实现。
华中科技大学CAD中心
刷新频率
(仅CRT)
每秒钟重绘屏幕的次数, CRT产生稳定图像所需要的最小刷新频率: = 1秒 / 荧光物质的持续发光时间 (Hz)
注:液晶显示器原理不同于CRT,不受刷新频率影响。但液晶显示 有拖尾现象,是因液晶偏转延迟所致,延时越长,拖尾越重。
帧扫描
与电视工作原理类 似,CRT电子束从上 到下、从左到右扫描 进行,每扫描一遍称 为一帧。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华中科技大学CAD中心
帧缓冲存储器
简称帧缓存 俗称显存
每个象素都对应于Buffer中的一个存储单元,用来存储象素颜色 (灰度)值的存储器,称为帧缓冲存储器。 目前,显示器均采用32bit来表示颜色,其中R、G、B各8位, 另8位可用于表示色彩透明度,此即颜色的RGBA表示。 分辨率1024x1024的一帧图像,其显存所需容量: = 1024x1024x32bit/8 =4M(byte)
华中科技大学CAD中心
—— 直线生成算法
画直线是CAD中最常用的操作,在光栅显示器上画线只能以点近 地似显示。
如下图,从(x1, y1)到(x2, y2)画直线实质上是寻找最佳逼近 直线的象素序列,并填入色彩数据,该过程称为直线光栅化,也 称直线扫描转换。
常用算法有:直线DDA算法、中点算法、Bresenham算法等,其 中以 Bresenham算法效率高,应用最广泛。
—— 阴极射线管显示器(CRT)
CRT是通过电子枪发射电子束,经过聚焦系统、加速电极、偏转系统,按行列 次序扫描点矩阵,轰击到荧光屏的不同点阵部位,被其内表面的荧光物质吸收, 在该点发光产生可见的图形。
华中科技大学CAD中心
彩色CRT显示器包含数以百万计的磷光点,成阵列排列。每个阵列点(称为 象素)有三个荧光点(红、绿、蓝三色),由三支电子枪控制各自电子束强 度实现不同亮度颜色,分别为红色、绿色和蓝色(即红、绿、蓝三基色), 当通过屏幕的电子束击中它们时,就会发光呈彩色图像。
本课程重点从CAD需求角度来 介绍相关研究内容: 工程产品设计中的二维工程图、 三维实体模型的显示
本章主要介绍: 基本图形生成原理
华中科技大学CAD中心
2.2、图形显示原理 – 颜色
华中科技大学CAD中心
2.2、图形显示原理
显示器是计算机上最常用的输出设备,用于显示文本和图形图像。目前显示器 多为平板显示器(LCD,LED、PDP,OLED),阴极射线管(CRT)。
P P1
M
y
考虑到圆的八对称 性,不妨以第二个 八分圆进行分析, 其它八分圆则可通 过镜像实现。 (-x,y) (x,y)
第2讲 计算机图形学基础——基本图形生成
2.1.计算机图形学概述 2.2.图形显示原理
— CRT显示器工作原理 — LCD显示器工作原理
2.3.基本图形生成算法
— 直线生成算法 — 圆弧生成算法 — 其它基本图形生成
2.4.图形裁减算法 2.5.多边形填充算法(选学) 2.6.图形反走样算法(选学) 2.7.基于OpenGL图形库生成图形(选学)
象素(Pixel)
荧光屏上画面的每一光点称为一个象素。 若屏幕尺寸一定,水平和竖直方向上能识别的最大像素个数用 分辨率来描述,如800*600,1024*768,1280*1024等。
分辨率
(Resolution)
若红(R)、绿(G)、蓝(B)三色每支电子枪发出的电子束强度为256个等 级,则显示器能同时显示256*256*256=16M种颜色,称为真彩色系统。
△x= x2-x1, △ y=y2-y1,k= △ y/ △x yi+1 = kxi+1+b = k(xi+1)+b = (kxi+b)+k = yi+k (xi , yi)→(xi+1 , yi+k) yi = round (yi) = (int) (yi+0.5)
k 1 k ≤1
上述算法简单,易实现,但有浮点数取整运算,不利于硬件实现,效率低; 算法仅适用于k
≤1的情形:x每增加1,y最多增加1。 当 k 1时,必须把x,y互换。
华中科技大学CAD中心
DDA算法实现
华中科技大学CAD中心
算法应用举例
设直线起点P0(0,0),终点P1(5,2)
Line: P0(0, 0)-- P1(5, 2) 3 2 1 0 1 2 3 4 5
华中科技大学CAD中心
象素的亮度值控制电子束对荧光屏的轰 击强度,象素在帧缓存寄存器中的位臵编码 控制电子束的偏转位臵。 图形系统为灵活控制图形颜色变化,往 往不直接将帧缓冲器中的数值作为显示的亮 度值,而是先经过颜色查找表(称调色板) 产生变换值来控制光点亮度。其工作方式:
显存中某位值 度 颜色表地址 屏幕上的亮
华中科技大学CAD中心
2) Bresenham算法原理
Bresenham算法是使用最广泛的直线生成算法。 该算法假设过各行各列象素中心构造一组虚拟网格线,按直线从起 点到终点的顺序计算直线与各垂直网格线的交点,然后根据误差项 的符号确定该列象素中与此交点最近的象素(如图)。
d d d
d
华中科技大学CAD中心
算法思想:
华中科技大学CAD中心
思考问题:
1)图形如何在屏幕上显示出来?? 2)CAD图形如何生成??
本章目的:
(1) 介绍显示器显示图形的基本原理; (2) 介绍基本图形元素的生成算法。
华中科技大学CAD中心
2.1.计算机图形学概述
计算机图形学主要研究用计算机进行图形信息的表达、输入、存储、显 示、输出、检索及图形运算等。具体地说,大致有以下内容: (1)图形的输入:研究如何把要处理的图形输入到计算机内,以便让计算 机进行各种处理。 (2)产生图形的算法:研究在显示器或其它输出设备上产生图形的算法; (3)图形的数据结构:研究图形在计算机内的表示方法; (4)图形的变换:研究图形的各种几何变换; (5)图形运算:包括图形的分解、组合等; (6)图形语言:各种图形处理功能的语言; (7)图形软件的标准化:图形软件与设备无关及接口兼容性。 总的来说,计算机图形学应该解决和研究下列一些问题: (1) 图形表示和处理的数学方法及其实现的计算机算法; (2) 设计一个好的图形软件支撑系统; (3) 设计与实际应用相结合的图形应用系统。
华中科技大学CAD中心
2.3.基本图形生成算法
思考:直线和圆弧如何在生成并显示 ? ? 无论是液晶显示器(LCD),还是阴极射线管显示器(CRT),都是通过改变 屏幕上象素点的颜色及亮度来显示图形。 对于一个二维CAD系统来说,直线、圆、圆弧、自由曲线是最常见的基本几 何要素。对于一个三维CAD系统来说,除了具备上述要素外,还需平面、圆 柱面、球面、圆环面及自由曲面。 曲线、曲面及三维形体将在后面章节介绍,本章仅介绍直线、圆弧的生成。
设直线方程为:yi+1 = yi + k ( xi +1 – xi ),斜率 k < 1 ,并设初始象素坐 标为( xi,yi ) ,误差初值 d0 = 0。 显然,若下一象素横坐标为 xi+1,则纵坐标yi+1可能为yi,或yi+1。 根据方程可知,x 坐标每增加 1,d 的值相应递增斜率值 k,即 d=d+ k; yi+1是否增1,则取决于误差项d的值,具体如下:
-算法特点
算法避免了除法及浮点运算,速度加快,精度高。 进一步改进:2 的倍数可采用移位操作,便于硬件实现,速度更快。
华中科技大学CAD中心
——圆弧生成算法
定义: 圆也是图形系统中常用的元素。我们将圆定义为所以距离中心位臵(xc, yc) 为给定值 r 的点集。圆的方程为: ( x xc ) 2 ( y yc ) 2 r 2 为叙述方便,仅考虑圆心在原点的圆(其它位臵圆可平移到原点位臵)。 不妨设函数: F ( x, y) x 2 y 2 r 2 显然有: F(x,y)< 0,则(x,y)位于圆边界内 F(x,y)= 0,则(x,y)位于圆边界上 F(x,y)> 0,则(x,y)位于圆边界外
如果 d≥1,就把它减去1,这样保证 d 在 0、1 之间; 当 d ≥ 0.5 时,直线与垂线 x = xi + 1 交点最接近于当前象素 (xi,yi) 的右上方象素( xi+1,yi+1 ) ; 而当 d < 0.5 时,更接近于右方象素 ( xi+1,yi ) 。 为加速计算,令e =d-0.5,e 的初值为-0.5,增量为 k,则可转化 为下式判断: 当e ≥ 0 时,取当前象素 (xi,yi)的右上方象素(xi+1,yi+1); 而当 e < 0 时,取 ( xi,yi )右方象素 ( xi+1,yi )。
华中科技大学CAD中心
1)直线DDA算法 (即微分算法)
直线y = kx+b中每一点坐标(xi+1 , yi+1 )都可由前一点坐标(xi , yi)加一个增量 (△x, △ y)而得到,即: xi+1 = xi+ △ x,yi+1=yi+ △ y,且△ y = k ·△ x。 设直线的起点(x1, y1)为所画直线的初值,考虑到象素为整数,于是画线算 法过程可表述为:
华中科技大学CAD中心
刷新频率
(仅CRT)
每秒钟重绘屏幕的次数, CRT产生稳定图像所需要的最小刷新频率: = 1秒 / 荧光物质的持续发光时间 (Hz) 注:液晶显示器原理不同于CRT,不受刷新频率影响。但液晶显示 有拖尾现象,是因液晶偏转延迟所致,延时越长,拖尾越重。
帧扫描
与电视工作原理类似, CRT电子束从上到下、 从左到右扫描进行, 每扫描一遍称为一帧。
华中科技大学CAD中心
-算法程序
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;i < dx;i++) { drawpixel (x, y, color);
LCD显示系统原理示意图
华中科技大学CAD中心