《计算机图形学》05 图形的几何变换解析

合集下载

计算机形学几何变换基础知识全面解析

计算机形学几何变换基础知识全面解析

计算机形学几何变换基础知识全面解析计算机形学几何变换是计算机图形学中一项非常重要的技术,它可以对图像进行平移、旋转、缩放等变换操作,从而实现图像的变形和动画效果。

本文将全面解析计算机形学几何变换的基础知识,包括变换的概念、常见的变换操作及其数学原理等内容。

一、概念介绍计算机形学几何变换是指通过一定的数学变换方法,改变图像或对象的形状、大小和位置。

常用的几何变换包括平移、旋转、缩放和错切等。

以下将逐个介绍这些变换操作的原理及应用。

二、平移变换平移变换是指将一个对象沿着指定方向平行移动一定的距离。

平移变换可以通过对对象中的每个顶点坐标进行相同平移量的加减操作来实现。

设对象的原始坐标为(x,y),平移量为(tx,ty),则平移变换后的新坐标为(x+tx,y+ty)。

三、旋转变换旋转变换是指将一个对象绕着指定的旋转中心点按照一定角度进行旋转。

旋转变换可以通过将对象中的每个顶点坐标绕旋转中心点进行相应角度的旋转来实现。

设对象的原始坐标为(x,y),旋转角度为θ,旋转中心点为(cx,cy),则旋转变换后的新坐标为:x' = (x-cx)*cosθ - (y-cy)*sinθ + cxy' = (x-cx)*sinθ + (y-cy)*cosθ + cy四、缩放变换缩放变换是指将一个对象的大小按照一定比例进行缩放。

缩放变换可以通过将对象中的每个顶点坐标按照指定比例进行缩放来实现。

设对象的原始坐标为(x,y),缩放比例为(sx,sy),缩放中心点为(cx,cy),则缩放变换后的新坐标为:x' = (x-cx)*sx + cxy' = (y-cy)*sy + cy五、错切变换错切变换是指将一个对象的各个顶点坐标按照一定的错切因子进行变换。

错切变换可以分为水平错切和垂直错切两种形式。

水平错切变换可以通过将对象中的每个顶点的y坐标按照指定的错切因子进行变换来实现;垂直错切变换则是将对象中的每个顶点的x坐标按照指定的错切因子进行变换。

几何变换的认识和基本原理

几何变换的认识和基本原理

几何变换的认识和基本原理几何变换是指通过对平面上的点、线、面进行位置、形状或尺寸上的改变,从而得到一个新的图形。

在计算机图形学和计算机视觉等领域,几何变换是非常重要的基础知识。

本文将介绍几何变换的认识和基本原理。

一、平移变换平移变换是指将一个图形沿着某个方向平行移动一定的距离。

平移变换可以用以下公式表示:[x', y'] = [x + dx, y + dy]其中,(x, y)是原始图形上的一个点,(dx, dy)是平移的距离,(x', y')是平移后得到的新点的坐标。

二、旋转变换旋转变换是指将一个图形绕着某个中心点按照一定的角度旋转。

旋转变换可以用以下公式表示:[x', y'] = [x*cosθ - y*sinθ, x*sinθ + y*cosθ]其中,(x, y)是原始图形上的一个点,θ是旋转的角度,(x', y')是旋转后得到的新点的坐标。

三、缩放变换缩放变换是指将一个图形按照一定的比例因子放大或缩小。

缩放变换可以用以下公式表示:[x', y'] = [s*x, s*y]其中,(x, y)是原始图形上的一个点,s是缩放的比例因子,(x', y')是缩放后得到的新点的坐标。

四、对称变换对称变换是指将一个图形关于某一直线或某一点进行对称。

对称变换可以分为关于x轴对称、关于y轴对称、关于原点对称等。

不同类型的对称变换具体的公式略有不同,但原理都是将图形上的点映射到其关于对称轴的对称位置。

五、仿射变换仿射变换是指将一个图形通过平移、旋转和缩放等基本变换来进行综合变换。

仿射变换可以用以下矩阵表示:[x', y'] = [a*x + b*y + c, d*x + e*y + f]其中,a、b、c、d、e、f为变换矩阵中的参数,(x, y)是原始图形上的一个点,(x', y')是变换后得到的新点的坐标。

图形的几何变换

图形的几何变换

图形的几何变换图形的几何变换是指对于一个图形,在平面上或空间中进行比例、旋转、平移、对称等操作后,得到的新图形。

这种操作可以改变图形的大小、方向、位置等特征,广泛运用于数学、物理、美术、计算机图形等领域。

以下从不同变换类型的角度分析图形的几何变换。

一、比例变换比例变换是指将一个图形沿着某个中心点或轴线进行等比例伸缩的变换。

其结果通常是一个形状相似但大小不同的新图形。

比例变换可以分为放大和缩小两种情况,当比例因子大于1时,为放大;比例因子小于1时,为缩小。

比例变换常见的应用包括模型制作、图形的等比例缩放等。

二、旋转变换旋转变换是指将一个图形沿着某个轴心或轴线进行旋转的变换。

旋转变换可分为顺时针旋转和逆时针旋转两种情况,其结果是一个相似但方向不同的新图形。

旋转变换的角度通常用弧度制表示,旋转角度为正时为逆时针旋转,为负时为顺时针旋转,常见的应用包括风车的运动、建筑设计的转角变换等。

三、平移变换平移变换又叫做移动变换,是指将一个图形沿着某个方向进行平移的变换。

平移变换可以将图形整体沿着平移向量的方向进行移动,其结果是一个与原图形相同但位置不同的新图形。

平移变换常见的应用包括机器人的运动、物体的位移等。

平移变换也可以看作是比例变换的特殊情况,比例因子为1,即不改变图形的大小。

四、对称变换对称变换是指将一个图形沿着某个轴线进行翻折的操作。

对称变换可以分为对称、反对称和正交对称三种类型。

对称变换的结果通常是一个与原图形相等但位置镜像对称的新图形。

对称变换在分形几何、美术设计等领域都有着广泛的应用。

五、仿射变换仿射变换是指图形在平面上或空间中进行非等比例伸缩、旋转、平移和投影等操作时的变换。

仿射变换的结果通常是一个与原图形相似但有略微变形的新图形。

仿射变换包括平移变换、旋转变换、比例变换和剪切变换等。

其应用领域包括医学图像处理、计算机图形学等。

总结图形的几何变换在现代科技和艺术中有着广泛的应用。

比例变换常用于造型、模型制作和图形的等比例缩放;旋转变换常用于旋转花纹、风车运动、建筑转角的变化等;平移变换常用于运动控制、物体的位移等;对称变换常用于几何分形、美术设计等领域;仿射变换则是结合了以上变换操作的高级变换,其应用范围更加广泛。

计算机形学中的几何变换与投影技术

计算机形学中的几何变换与投影技术

计算机形学中的几何变换与投影技术计算机形学是计算机科学与计算机图形学中重要的一个领域,它研究如何在计算机上对图形进行表示、创建、编辑和呈现。

其中,几何变换和投影技术是计算机形学中常用且核心的技术之一,它们在计算机图形学领域中被广泛应用。

一、几何变换在计算机图形学中,几何变换是指对图形进行平移、旋转、缩放和扭曲等操作,从而改变图形的位置、形状和大小,以满足特定需求。

1. 平移变换平移变换是对图形进行沿着指定方向和距离的移动。

在二维空间中,平移变换可以表示为:x' = x + dxy' = y + dy其中,(x', y')是平移后的坐标,(x, y)是原始坐标,(dx, dy)是平移的向量。

2. 旋转变换旋转变换是对图形进行绕指定点或绕原点的旋转操作。

在二维空间中,旋转变换可以表示为:x' = x * cosθ - y * sinθy' = x * sinθ + y * cosθ其中,(x', y')是旋转后的坐标,(x, y)是原始坐标,θ是旋转角度。

3. 缩放变换缩放变换是对图形进行放大或缩小的操作。

在二维空间中,缩放变换可以表示为:x' = x * sxy' = y * sy其中,(x', y')是缩放后的坐标,(x, y)是原始坐标,(sx, sy)是缩放因子。

4. 扭曲变换扭曲变换是对图形进行形状的变换,使得某些部分被拉伸或收缩。

扭曲变换可以通过矩阵运算进行表示,具体操作较为复杂。

二、投影技术在计算机图形学中,投影技术是指将三维空间中的图形映射到二维平面上的过程。

常见的投影技术包括平行投影和透视投影。

1. 平行投影平行投影是一种保持图形中平行线在投影后保持平行的投影方式。

在三维空间中,平行投影可以表示为:x' = xy' = y其中,(x', y')是投影平面上的坐标,(x, y)是三维空间中的坐标。

计算机图形学第五章图形变换

计算机图形学第五章图形变换

第五章图形变换重 点:掌握二维几何变换、二维观察变换、三维几何变换以及三维观察变换。

难 点:理解常用的平移、比例、旋转变换,特别是复合变换。

课时安排:授课4学时。

图形变换包括二维几何变换, 二维观察变换,三维几何变换和三维观察变换。

为了能使各种几何变换(平移、旋转、比例等)以相同的矩阵形式表示,从而统一使用矩阵乘法运算来实现变 换的组合,现都采用齐次坐标系来表示各种变换。

有齐次坐标系齐次坐标系:n 维空间中的物体可用 n+1维齐次坐标空间来表示。

例如二维空间直线 ax+by+c=O ,在齐次空间成为 aX+bY+cW=0 ,以X 、Y 和W 为三维变量,构成没有常数项的 三维平面(因此得名齐次空间)。

点P (x 、y )在齐次坐标系中用P (wx,wy,w )表示,其中 W 是不为零的比例系数。

所以从 n 维的通常空间到 n+1维的齐次空间变换是一到多的变换,而其反变换 是多到一的变换。

例如齐次空间点P (X 、Y 、W )对应的笛卡尔坐标是 x=X/W 和y=Y/W 。

将通一地用矩阵乘法来实现变换的组合。

常笛卡尔坐标用齐次坐标表示时, W 的值取1。

采用齐次坐标系可以将平移、比例、旋转这三种基本变换都以相同的矩阵形式来表示,并统齐次坐标系在三维透视变换中有更重要的作用, 示形它使非线形变换也能采用线形变换的矩阵表式。

图形变换平移变换图示如图所示,它使图形移动位置。

新图 p'的每一图元点是原图形 p 中每个图元点在向分别移动Tx 和Ty 产生,所以对应点之间的坐标值满足关系式x'=x+Tx y'=y+Ty可利用矩阵形式表示成:[x' y' ] = : x y ] + : Tx Ty ]简记为:P'= P+T , T= : Tx Ty ]是平移变换矩阵(行向量)二堆几何变换1 1二维观察变換三维几诃变换平移变换 比例变换 陡转变换 对称变换 错切变换 仿肘变换 复合变换平移变换 比例变换 旋转变换 绕空间任意轴離转 对称变换 蜡切变换三维观察变5.1二维几何变换二维几何变换就是在平面上对二维点的坐标进行变换,从而形成新的坐标。

计算机图形学之图形变换

计算机图形学之图形变换

4 T
3
2 p
1
0
012 34 567 8
线段和多边形的平移可以通过顶点的
平移来实现。同样线段和多边形的其它几 何变换也可以通过对顶点的几何变换来实 现。
2. 旋转变换(Rotation) 二维旋转有两个参数:
旋转中心: 旋转角:

6 P’
5
4
3
P
2
1
0
012 34 567 8
设OP与x轴的夹角为 则:
由于采用齐次坐标矩阵表示几何变换, 多个变换的序列相应地可以用矩阵链乘来表 示。
需要注意:先作用的变换其矩阵在右边, 后作用的变换其矩阵在左边。
变换函数
平移变换 void glTanslate{fd}(TYPE x, TYPE y, TYPE z);
旋转变换 void glRotate{fd}(TYPE angle, TYPE x, TYPE y, TYPE z); 绕矢量v=(x,y,z)T逆时针方向旋转angle指定的角度。 旋转角度的范围是0~360度。当angle=0时, glRotate()不起作用。
二维旋转有两个参数: 旋转中心: 旋转角:
上述变换可以分解为三个基本变换:
•平移:
•旋转:
•平移: 回原位。
使旋转中心移到坐标原点; 使旋转中心再移
二维旋转有两个参数: 旋转中心: 旋转角:
因此上述变换可以写成矩阵乘积形式:
4. 5 基本三维几何变换(Basic three-dimensional geometric transformation)
1. 矩阵表示(Matrix representation) 前面三种变换都可以表示为如下的矩
阵形式

计算机图形学第5章几何变换

计算机图形学第5章几何变换

北大计算机系多媒体与人机交互
33
5.9 三维空间的几何变换
❖ 三维奇次坐标
(x,y,z)点对应的齐次坐标为
(xh,yh,zh,h)
标准齐次坐标(x,y,z,1)
❖ 右手坐标系
北大计算机系多媒体与人机交互
34
第五章 几何变换
❖ 5.1 基本的二维几何变换 ❖ 5.2 矩阵表示和齐次坐标 ❖ 5.3 逆变换 ❖ 5.4 二维复合变换 ❖ 5.5 其它二维变换 ❖ 5.6 几何变换的光栅方法 ❖ 5.7 二维坐标系间的变换
❖问题:如何实现复杂变换?
变换分解
变换合成
❖关于任意参照点 Pr(xr,的yr)旋转变换
北大计算机系多媒体与人机交互
15
5.4 二维复合变换
❖关于任意参照点 Pr(xr,的yr)放缩变换
北大计算机系多媒体与人机交互
16
5.4 二维复合变换
❖变换的结果与变换的顺序有关
矩阵乘法 不可交换!
Translate2D(1,0); Rotate2D(45);
北大计算机系多媒体与人机交互
y
(0,3/2)
(0,1/2)
xref=-1
(1,2) (1,1)
x
25
第五章 几何变换
❖ 5.1 基本的二维几何变换 ❖ 5.2 矩阵表示和齐次坐标 ❖ 5.3 逆变换 ❖ 5.4 二维复合变换 ❖ 5.5 其它二维变换 ❖ 5.6 几何变换的光栅方法 ❖ 5.7 二维坐标系间的变换
❖ 为什么需要齐次坐标?
多个变换作用于多个目标
变换合成 变换合成的问题 引入齐次坐标
P’=T.P P’=S·P P’=R·P
变换的表示法统一
北大计算机系多媒体与人机交互

计算机图形学第讲图形变换详解演示文稿

计算机图形学第讲图形变换详解演示文稿
图形的拓扑关系不变
3
第3页,共46页。
本讲内容
齐次坐标表示法
常见的二维图形几何变换
平移变换 比例变换 旋转变换 对称变换 错切变换
变换矩阵的功能分区 图形的复合变换
4
第4页,共46页。
齐次坐标表示法
将一个原本是n维的向量用一个n+1维向量表示
(x1, x2 ,..., xn )
a
1
0
y
y
ax
1 0 0 1 1 1
➢ 简写为: p = Tp
x
26
第26页,共46页。
本讲内容
齐次坐标表示法 常见的二维图形几何变换
平移变换 比例变换 旋转变换 对称变换 错切变换
变换矩阵的功能分区
图形的复合变换
27
第27页,共46页。
变换矩阵的功能分区
变换矩阵可用3×3矩阵来描述
连续平移变换
得到连续平移变换的复合矩阵T为:
1 0 tx2 1 0 tx1 1 0 tx2 tx1
T T2T1 0
1
t
y
2
0
1
t
y1
0
1
tx
2
t
y1
0 0 1 0 0 1 0 0 1
即连续的平移变换是平移量的相加
37
第37页,共46页。
连续比例变换
设点P(x,y)经过第一次比例变换T1(Sx1,Sy1)和第二次比 例变换T2(Sx2,Sy2)后的坐标为P'' (x'',y'')
y
'
y
Ty
0
1
Ty
y
1 1 0 0 1 1

计算机形学中的几何变换与投影算法基础

计算机形学中的几何变换与投影算法基础

计算机形学中的几何变换与投影算法基础在计算机图形学中,几何变换与投影算法是实现三维对象表示、变换和可视化的基础。

通过对三维空间中的对象进行变换和投影,可以将其呈现在二维平面上,从而实现更直观的可视化效果。

本文将介绍计算机形学中的几何变换和投影算法的基本概念和应用。

一、几何变换几何变换是指通过对三维对象进行平移、旋转、缩放等操作,改变其在空间中的位置和形状。

在计算机图形学中,常用的几何变换包括平移、旋转、缩放和剪切。

1. 平移平移是指将对象沿着指定方向移动一定的距离。

在计算机图形学中,平移变换可以通过将对象的每个顶点坐标增加一个平移向量来实现。

平移变换公式如下:[x'] = [1 0 0 tx] [x][y'] [0 1 0 ty] [y][z'] [0 0 1 tz] [z][1 ] [0 0 0 1] [1]其中,(tx, ty, tz)表示平移向量。

通过对对象的每个顶点应用上述变换矩阵,可以实现平移效果。

2. 旋转旋转是指将对象绕指定轴进行旋转。

在计算机图形学中,常用的旋转有绕X轴、Y轴和Z轴旋转。

旋转变换可以通过将对象的每个顶点坐标乘以一个旋转矩阵来实现。

旋转变换矩阵的形式如下:[x'] = [1 0 0 0] [x][y'] [0 cosθ -sinθ 0] [y][z'] [0 sinθ cosθ 0] [z][1 ] [0 0 0 1] [1]其中,θ表示旋转角度。

通过对对象的每个顶点应用上述变换矩阵,可以实现旋转效果。

3. 缩放缩放是指改变对象的尺寸大小。

在计算机图形学中,缩放变换可以通过将对象的每个顶点坐标乘以一个缩放因子来实现。

缩放因子分别作用于X、Y和Z轴的坐标,从而改变对象在各个轴上的尺寸。

缩放变换公式如下:[x'] = [sx 0 0 0] [x][y'] [0 sy 0 0] [y][z'] [0 0 sz 0] [z][1 ] [0 0 0 1] [1]其中,(sx, sy, sz)表示缩放因子。

几何变换的基本概念与操作

几何变换的基本概念与操作

几何变换的基本概念与操作几何变换是计算机图形学中的重要概念,它可以将一个图形对象从一个位置、方向或大小变换到另一个位置、方向或大小,通过不同的变换操作,可以实现各种形状和位置的变化。

本文将介绍几何变换的基本概念和操作,包括平移、旋转、缩放和反射四种变换。

一、平移平移是指将图形对象按照指定的向量在平面内沿着直线移动,其作用是改变图形对象的位置而不改变其形状和大小。

平移操作可以用一个向量表示,向量的坐标分别表示在x轴和y轴方向上的移动距离。

平移操作的数学表达式如下:```P' = P + T```其中,P表示原始点的坐标,P'表示平移后点的坐标,T表示平移向量的坐标。

二、旋转旋转是指将图形对象按照指定的角度围绕一个中心点旋转,其作用是改变图形对象的方向而不改变其形状和大小。

旋转操作可以用一个角度表示,角度的正负决定了旋转的方向。

旋转操作的数学表达式如下:P' = R * P```其中,P表示原始点的坐标,P'表示旋转后点的坐标,R表示旋转矩阵。

三、缩放缩放是指将图形对象按照指定的比例在水平和垂直方向上进行放大或缩小,其作用是改变图形对象的大小而不改变其形状。

缩放操作可以用一个缩放因子表示,缩放因子大于1表示放大,缩放因子小于1表示缩小。

缩放操作的数学表达式如下:```P' = S * P```其中,P表示原始点的坐标,P'表示缩放后点的坐标,S表示缩放矩阵。

四、反射反射是指将图形对象按照指定的轴线进行镜像翻转,其作用是改变图形对象的位置和方向而不改变其形状和大小。

反射操作可以用一个轴线表示,轴线可以是水平、垂直或任意一条直线。

反射操作的数学表达式如下:P' = M * P```其中,P表示原始点的坐标,P'表示反射后点的坐标,M表示反射矩阵。

综上所述,几何变换是计算机图形学中的重要概念,通过平移、旋转、缩放和反射四种基本操作,可以实现对图形对象的位置、方向和大小的变化。

计算机图形学几何变换课件

计算机图形学几何变换课件

• 平移变换可以用矩阵表示,对于二维平移变换, 矩阵为
平移变换
``` 1 0 tx
0 1 ty
平移变换
``` 其中tx和ty分别表示在x和y轴上的平移距离。对于三维平移变换,矩阵为
平移变换
1 2 3
平移变换
平移变换
```
其中tx、ty和tz分别表示在x、y和z轴上的平移距离。
缩放变换
缩放变换
缩放变换
``` s00 0s0
缩放变换
缩放变换
缩放变换
01 02 03
缩放变换
缩放变换
其中s1、s2和s3分别表示在x、y和z轴 上的缩放比例。
旋转变换
旋转变换
旋转变换
旋转变换
旋转变换
旋转变换
旋转变换
旋转变换
齐次坐标和矩阵表示
03
非线性几何变换
CHAPTER
仿射变换
OpenGL或其他图形库的应用
01
OpenGL
02
DirectX
03
Unity3D
06
课程总结与展望
CHAPTER
本课程的主要内容回顾
矩阵表示法
投影变换
几何变换基础
组合变换
仿射变换
计算机图形学几何变换的未来发展
实时渲染技术 虚拟现实与增强现实 人工智能与几何变换
学生如何进一步深入学习计算机图形学
计算机图形学几何变 换课 件
contents
目录
• 引言 • 线性几何变换 • 非线性几何变换 • 组合几何变换 • 几何变换的计算机实现 • 课程总结与展望
01
引言
CHAPTER
计算机图形学的定义
计算机图形学

计算机图形学实验五:图形变换

计算机图形学实验五:图形变换

贵州大学实验报告学院:计算机科学与技术专业:计算机科学与技术班级:计科131实验内容#include"stdafx.h"#include<glut.h>#include<stdlib.h>#include<math.h>GLsizei winWidth = 600, winHeight = 600;GLfloat xwcMin = 0.0, xwcMax = 225.0;GLfloat ywcMin = 0.0, ywcMax = 225.0;class wcPt2D{public:GLfloat x, y;};typedef GLfloat Matrix3x3[3][3];Matrix3x3 matComposite;const GLdouble pi = 3.14159;void init(void){glClearColor(1.0, 1.0, 1.0, 0.0);}void matrix3x3SetIdentity(Matrix3x3matIdent3x3){GLint row, col;for (row = 0; row<3; row++)for (col = 0; col<3; col++)matIdent3x3[row][col] = (row == col);//生成{{1,0,0}{0,1,0}{0,0,1}}}void matrix3x3PreMultiply(Matrix3x3m1, Matrix3x3m2){GLint row, col;Matrix3x3 matTemp;for (row = 0; row<3; row++)for (col = 0; col<3; col++)matTemp[row][col] = m1[row][0] * m2[0][col] + m1[row][1] * m2[1][col] + m1[row][2] * m2[2][col];for (row = 0; row<3; row++)for (col = 0; col<3; col++)m2[row][col] = matTemp[row][col];}void translate2D(GLfloat tx, GLfloat ty)//平移{Matrix3x3 matTransl;matrix3x3SetIdentity(matTransl);matTransl[0][2] = tx;matTransl[1][2] = ty;matrix3x3PreMultiply(matTransl, matComposite);}void rotate2D(wcPt2D pivotPt, GLfloat theta)//旋转{Matrix3x3 matRot;matrix3x3SetIdentity(matRot);matRot[0][0] = cos(theta);matRot[0][1] = -sin(theta);matRot[0][2] = pivotPt.x*(1 - cos(theta)) + pivotPt.y*sin(theta);matRot[1][0] = sin(theta);matRot[1][1] = cos(theta);matRot[31][2] = pivotPt.x*(1 - cos(theta)) - pivotPt.y*sin(theta);matrix3x3PreMultiply(matRot, matComposite);}void scale2D(GLfloat sx, GLfloat sy, wcPt2D fixedPt)//缩放{Matrix3x3 matScale;matrix3x3SetIdentity(matScale);matScale[0][0] = sx;matScale[0][2] = (1 - sx)*fixedPt.x;matScale[1][1] = sy;matScale[1][2] = (1 - sy)*fixedPt.y;matrix3x3PreMultiply(matScale, matComposite);}void transformVerts2D(GLint nVerts, wcPt2D * verts)//组合变化后的矩阵{GLint k;GLfloat temp;for (k = 0; k<nVerts; k++){temp = matComposite[0][0] * verts[k].x + matComposite[0][1] * verts[k].y + matComposite[0][2];verts[k].y = matComposite[1][0] * verts[k].x + matComposite[1][1] *verts[k].y + matComposite[1][2];verts[k].x = temp;}}void triangle(wcPt2D*verts){GLint k;glBegin(GL_TRIANGLES);for (k = 0; k<3; k++)glVertex2f(verts[k].x, verts[k].y);glEnd();}void displayFcn(void){GLint nVerts = 3;wcPt2D verts[3] = { { 50.0, 25.0 }, { 150.0, 25.0 }, { 100.0, 100.0 } };wcPt2D centroidPt;GLint k, xSum = 0, ySum = 0;for (k = 0; k<nVerts; k++){xSum += verts[k].x;ySum += verts[k].y;}centroidPt.x = GLfloat(xSum) / GLfloat(nVerts);centroidPt.y = GLfloat(ySum) / GLfloat(nVerts);wcPt2D pivPt, fixedPt;pivPt = centroidPt;fixedPt = centroidPt;GLfloat tx = 0.0, ty = 100.0;GLfloat sx = 0.5, sy = 0.5;GLdouble theta = pi / 2.0;glClear(GL_COLOR_BUFFER_BIT);glColor3f(0.0, 0.0, 1.0);triangle(verts);//三角形matrix3x3SetIdentity(matComposite);scale2D(sx, sy, fixedPt);//缩小transformVerts2D(nVerts, verts);glColor3f(1.0, 0.0, 0.0);triangle(verts);matrix3x3SetIdentity(matComposite);rotate2D(pivPt, theta);//旋转90transformVerts2D(nVerts, verts);glColor3f(1.0, 0.0, 0.0);triangle(verts);matrix3x3SetIdentity(matComposite);translate2D(tx, ty);//平移transformVerts2D(nVerts, verts);glColor3f(1.0, 0.0, 0.0);实验结果。

计算机图形学实用教程第5章 图形变换与裁剪1

计算机图形学实用教程第5章 图形变换与裁剪1
v yt v yb wyt wyb ( yw wyb ) v yb
(x w , y w)
yb
yv
Ow Yu
W xl 视图区
W xr
Xw
令பைடு நூலகம்
V yt
(x v , y v)
V yb

xv axw c
yv byw d
Ou
V xl
V xr
Xu
窗口与视图区的对应关系
本章内容
5.基本几何变换的齐次坐标表示
平移变换
1 y 1 0 Tx 0 1 Ty 0 0 1
x
比例变换
y 1 x
x
旋转变换
逆时针为正
y 1 x
S x y 1 0 0
0 Sy 0
0 0 1
x
y 1 x
cos sin 0 y 1 sin cos 0 0 1 0
当 S x S y时,变换前的图形与变换后的图形相似 当 S x S y 1时,图形将放大,并远离坐标原点 当 0 S x S y 1 时,图形将缩小,并靠近坐标原点 当 S x S y时,图形将发生畸变
3.旋转变换(rotation) 点P绕原点逆时针转θ度角 (设逆时针旋转方向为正方向)
指相对于原点的比例变换
S x 平行于x轴的方向上的缩放量 S y 平行于y轴的方向上的缩放量
x
y
几何关系
x' x S x y' y S y
y
相对于原点的比例变换
重心
矩阵形式
x
y x
S x y 0
0 Sy

计算机图形学第5章图形几何变换

计算机图形学第5章图形几何变换
计算机图形学
二维基本变换-错切变换
a 人们所要描述的图形均在用户域中定义。 b 用户域是一个实数域,理论上是连续无限的。
2. 窗口区:用户指定的任一区域(W) a 窗口区W小于或等于用户域WD b 小于用户域的窗口区W叫做用户域的子域。
c 窗口可以有多种类型,矩形窗口、圆形窗口、多边形窗口 等等 d 窗口可以嵌套,即在第一层窗口中可再定义第二层窗口, 在第I层窗口中可再定义第I+1层窗口等等。
(c f ):对图形进行平移变换 。
⎜⎜⎝⎛
g h
⎟⎟⎠⎞:对图形做投影变换。
g:在x = 1 处产生一个灭点。 g
h:在x = 1 处产生一个灭点。 h
(i):对整体图形进行伸缩 变换。
∵ (x *
y * 1) = (x
y
1)⎜⎜⎛
1 0
0 1
0 ⎟⎞ 0⎟
⎜⎝ 0 0 i ⎟⎠
计算机∴图若形i学> 1,则总体缩小;否则,总 体放大。
把用户坐标系与设备坐标系联系起来; 可由简单图形生成复杂图形; 可用二维图形表示三维形体; 动态显示。
计算机图形学
二维图形的显示流程图
计算机图形学
图形的几何变换
图形变换:对图形的几何信息经过几何变换后产 生新的图形。
图形变换的两种形式: 1.图形不变,坐标系改变; 2.图形改变,坐标系不变。
二维基本变换-对称变换
(x *
y * 1) = (x
y
1)⎜⎜⎛
a b
d e
0 0
⎟⎞ ⎟
=
(ax
+
by
dx + ey
1)
⎜⎝ 0 0 1⎟⎠
当b=d=0,a=-1,e=1时,(x* y* 1)=(-x y 1):与y轴对称的反射变换 。

计算机图形学-几何变换

计算机图形学-几何变换

0
vy
h 2
0
0
1
0
0 0 0 1
几何变换
局部坐标系
模型变换
世界坐标系
视点变换
眼睛坐标系
屏幕坐标系
投影变换
窗口变换
图像坐标系
屏幕坐标系
投影变换
窗口变换
图像坐标系
4、 窗口变换
物体模型经过投影变换后变成二维图像,需要进一步映射到屏幕上的 窗口进行显示,这个过程就是窗口变换。
4、 窗口变换
左下顶点是 (vx , vy ) ,宽和高分别是 w 和 h,窗口变换的矩阵形式如下所示
w
2
0
0
vx
w 2
Vi 2 s
0
h 2
x ' 2 0 0 0 1 2
y
'
0
3
0
0 1 = 3
z ' 0 0 4 0 1 4
1
0
0
0
1 1 1
p ' (2, 3, 4)
2、 视点变换
局部坐标系
模型变换
世界坐标系
视点变换
眼睛坐标系
屏幕坐标系
投影变换
窗口变换
图像坐标系
2、 视点变换
人借助眼睛所观看到的三维世界中的物体,是在确定人眼位置、方向 和视场范围内形成的视网膜投影成像。因此,三维图形在转换为二维 图像显示时,也需要将场景中的物体模型转换到以人眼为中心的坐标 系下进行表示,这就是视点变换。
正视投影保持物体的有关比例不变,这是三维绘图中产生比例图画的方法。物体的 各个面的精确视图可以由平行投影得到。
透视投影不保持相关比例,但能够生成真实感视图。对同样大小的物体,离投影面 较远的物体比离投影面较近物体的投影图象要小,产生近大远小的效果
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

o
x
o
T1 = 1 0 0 0 1 0 C/A 0 1
x
o
T2=
x
cosα -sinα 0 sinα cosα 0
0
0
1
y
y
y
o
T3 = 1 0 0 0 -1 0 0 0 1
x
o
x
o
T5=
x
1 0 0 0 1 0 -C/A 0 1
cosα sinα 0 T4 = -sinα cosα 0 0 0
1
组合变换矩阵为: cos2α sin2α T =T1×T2×T3×T4×T5= sin2α -cos2α (cos2α-1)C/A sin2α*C/A 0 0 1
原图形上的任意一点 P(x,y) 对该直线的对称变换都可用下
式实现 : [x* y* 1]=[x y 1]· T
5.3 三维图形变换
三维变换矩阵可表示为: T= a d g l b e h m c p f q i r n s
h),h是任一不为0的比例系数。 给定一个点的齐次坐标表示 : (x,y,h), 该点的二维笛卡儿直角坐标: (x / h,y / h)。 同样,对于一个三维空间的向量(x,y,z), 它在四维空间 中对应的向量即齐次坐标为 (x×h ,y×h , z×h , h) ,其中 h≠0 。 齐次坐标的概念可以推广到 n 维空间的向量。齐次坐标的 表示不是唯一的,通常当h=1时,称为规格化齐次坐标。
5.2 二维图形变换
采用齐次坐标可将二维图形变换表示成如下形式: a d 0 [ x* y* 1 ] = [ x y 1 ] b e 0 c f 1 P*
变换后的 顶点坐标
=
P
变换前的 顶点坐标

M
二维变换矩阵
二维变换矩阵中: a b [c d e f] 是对图形进行缩放、旋转、对称、错切等变换。 是对图形进行平移变换
y z o x
好比照相时选择拍摄的位置和方向。
左手笛卡儿坐标系(上图):观察坐标 系的原点通常设置在观察点(视点),Z轴作 为观察方向。 右手笛卡儿坐标系:视点确定在Z轴
视点
y
上的某一个位置,Z轴仍为观察方向(下图)。
o
视点
x z
3. 设备坐标系(Device Coordinates) 与图形设备相关连的坐标系叫设备坐标系。 例如,显示器以分辨率确定坐标单位,原点在左下角或左
二维图形变换中要注意的几个问题: 1. 旋转变换中角度正负的确定: 逆时针旋转为正,顺时针旋转为负。
2. 对称变换是相对于:X轴、 Y轴、坐标原点、直线 y = x 和
直线 y = – x 3. 弄清错切变换前后的关系: 沿 X 轴方向关于 Y 的错切----- y 坐标不变,而 x 坐标与 原坐标值( x , y )及变换矩阵中的 b 有关,即 x* = x + by 沿 Y 轴方向关于 X 的错切----- x 坐标不变,而 y 坐标与 原坐标值( x , y )及变换矩阵中的 d 有关,即 y* = y + dx 并且,当 b (或 d ) > 0 时,图形沿 X (或 Y )正向错切;
一. 几种坐标系
1. 世界坐标系(World Coordinates) 为了描述被处理的对象,要在对象所在 的空间被处理对象
的描述,这个坐标系通常就称之为世界坐标 系或用户坐标系。世界坐标系一般采用右手 三维笛卡儿坐标系。 x
z
o
y
2. 观察坐标系(View Coordinates) 产生三维物体的视图,必须规定观 察点(视点)和观察方向。
当 b (或 d ) < 0 时,图形沿 X (或 Y )负向错切。
4. 二维图形的级联(组合)变换 对于复杂的图形变换,需要通过若干个变换矩阵的级联才 能实现。这里特别要注意的是矩阵级联的顺序,由于矩阵的乘 法运算不适用交换率,因此矩阵级联的顺序不同所得到的变换 结果也不相同。 例如:对任意直线的对称变换(直线方程为 Ax + By + C = 0) y y y
二. 图形变换的过程
建立物体的
变换到
在VC空间 进行裁剪
WC
VC
投影到 NDC
变换到 DC
在图形设备 上输出
三. 图形变换的特点 图形变换就是改变图形的几何关系,即改变图形顶点的坐 标,但图形的拓扑关系不变。 最基本的图形变换可以分别用矩阵形式表示为:
平移变换 P′=P+Tm
Tm=[Mx My] Mx、My分别为X方 向和Y方向的平移量。 Sx 0 Ts= 0 Sy Sx、Sy分别表示比例因子。
第五章
图形的几何变换
5.1 概述
为了使被显示的对象数字化,通常是采用适当的坐标系 耒描述被处理的对象。图形和数字之间的联系也就是通过坐 标建立起来的。因此,所谓图形的几何变换实质上就是图形 的坐标变换。 图形 坐 标 数字化
几何变换,投影变换,视窗变换 线性变换,属性不变,拓扑关系不变。 作用: 把用户坐标系与设备坐标系联系起来; 可由简单图形生成复杂图形; 可用二维图形表示三维形体; 动态显示。
cosθ sinθ Tr= -sinθ cosθ θ>0时为逆时针旋转 θ<0时为顺时针旋转
比例变换 P′=P×Ts
旋转变换 P'=P×Tr
四. 齐次坐标 从形式上来说,用一个有n+1个分量的向量去表示一个有n 个分量的向量的方法称为齐次坐标表示。
例如二维平面上的点(x,y)的齐次坐标表示为(h×x,h×y,
上角;绘图机绘图平面以绘图精度确定坐标单位,原点一般在
左下角。
4. 规格化设备坐标系(Normal Device Coordinates)
为了使图形处理过程做到与设备无关,通常采用一种虚拟 设备的方法来处理,也就是图形处理的结果是按照一种虚拟设 备的坐标规定耒输出的。这种设备坐标规定为 0≤X≤1 , 0≤Y≤1 , 这种坐标系称之为规格化设备坐标系。
其中: a b c d e f 产生比例、错切、镜象和旋转等基本变换。 g h i
[ l m n] 产生沿x、y、z三轴方向上的平移变换。 p q r [s] 产生透视变换。 产生等比例缩放变换。
三维图形变换中要注意的几个问题: 1.在三维图形的比例变换中,常会采用 s 来实现整体的比例 变换。当 |s | < 1 时,三维图形整体等比例放大;当 |s | > 1 时, 三维图形整体等比例缩小。 2.三维图形的对称变换是相对于各个坐标平面进行的。 3.三维图形的旋转变换是指绕坐标轴的旋转。 在采用右手坐标系的情况下,图形绕坐标轴逆时针旋转时, 转角为正 ( 拇指指向坐标轴的方向,其余四指指向旋转方向 ), 顺时针旋转为负。
相关文档
最新文档