计算机图形学 第2讲:图形表示
计算机图形学基础知识重点整理

计算机图形学基础知识重点整理一、图形学的概念计算机图形学简单来说,就是让计算机去生成、处理和显示图形的学科。
它就像是一个魔法世界,把一堆枯燥的数字和代码变成我们眼睛能看到的超酷图形。
你看那些超炫的3D游戏里的场景、超逼真的动画电影,那可都是计算机图形学的功劳。
这个学科就是想办法让计算机理解图形,然后把图形按照我们想要的样子呈现出来。
二、图形的表示1. 点点是图形里最基本的元素啦。
就像盖房子的小砖头一样,很多个点组合起来就能变成各种图形。
一个点在计算机里就是用坐标来表示的,就像我们在地图上找一个地方,用经度和纬度一样,计算机里的点就是用x和y坐标(如果是3D图形的话,还有z坐标呢)来确定它在空间里的位置。
2. 线有了点,就能连成线啦。
线有各种各样的类型,直线是最简单的,它的方程可以用我们学过的数学知识来表示。
比如说斜截式y = kx + b,这里的k就是斜率,b就是截距。
还有曲线呢,像抛物线、双曲线之类的,在图形学里也经常用到。
这些曲线的表示方法可能会复杂一点,但也很有趣哦。
3. 面好多线围起来就形成了面啦。
面在3D图形里特别重要,因为很多3D物体都是由好多面组成的。
比如说一个正方体,就有六个面。
面的表示方法也有不少,像多边形表示法,就是用好多条边来围成一个面。
三、图形变换1. 平移平移就是把图形在空间里挪个位置。
这就像我们把桌子从房间的这头搬到那头一样。
在计算机里,平移一个图形就是把它每个点的坐标都加上或者减去一个固定的值。
比如说把一个点(x,y)向右平移3个单位,向上平移2个单位,那这个点就变成(x + 3,y + 2)啦。
2. 旋转旋转就更有意思啦。
想象一下把一个图形像陀螺一样转起来。
在计算机里旋转图形,需要根据旋转的角度和旋转中心来计算每个点新的坐标。
这就得用到一些三角函数的知识啦,不过也不难理解。
比如说以原点为中心,把一个点(x,y)逆时针旋转θ度,新的坐标就可以通过一些公式计算出来。
3. 缩放缩放就是把图形变大或者变小。
计算机图形学2

当 △x>△y 时,让 x 从 x1 到 x2 变化,每
步递增 1,
那么,x 的变化可以表示为 xi+1=xi+1
y 的变化可以表示为 yi+1=yi+k
2.1.1 直线DDA算法 (Digital Differential Analyser)
用上式可求得图中直线 P1P2 和 y 向网格线的交点, 但显示时要用舍入, 找到 最靠近交点处的象素点耒 表示。 当 △x<△y 时,让 y 递 增 1,x作相应变化。
2.1.1 直线的扫描转换——中点画线算法
在d≥0时,取正右方像素点P1,则下一个中点M 坐标:M1(xp+2,yp+0.5),则下一个像素点的判 别式 d1=F(xp+2,yp+0.5)=a(xp+2)+b(yp+0.5)+c=d+a 故d的增量为a。
而若d<0,则取右上方像素点P2,则下一个中点M 坐标:M2(xp+2,yp+1.5),则下一个像素点的判 别式
2.1.2 直线Bresenham算法( 续)
求误差的初值P1,可将x1、y1和b代入式(2.4)中的xi、 yi而得到 P1 = 2dydx 综述上面的推导,第1a象限内的直线Bresenham算法 思想如下: ⒈ 画点(x1, y1),dx=x2x1,dy=y2y1,计算误差初值 P1=2dy dx,i=1; ⒉ 求直线的下一点位置 xi+1 = xi + 1 如果Pi>0,则yi+1=yi+1,否则yi+1=yi; ⒊ 画点(xi+1, yi+1); ⒋ 求下一个误差Pi+1,如果Pi>0,则Pi+1=Pi+2dy2dx, 否则 Pi+1=Pi+2dy; ⒌ i=i+1;如果i<dx+1则转步骤2;否则结束操作。
计算机图形学的基本概念与算法

计算机图形学的基本概念与算法计算机图形学是研究如何利用计算机生成、处理和显示图像的学科。
它在许多领域中都有广泛应用,例如电影制作、游戏开发、医学成像等。
本文将介绍计算机图形学的基本概念和算法,并分步详细列出相关内容。
一、基本概念1. 图像表示:计算机图形学中,图像通常使用像素(Pixel)来表示。
每个像素包含了图像上一个特定位置的颜色或灰度值。
2. 坐标系统:计算机图形学使用不同的坐标系统来表示图像的位置。
常见的坐标系统有笛卡尔坐标系、屏幕坐标系等。
3. 颜色模型:计算机图形学中常用的颜色模型有RGB模型(红、绿、蓝)和CMYK模型(青、品红、黄、黑)等。
RGB模型将颜色表示为三个分量的组合,而CMYK模型用于打印颜色。
4. 变换:变换是计算机图形学中常用的操作,包括平移、旋转、缩放和剪切等。
通过变换,可以改变图像的位置、大小和方向。
5. 插值:在计算机图形学中,插值是指通过已知的数据点来推测未知位置的值。
常见的插值方法有双线性插值和双三次插值等。
二、基本算法1. 线段生成算法:线段生成是图形学中最基本的操作之一。
常见的线段生成算法有DDA算法(Digital Differential Analyzer)和Bresenham算法。
DDA算法通过计算线段的斜率来生成线段上的像素,而Bresenham算法通过绘制画板上的一个像素来逐渐描绘出整条直线。
2. 多边形填充算法:多边形填充是将一个多边形内的区域用颜色填充的过程。
常见的多边形填充算法有扫描线算法和边界填充算法。
扫描线算法通过扫描多边形的每一条水平线,不断更新当前扫描线下方的活动边并进行填充。
边界填充算法从某点开始,向四个方向延伸,逐渐填充整个多边形。
3. 圆弧生成算法:生成圆弧是计算机图形学中常见的操作之一,常用于绘制圆形和曲线。
常见的圆弧生成算法有中点圆生成算法和Bresenham圆弧生成算法。
中点圆生成算法通过计算圆弧中的每个点与圆心的关系来生成圆弧上的像素,而Bresenham圆弧生成算法通过在八个特定的扫描区域内绘制圆弧上的像素。
计算机图形学_完整版 ppt课件

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

中点画线法
构造判别式:
d=F(M)=F(xp+1,yp+0.5)
P2
=a(xp+1)+b(yp+0.5)+c
Q
当d<0,M在直线(Q点)下 方,取右上方P2;
P=(xp,yp) P1
当d>0,M在直线(Q点)上
方,取右方P1;
当d=0,选P1或P2均可, 约定取P1;
能否采用增量算法呢?
中点画线法
Bresenham算法
Bresenham画线算法
在直线生成的算法中Bresenham算法 是最有效的算法之一。令 k=Δy/Δx, 就0≤k≤1的情况来说明Bresenham算法。 由DDA算法可知:
yi+1=yi+k (1) 由于k不一定是整数,由此式求出的yi也 不一定是整数,因此要用坐标为(xi,yir) 的象素来表示直线上的点,其中yir表示 最靠近yi的整数。
x y int(y+0.5)
00
0
Line: P0(0, 0)-- P1(5, 2)
1 0.4 0
3
2 0.8 1
2
3 1.2 1
4 1.6
2
1
5 2.0
2
0 12 3 4 5
数值微分(DDA)法
• 缺点: 在此算法中,y、k必须是float,且每一 步都必须对y进行舍入取整,不利于硬件实现。
• 原理:
更新为(x+1,y+1),同时将e更新为e-2△x;否则 (x,y)更新为(x+1,y)。 5.当直线没有画完时,重复步骤3和4。否则结束。
Bresenham画线算法
BresenhamLine(x0,y0,x1,y1,color) {
计算机图形学

计算机图形学计算机图形学是研究计算机生成和处理图像的学科领域。
它涵盖了多个方面,包括图像表示、图像处理、图像合成、计算机动画等。
下面是计算机图形学中一些重要的概念和技术:1.图像表示:计算机图形学中的图像通常以数字形式表示,通过像素阵列来表示空间上的图像。
每个像素代表着图像中的一个点,其颜色值描述了该点的外观特性。
2.三维建模:三维建模是将三维对象转换为计算机可识别的形式。
常见的三维建模方法包括多边形网格建模、曲面建模、体素建模等。
三维建模为计算机图形学中的可视化和渲染提供了基础。
3.渲染:渲染是将计算机建模的三维场景转化为二维图像的过程。
它涉及到光照、阴影、纹理映射、透明度等照明和材质属性的计算。
常见的渲染方法有光栅化渲染、光线追踪等。
4.图像处理:图像处理是对图像进行各种操作和修改的过程。
这包括图像滤波、边缘检测、图像增强、图像分割等。
这些操作可以通过算法和数学方法在计算机上实现。
5.计算机动画:计算机动画是通过连续变化的图像帧来模拟和呈现动态图像。
它包括关键帧动画、骨骼动画、物理模拟等技术,可以模拟物体的运动、变形和碰撞等自然现象。
6.虚拟现实:虚拟现实使用计算机图形学技术来模拟和呈现逼真的虚拟环境。
它包括虚拟现实头盔、交互设备等技术,使用户能够与虚拟环境进行互动。
计算机图形学广泛应用于电子游戏、电影和动画制作、计算机辅助设计、医学图像处理、虚拟现实等领域。
它不仅提供了高度逼真和交互性的视觉体验,还支持人们进行创作、设计和科学研究。
计算机图形学 第二章 物体的几何表示(1)

世界坐标系和局部坐标系
在局部坐标系中而不是在世界坐标系中直 接表示物体的优势
表示形式简洁 在同一几何场景中,一个物体可能会多次出 现,它们可以通过复制加变换的方式得到:
标准体素"+"变换"="新的物体
局部坐标系便于进行几何操作
9
局部坐标系和世界坐标系中的变换
y
Y
x X
z
局部坐标系中的旋转
Z
世界坐标系中的旋转
6
局部坐标系:单位球面
x2+y2+z2=1 球心在原点
(x-1)2+(y-1)2+(z-1)2-1=0 球心在(1,1,1) 最终表达式:x2+y2+z2-2x-2y-2z+2=0 结论:同为单位球面,前者最简单
7
世界和局部坐标系:单位立方体
y Y
x z
局部坐标系
X Z
世界坐标系
定义在局部坐标系和世界坐标系中的单位立方体: 前者表示更为简洁
世界坐标系和景物(局部)坐标系 多边形表示
多边形表示物体的主要来源 多边形表示的数据结构 多边形表示的优势与不足
参数曲面表示
20
多边形表示方法:OBJ格式
顶点坐标表(x,y,z) :每个顶 点处可能有多个平面片,一 般情况下顶点数小于面片数. 鸭子模型中含有3474个顶点 纹理坐标表(u,v):控制纹理 映射时纹理在表面上的位置. 鸭子的身体,脚趾,眼睛和 嘴具有不同的颜色
算法上的考虑:数据结构所适用的算法
绘制网格曲面 几何形状编辑 拓扑连接关系的改变 在顶点,边,面上附着其它信息 邻接关系的查询:顶点的邻边,邻面?边的 顶点,邻接面?面的顶点,边,相邻的面… 曲面是否可定向的?
计算机图形学 图形的表示与数据结构

计算机图形学图形的表示与数据结构在当今数字化的时代,计算机图形学扮演着至关重要的角色。
从我们日常使用的手机应用中的精美界面,到好莱坞大片中令人惊叹的特效场景,计算机图形学的应用无处不在。
而要实现这些精彩的图形效果,首先需要解决的就是图形的表示与数据结构问题。
什么是图形的表示呢?简单来说,就是如何用计算机能够理解和处理的方式来描述图形。
这就好比我们想要给别人介绍一个物体,需要用恰当的语言和方式来描述它的形状、颜色、大小等特征。
对于计算机来说,它需要一种精确、高效的方式来存储和处理图形信息。
常见的图形表示方法有两种:矢量图形和光栅图形。
矢量图形就像是用数学公式来描述图形。
比如说,一个圆形可以用圆心的坐标和半径来表示,一条直线可以用起点和终点的坐标来确定。
这种表示方法的优点是无论图形放大或缩小多少倍,都不会出现失真的情况,因为图形的形状是通过数学公式计算出来的。
常见的矢量图形格式有 SVG(可缩放矢量图形)、EPS(封装的 PostScript)等。
矢量图形常用于需要高质量输出的场合,比如标志设计、插图绘制等。
而光栅图形则是将图形分割成一个个的像素点,每个像素点都有自己的颜色和亮度值。
我们常见的图片格式如 JPEG、PNG 等都属于光栅图形。
光栅图形的优点是能够表示非常复杂的图像,比如照片。
但缺点是在放大时会出现锯齿状的边缘,也就是我们常说的“像素化”。
在计算机图形学中,选择合适的图形表示方法取决于具体的应用场景。
如果需要对图形进行频繁的缩放、旋转等操作,并且对图形的质量要求较高,那么矢量图形可能是更好的选择。
但如果要处理真实世界的图像,比如照片,那么光栅图形则更为合适。
接下来,让我们来谈谈图形的数据结构。
数据结构就像是图形在计算机中的“家”,它决定了图形信息如何被组织和存储,从而影响着图形处理的效率和效果。
在计算机图形学中,常见的数据结构有链表、数组、树等。
链表是一种灵活的数据结构,可以方便地添加或删除元素。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
链表
实现方法...
^
数据结构
多边形表面模型
A V BCD AD C ACD BD D CD ABC ABD 边AB的相邻面是哪两个? D B AB BC CA
C A 边 表 B 面ABC和那些面相邻? AB A, B
顶点表 A B C D x1,y1,z1 x2,y2,z2 x3,y3,z3 x4,y4,z4 BC CA AD BC CD B, C C, A A, D B, C C, D ABC ABD BCD ACD
三维形体的表示 相关概念
拓扑信息+几何信息 正则几何运算
欧拉公式
小 结
三维形体
体是三维几何元素,
由封闭表面围成空间, 是欧式空间中非空、 有界的封闭子集;
其边界是有限面的集
合;
•指出“应该这样,应该那样….”——缺乏可操作性 •没说“怎样才能这样,怎样才能那样……”——具体实现方法
图4-30
二维平面图形对象的四叉树表示
构造实体几何表示法
(CSG—Constructive Solid Geometry) ?
球S...... 柱C......
S C
*
构造实体几何表示法
*
球
柱
构造实体几何法
构造实体几何法(CSG—Constructive
Solid Geometry)
用一棵二叉树来描述:
多边形表 AB, BC, AC AB, BD, AD BC, CD, BD AC, CD, AD
翼边结构
除了几何信息外,增加
额外的拓扑信息! 翼边结构:将边表扩充 成包括指向面表和顶点 表的指针;
E 1 V1 2 E
F1
E
F2
E4
每条边指出它的两个相邻 面 每条边指出它的两个顶点 每条边指出它的四个相邻 边
闭
包:内点+边界点;
c· A
正则点集:r· = c·A A i·
正则集合运算
C A *B c A B i C A *B c A B i C A *B c A B i
欧拉公式
平面多面体:表面由 欧 拉 公 式:V-
•要用多少吨钢材?
•力学:能否承重?
•热工:能否抗高温? •能否抗几级地震? •…… 实体模型
实体模型:完全真实的表示
点P和三维形体B之间:
内部 外部 边界上
线框模型
内部 线框模型 表面模型 实体模型 否 否 是 外部 否 否 是 边界 否 是 是
三维形体
实体模型
表面模型
空间分割
构造实体
根
节 点:实体
叶子节点:基本体素
中间节点:正则集合算子
扩展:包含 几何变换
另一种构造:扫描表示
也称扫掠表示,可以原理:将一个点、
一条边、一个面沿某一 路径扫描时,所形成的 轨迹将定义一个一维的、 二维的、或三维的实体
边界表示法
判断准则:对确定点
E3
V2
三维实体表示
边界表示(BREP表示法) CSG表示法 构造表示 扫描(略)表示法 空间位置枚举 空间分割 八叉树 BSP树
“实体表示”小结
空间分割:缺乏“宏观”信息,易于获取
构造实体:直观、稳定; 边界表示:信息全面、直接;
空间分割 空间分割 构造实体 容易 构造实体 困难 边界表示 困难 容易
边界表示
容易
困难
三维形体表示小结
边框模型:早期应用,现在很少单独使用
表面模型:影视、游戏、漫游…… 实体表示:CAD/CAE/CAM……
目 录
基本几何元素的表示
三维形体的表示 相关概念
拓扑信息+几何信息 正则几何运算
欧拉公式
小 结
几何信息与拓扑信息
A B A B
C A
线
面
三维形体
体是三维几何元素,
由封闭表面围成空间, 是欧式空间中非空、 有界的封闭子集;
其边界是有限面的集
合;
环
环是有序、有向边组
成的面的封闭边界;
外环:按逆时针排序 内环:按顺时针排序
环
属性:
有且仅有一个外环
0到n个内环
小测试:几维曲线?
目 录
基本几何元素的表示
非自交性
可定向性
封闭性
封闭性
正则集合运算
数学意义正确 实际意义不正确
A B
A
B
数学意义不正确 实际意义正确
开集、闭集、内点运算、闭包 运算、正则运算
内
点:具有完全包含 于该点集的充分小的领 域;i· A 的领域,都不完全包含 于该点集,但与点集的 交都不为空;
边界点:该点的任意小
第2讲:图形的表示
罗月童 合肥工业大学,VCC研究室
导论
图形的 表示
导论
数据结构
计算机图形学是运用计
float P[3]; 算机产生、存储、处理 物体的物理模型 更复杂、更一般 E S (Modelling)和它们的画 的问题….. float L[2][3]; 面(Rendering); struct Circle { 计算机图形学由数据结 float cen[3]; O r 构、图形算法和语言构 float radius; 成; }
点是形体中的最基本的
元素,自由曲线、曲面 或其他形体均可用有序 点集表示。
用计算机存储、管理、
输出形体的实质就是对 点集及其连接关系的管 理;
线、面
x x (t ) y y (t ) , t 0,1 z z (t ) x x (u , v ) u 0,1 y y (u , v) , z z (u , v) v 0,1
ABD CA B
BCD AD C
ACD BD D CD
BC A
边 表 A, B B, C C, A A, D B, C C, D
多边形表 ABC ABD BCD ACD AB, BC, AC AB, BD, AD BC, CD, BD AC, CD, AD
表示法
相关数据结构
边界表示法
线 性 表
顺序表
D B
C
D
几何信息:位置和大小 拓扑信息:几何元素的 多少和连接关系
C
D
拓扑信息
几何信息与拓扑信息
几何信息
几何信息与拓扑信息
刚性运动:在欧氏几
A B
何中,通常允许的运 动是刚性运动; 弹性运动:在拓扑关 系中,允许弹性运动; 拓扑等价:一个图形 作弹性运动可与另一 个图形重合。
D
拓 扑 等 价
边界表示
空间分割:枚举法
0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0
枚 举 表 示 法
空间分割:枚举法的变种
数据量大 数组
不同分辨率 八叉树
四(八)叉树
象限1 象限2 1 2 3 4 B B B B E B F B E B B B 象限4 (a) 象限3 E E F E F F F F (b) E E F E F F F E E F E E ...... B F F B
目 录
基本几何元素的表示
三维形体的表示 相关概念
拓扑信息+几何信息 正则几何运算
欧拉公式
小 结
基本图形元素与段的概念
点 线
环 体 面
基本几何元素的表示(数学意义上的)
点 线
环 体 面
点
0维几何元素
点
x x (t ) y y (t ) , t t0 z z (t )
A'
C
B'
D'
C'
理论和现 实体、正则集合运算、欧拉公式 实存在差 别
悬 面
电线
悬 边
一页纸
实体、正则集合运算、欧拉公式
悬 正则集合 面
有效的实体应该具备
运算
什么特性
怎样制造有效的实体
悬 边
怎样检查实体的有效
欧拉公式
性
实体的定义
刚性
维数一致性
连通性
有界性
体积有限
边界的确定性
三维形体的表示
线框模型
表面模型
实体模型
没有绝对的“好”与“坏”,但适用的场合不同
线框模型:顶点及边的集合
结构简单,易于处理!
缺点之一:存在视觉二义性
A
B
A和B,谁到你更近?
缺点之二:不能表示曲面
近似表示
顶点在哪?边在哪?
线框模型
采用顶点及边的集合来描述
优 点:
数据结构简单 处理容易
缺 点:
不能表示含有曲面的物体 点和边信息容易出现二义性
三维形体的表示
线框模型
表面模型
实体模型
没有绝对的“好”与“坏”,但适用的场合不同
表面模型:面的集合
4个平面
1个球面
表面模型:广泛应用
应用于“看看就够”的场合,如游戏、电影、漫 游等
表面模型:研究众多
模型化简
模型分割
模型变形
不仅仅为了“看看”
平面构成的实体; 属性:
E+F=2
用于判断实体的有效
一条边连接两个且仅 两个面; 实体表面必须是封闭 的 …
性