计算机图形学复习0
计算机图形学复习1
计算机图形学复习2
计算机图形学复习3
计算机图形学复习4
上面是总的内容总纲。
上次内容介绍到了图形的裁剪算法,包括点裁剪,直线裁剪,多边形裁剪,字符裁剪,本次内容介绍图形变换的矩阵方法。
图形变换的矩阵方法
图形变换是计算机图形学的基本内容之一,它是CAD系统必不可少的核心内容,也是实现动态仿真、虚拟现实的基础。
图形变换是指对图形的几何信息经过几何变换后产生新的图形。
图形变换可以看作是坐标系不动而图形变动,变动后的图形坐标系中的坐标值发生变化;也可以看作是图形不动而坐标系发生变化。
除图形的位置变动外,还可以将图形放大或缩小,甚至对图形作不同方向的拉伸来使其扭曲变形。通过图形变换可以把简单的图形生成复杂的图形,变换本身也是描述图形的有力工具。
复杂的图形往往由简单的图形变换(合理的组织进行空间变换)生成的;
三维图形可以通过投影转化为二维图形,由二维图形表示;
一个物体与一个平面形成一个关系,通过一个视点获取这个物体在这个平面上的投影从而形成立体显示效果;
静态图形通过快速的变换形成动态显示效果。
就是将指定的图案按照一定方法进行数学处理,使图形变换成自己想要的效果。
变换的数学基础
变换是在将图形作为矩阵,对矩阵进行变换也就是对图形进行了变换。
矢量运算
设有矢量V1(x1,y1,z1),V2(x1,y1,z1),则有关它们的
运算
矢量和:V1+V2=(x1+x2,y1+y2,z1+z2)
矢量的点积:V1·V2=x1x2+y1y2+z1z2
矢量的长度:| V1|=(x1x1+y1y2+z1z2)1/2
矢量的叉积:
矩阵基础知识
这是简单的线性代数或者高数知识,在后面图形的表示中需要用到。
矩阵的加法运算
数乘矩阵
矩阵的乘法运算
零矩阵运算
单位矩阵
矩阵逆运算
转置运算
矩阵的基本性质
窗口视图变换
如何进行投影?
生活中的类比—照相
拍摄过程
选景
取景--裁剪
对焦--参考点
按快门--成像
取景方式
移动景物
移动照相机
用户域和窗口区
用户域:程序员用来定义草图的整个自然空间(WD)
人们所要描述的图形均在用户域中定义。
用户域是一个实数域,理论上是连续无限的。
窗口区:用户在投影平面上指定的任一区域(W)
窗口区W小于或等于用户域WD
小于用户域的窗口区W叫做用户域的子域。
窗口可以有多种类型:矩形窗口,圆形窗口,多边形窗口等等
窗口可以嵌套,即在第一层窗口中可再定义第二层窗口,在第I层窗口中可再定义第I+1层窗口等等。
屏幕域和视图区
屏幕域:设备输出图形的最大区域,是有限的整数域.如图形显示器分辨率为
1024X768→DC[0…1023]X[0…767]
视图区:
视图区用设备坐标定义在屏幕域中
窗口区显示在视图区,需做窗口区到视图区的坐标转换
视图区可以有多种类型:圆形、矩形、多边形等
视图区也可以嵌套
窗口和视区:
窗口区和视图区的坐标变换
-
变换公式
设窗口的四条边界WXL,WXR,WYB,WYT,视图的四条边界VXL,VXR,VYB,VYT. 则用户坐标系下的点(Xw,Yw)(即窗口内的一点)对应屏幕视图区中的点(Xv,Yv)
窗口中的一点:
转换到视图中去:
则上面式子可以化简为:
当a不等于c时,即x 方向的变化与y方向的变化不同时,视图中的图形会有伸缩变化,图形变形。
当a=c=1,b=d=0则Xv=Xw,Yv=Yw,图形完全相同。 -
变换过程
窗口-视图二维变换
窗口-视图三维变换
例题:已知在用户域W中的窗口区有一直线A,如图(a)所示,求出该直线在屏幕域V中的视图区的坐标位置。
由上面提到的窗口视图变化的公式可得:
X1=50 +(20−10)(250−50)/(35−10)=130
y1=40 +(25−10)(200−40)/(30−10)=160
X2=50 +(30−10)(250−50)/(35−10)=210
Y2=40 +(20−10)(200−40)/(30−10)=120
因此该直线在屏幕域中的视图区的两端点坐标位置为(130,160)和(210,120).
图形的几何变换
图形的几何变换,是指使用户获得或设计的原始图形。按照需要产生大小、形状和位置的变化。
从图形类型来分,图形的几何变换有二维平面图形的几何变换和三维图形的几何变换以及由三维向二维平面投影变换等。
从变换的性质分, 图形的几何变换有平移、比例缩放、旋转、反射和错切等基本变换,透视变换等复合变换等。
齐次坐标
齐次坐标表示法: 用n+1维向量表示一个n维向量
(x,y)点对应的齐次坐标为(xh,yh,h),
其中xh=hx, yh=hy, h≠0. 当h=1, (x,y,1)被称为规范化齐次坐标
这样, (x,y)点对应的齐次坐标为三维空间的一条直线。
并且非齐次坐标表示法唯一,齐次坐标表示不唯一。
例如(h1x,h1y, h1z,h1)与(h2x,h2y, h2z,h2)表示三维坐标 (x,y,z)
如普通坐标系下的点(2,3)变换为齐次坐标可以是(1,1.5,0.5)(4,6,2)(6,9,3)等等。
因此,普通坐标与齐次坐标的关系为“一对多”。
那么用齐次坐标表示有什么好处呢?
- 将各种变换用阶数统一的矩阵来表示。提供了用矩阵运算把二维、三维甚至高维空间上的一个点从一个坐标系变换到另一坐标系的有效方法。
例如:
二维齐次坐标变换矩阵的形式是:
三维齐次坐标变换矩阵的形式是:
- 便于表示无穷远点。
例如: [x x h y x h h],当h=0时,表示无穷远点
x轴上的无穷大远点表示为[1,0,0]
y轴上的无穷大远点表示为[0,1,0]
变换具有统一表示形式的优点
便于变换合成
便于硬件实现
二维变换矩阵
设二维图形变换前坐标为(x,y,1),变换后为(x’,y’,1)
二维的变换矩阵:
注意:T2D可看作三个行向量,其中
[1 0 0]:表示x 轴上的无穷远点
[0 1 0]:表示y 轴上的无穷远点
[0 0 1]:表示原点
从变换功能上可把T2D分为四个子矩阵
四个子矩阵的含义
平移变换
平移变换只改变图形的位置,不改变图形的大小和形状 。
比例变换
以坐标原点为放缩参照点
当Sx=Sy=1时:恒等比例变换
当Sx=Sy>1时:沿x,y方向等比例放大
当Sx=Sy<1时:沿x,y方向等比例缩小
当Sx不等于Sy时:沿x,y方向作非均匀的比例变换,图形变形。
对称变换
当b=d=0, a=-1,e=1时,x'=-x, y' =y, 与y轴对称的反射变换
当b=d=0, a=1,e=-1时,x'=x, y' =-y,产生与x轴对称的反射变换
当b=d=0, a=e=-1时,x'=-x, y' =-y,产生与原点对称的反射变换
当b=d=1, a=e=0时,x'=y, y' =x,产生与y=x对称的反射变换
当b=d=-1, a=e=0时,x'=-y, y' =-x,产生与y=-x对称的反射变换
旋转变换
错切变换
(1)当d=0时, (x’ y’ 1)=(x+by y 1):图形的y坐标不变.
当b>0: 图形沿+x方向作错切位移, ABCD→A1B1C1D1
当b<0: 图形沿-x方向作错切位移, ABCD→ A2B2C2D2
(2)当b=0时, (x’ y’ 1)=(x dx+y 1):图形的x坐标不变.
当d>0: 图形沿+y方向作错切位移, ABCD→ A1B1C1D1
当d<0: 图形沿-y方向作错切位移, ABCD→ A2B2C2D2
(3)当b不等于0且d不等于0时, (x’ y’ 1)=(x+by dx+y 1), 图形沿x,y两个方向作错切位移.
因此,错切变换引起图形角度关系的改变,甚至导致图形发生变形
复合平移
例1:求点P(x,y)经第一次平移变换(Tx1,Ty1), 第二次平移变换(Tx2,Ty2)后的坐标P’(x’, y’)。
解:设点P(x,y,1)经第一次平移变换后的坐标为P‘(x’ y’ 1), 则
经第二次平移变换后的坐标为P*(x* y* 1).
变换矩阵为Tt=Tt1•Tt2
多种复合组合
例2: 对一线段先放大2倍(即Sx=Sy=2),再平移Tx=10, Ty=0。
解:设点(x,y)为线段上的任意一点,点(x’,y’)为点(x,y)放大后的坐标,点(x’’,y’’)为点(x’,y’)平移后的坐标,则:
对参考点 (xf,yf)做旋转变换
①把旋转中心F(xf,yf)平移至坐标原点,即坐标系平移(-xf,-yf),则
②进行旋转变换
③将坐标系平移回原来的原点
因此矩阵变换
任意反射轴的反射变换
①将坐标原点平移到(0,a)处
②将反射轴(已平移后的直线)按顺时针方向旋转θ角,使之与x轴重合
③图形关于x轴的反射变换
④将反射轴逆时针旋转θ角
⑤恢复反射轴的原始位置
因此
通用固定点的缩放
平移物体使固定点与坐标原点重合
对于坐标原点缩放
用步骤1的反向平移将物体移回原始位置
三维图形的矩阵变换
三维图形几何变换是在二维方法的基础上考虑了z坐标而得到的。
三维图形几何变换均中规定在右手坐标系进行。
三维图形几何变换矩阵如下:
左上角3×3子块可实现比例、 旋转、对称、错切四种基本变换。
左下角1×3子块可实现平移变换。
右上角3×1子块可实现投影变换。
右下角1×1子块可实现整体比例变换。
具体实现和二维相同,这里不在赘述。
投影变换
所谓投影变换是指把三维物体变成二维图形表示的过程,使其在二维平面上显示立体效果。
投影的分类
根据投影中心与投影平面之间距离的不同,投影可分为透视投影和平行投影. 透视投影的投影中心与投影面之间的距离是有限的;而平行投影,这距离为无穷大.
平行投影
点的平行投影
正平行投影(三视图)
投影方向垂直于投影平面
每个视图只反应两个坐标方向
问题:将物体投影到不同的平面上,那么如果将三视图投影到一个投影平面上(如XOY平面),发生如下操作:
(1)将物体进行几何变换
(2)将投影面进行几何变换
正视图
侧视图
俯视图
正轴测投影
三视图中每个视图只能反映三维形体中的两个坐标方向的实际长度,如果要在一个视图中反映形体的3个坐标方向形状,可采用正轴测投影,如图(a)的所示三维形体,生成三维形体正轴测投影图的变换过程如下。
(1)先将三维形体绕y轴旋转ϕ角,如图(b)所示;
(2) 再将三维形体绕x轴旋转θ角,如图©所示;
(3) 对三维形体作正投影变换,如图(d)所示;
(4) 对投影后的图形进行平移变换,如图(e)所示.
以上变换用齐次坐标及变换矩阵表示如下:
斜平行投影
投影方向不垂直于投影平面的平行投影称为斜平行投影,在斜平行投影中,投影平面一般取坐标平面。
透视投影
透视投影的投影线是从视点(投影中心)出发,视线是不平行的。透视投影可分为一点透视、二点透视和三点透视。如图所示:
透视的基本知识
透视投影是一种中心投影法,在日常生活中,我们观察外界的景物时,常会看到一些明显的透视现象。
如:我们站在笔直的大街上,向远处看去,会感到街上具有相同高度的路灯柱子,显得近处的高,远处的矮,越远越矮. 这些路灯柱子,即使它们之间的距离相等,但是视觉产生的效果则是近处的间隔显得大,远处的间隔显得小,越远越密;观察道路的宽度,也会感到越远越窄,最后汇聚于一点.
透视特点:产生近大远小的视觉效果,由它产生的图形深度感强,看起来更加真实。
灭点和主灭点
灭点(vanishing point)
不平行于投影平面的平行线,经过透视投影之后收敛于一点,称为灭点
灭点的个数无限
主灭点:平行于坐标轴的平行线的灭点。
一点透视:1个灭点
两点透视:2个灭点
三点透视:3个灭点
与Z轴平行的平行线垂直于投影平面XOY平面,当发生透视变换时,就不平行于Z轴了,相交于一点,称Z轴灭点。
一点透视
由相似三角形原理,得:x’/x=y’/y=h/h-z
所以:
x’=x/(1-z/h)
y’=y/(1-z/h)
z’=0
其中一点透视投影变换矩阵可表示为一点透视变换矩阵与正投影变换矩阵相乘:
例如:
当h= 600的时候
二点透视
三点透视
最后分享一些习题:
1【单选题】有一个二维图形变换矩阵:
则将产生变换的结果为( )
A、图形放大2倍
B、图形放大2倍,同时沿X、Y坐标轴方向各移动1个绘图单位.
C、沿X坐标轴方向各移动2个绘图单位
D、沿X坐标轴方向放大2倍,同时沿X、Y坐标轴方向各平移1个绘图单位.
正确答案:D
2【单选题】有如下二维图形变换矩阵:
则图形产生变换的结果为( )
窗体顶端
A、沿X坐标轴平移1个绘图单位,同时,沿Y坐标轴平移-1个绘图单位。
B、绕原点逆时针旋转90度
C、沿X坐标轴平移-1个绘图单位,同时,沿Y坐标轴平移1个绘图单位
D、绕原点顺时针旋转90度
正确答案:B
3【单选题】
下列哪个齐次坐标不是点P(3,2)的表示
A、(6,4,2)
B、(12,8,4)
C、(3,2,1)
D、(3,2,2)
窗体底端
正确答案:D
4【多选题】
采用齐次坐标表示图形变换的原因是( )
A、表示无穷远点
B、统一运算形式
C、增加物理坐标值
D、便于用矩阵实现图形变换
窗体底端
正确答案:ABD
5【多选题】
相对于参考点F作比例变换、旋转变换的过程可分为哪几步?( )
窗体顶端
A、把坐标系原点平移到参考点F
B、任意地放大
C、在新坐标系下相对原点作比例、旋转变换
D、将坐标系再平移回原点
正确答案:ACD
1 【判断题】
投影变换的一个重要性质是投影保持直线不变。( )
我的答案:√
2 【判断题】
在平面几何投影中,若投影中心移到距离投影面无穷远处,则成为平行投影。( )
我的答案:√
3 【判断题】
透视投影与平行投影相比,视觉效果更有真实感,而且能真实地反映物体的精确的尺寸和形状。( )
我的答案:× 更真实,但是近大远小,不能真实反应物体大小和尺寸。
4 【判断题】
透视投影变换中,一组平行线投影在与之平行的投影面上,可以产生灭点。( )
我的答案:×
5 【判断题】
透视投影的灭点可以有无限多个( )
我的答案:√
6 【判断题】
在三维空间中的物体进行透视投影变换,可能产生三个或者更多的主灭点。( )
我的答案:×
7 【判断题】
灭点可以看作是有限远处的一个点在投影面上的投影。( )
我的答案:×
8 【判断题】
平行于坐标轴的平行线在投影平面上形成的灭点称为主灭点,所以主灭点最多有3个。
我的答案:√
9 【判断题】
平行线本相交于无穷远处,但是当发生透视投影后,这组平行线不平行了且相交于灭点。
我的答案:√
10 【判断题】
根据主灭点的个数,透视投影可分为一点透视、两点透视和三点透视。
我的答案:√
名词解释:
齐次坐标表示法
答:用一个n+1维向量来表示n维的向量。
灭点
在透视投影中,不平行于投影面的平行线的投影会收敛到一个点,这个点称为灭点。
平行投影
平行投影的投影线是平行的,在同一时刻物体的影长与物高成正比。
简答题
为什么用齐次坐标表示非齐次坐标?
(1)齐次坐标可以表示无穷远点;(2)采用齐次坐标可以统一图形变换的运算形式。
透视现象的特点?列举出2例生活中的透视现象。
特点:透视现象有近大远小、近高远矮、近长远短、近宽远窄的现象。
如马路边上一排等高电线杆、一直延伸的等宽马路、隧道入口看隧道出口等。
已知三角形ABC各顶点的坐标A(1,2)、B(5,2)、C(3,5),相对直线Y=4做对称变换,
求变换矩阵M及变换后三角形的三个顶点的坐标值。
解释二维变换矩阵中各字符的含义。
本次分享就到这里。本次内容主要是二维的一个变换对矩阵处理的问题。