41

第三章 图形变换与输出

  • Upload
    genero

  • View
    114

  • Download
    8

Embed Size (px)

DESCRIPTION

第三章 图形变换与输出. 3.1 图形的几何变换. 3.2 坐标系统及其变换. 3.3 图元输出与输出属性. 3.1 图形的几何变换. 基本的几何变换研究物体坐标在直角坐标系内的平移、 旋转和变比的规律。. 主要介绍 二维图形几何变换 三维图形几何变换 参数图形几何变换. ( x’ , y’ ). x. (T x ,T y ). ( x , y ). 3.1 图形的几何变换. 3.1.1 二维图形几何变换. 一、基本变换 ⒈ 平移 (Translation). 将图形对象从一个位置 (x, y) 移 - PowerPoint PPT Presentation

Citation preview

Page 1: 第三章  图形变换与输出
Page 2: 第三章  图形变换与输出

主要介绍二维图形几何变换 三维图形几何变换 参数图形几何变换

基本的几何变换研究物体坐标在直角坐标系内的平移、旋转和变比的规律。

Page 3: 第三章  图形变换与输出

3.1.1 二维图形几何变换 一、基本变换 ⒈ 平移 (Translation)

x = x+ T x

y = y+ T y

将图形对象从一个位置将图形对象从一个位置 (x, y)(x, y) 移移到另一个位置到另一个位置 (x(x′′ ,, yy′′)) 的变换。的变换。

(x, y)

(x’, y’)

(Tx,Ty)

x

Page 4: 第三章  图形变换与输出

3.1.1 二维图形几何变换 ( 续 )一、基本变换 ⒉ 旋转 (Rotation)

x = x cos y sin y = y cos + x sin

点点 ((xx, , yy)) 围绕原点逆时针转围绕原点逆时针转动一个角度动一个角度, ,

x

y

(x, y)

(x’, y’)

Page 5: 第三章  图形变换与输出

3.1.1 二维图形几何变换 ( 续 )一、基本变换 ⒉ 旋转 (Rotation) 将以某个参考点将以某个参考点 ((xxrr, , yyrr)) 为圆心,为圆心,将对象上的各点将对象上的各点 ((xx, , yy)) 围绕圆心转围绕圆心转动一个逆时针角度动一个逆时针角度 ..

x

y

(x, y)

(x’, y’)

(xr, yr)x = x cos y siny = y cos + x sin

newx = xxrnewy = yyrnewx = newx cos newy sinnewy = newy cos + newx sin

x = newx + xr y = newy + yr

x = xr+(xxr)cos (yyr)siny = yr+(yyr)cos +(xxr)sin

Page 6: 第三章  图形变换与输出

3.1.1 二维图形几何变换 ( 续 )一、基本变换 ⒊ 变比 (Scaling) 使对象按比例因子使对象按比例因子 ((SSxx, , SSyy)) 放大或缩放大或缩小的变换 小的变换 x = x · Sx

y = y · Sy

(x, y)

(x’, y’)

x

y

固定点变比 (scaling relative to a fixed point) 。以 a 为固定点1((1) 作平移 Tx=xa , Ty=ya ;2((2) 按式 (3.1) 作变比;3((3) 作 1) 的逆变换,即作平移 Tx=xa , Ty=ya 。

(3.1)

Page 7: 第三章  图形变换与输出

当比例因子 Sx 或 Sy 小于 0 时,对象不仅变化大小,而且分别按 x 轴或y 轴被反射

3.1.1 二维图形几何变换 ( 续 )一、基本变换 ⒊ 变比 (Scaling)

Page 8: 第三章  图形变换与输出

3.1.1 二维图形几何变换 ( 续 )二、变换矩阵 ⒉ 平的矩阵运算表示为

                           (3.2)

简记为 p=p·T(Tx, Ty) 。其中, p= [ x y 1 ], p= [ x y 1 ]。

1 0 0

1 1 0 1 01x y

x y x yT T

1 0 0( , ) 0 1 0

1x y

x y

T T TT T

表示平移矩阵。

Page 9: 第三章  图形变换与输出

3.1.1 二维图形几何变换 ( 续 )二、变换矩阵 ⒉ 旋转的矩阵运算表示为

                           (3.2)

简记为 p=pR() ,其中 R() 表示旋转矩阵。

cos sin 0

1 1 sin cos 00 0 1

x y x y

Page 10: 第三章  图形变换与输出

3.1.1 二维图形几何变换 ( 续 )二、变换矩阵 ⒊ 变比的矩阵运算表示为

                            (3.3)

简记为 p=pS(Sx, Sy) ,其中 (Sx, Sy) 表示变化矩阵。

0 0

1 1 0 00 0 1

x

y

Sx y x y S

Page 11: 第三章  图形变换与输出

3.1.1 二维图形几何变换 ( 续 )三、级联变换 (Composite Transformation)   对于复杂的图形变换,需要通过若干个变换矩阵的级联才能实现。这里特别要注意的是矩阵级联的顺序,由于矩阵的乘法运算不适用交换率,因此矩阵级联的顺序不同所得到的变换结果也不相同。

例如:对任意直线的对称变换(直线方程为 Ax + By + C = 0 )y

o x

Page 12: 第三章  图形变换与输出

3.1.1 二维图形几何变换 ( 续 )三、级联变换 (Composite Transformation)

x x

y

o x

y

o

1 0 0 T1 = 0 1 0 C/A 0 1

cosα - sinα 0T2= sinα cosα 0 0 0 1

Page 13: 第三章  图形变换与输出

3.1.1 二维图形几何变换 ( 续 )三、级联变换 (Composite Transformation)

x

y

o x

y

o x

y

o

1 0 0T3 = 0 -1 0 0 0 1

cosα sinα 0T4 = - sinα cosα 0 0 0 1

1 0 0 T5= 0 1 0 - C/A 0 1

Page 14: 第三章  图形变换与输出

3.1.1 二维图形几何变换 ( 续 )三、级联变换 (Composite Transformation) 组合变换矩阵为: cos2α sin2α 0T =T1×T2×T3×T4×T5= sin2α - cos2α 0 (cos2α-1)C/A sin2α*C/A 1

[ x y 1 ] = [ x y 1 ] T

Page 15: 第三章  图形变换与输出

3.1.1 二维图形几何变换 ( 续 )四、二维几何变换的指令 ⒈ 建立变换矩阵的指令为creat_transformation_matrix(xf, yf, Sx, Sy, xr, yr, , Tx, Ty, matrix) ;

⒉ 积累变换的指令为  accumulate_transformation_matrix(matrix1, matrix2, matrix);

⒊ 坐标变换的指令为set_segment_transformation(Id, matrix);

Page 16: 第三章  图形变换与输出

3.1.2 三维图形几何变换 ⒈ 旋转 1) 绕 z 轴旋转的公式为x = xcos ysin y = xsin +ycos z = z矩阵运算的表达式为

cos sin 0 0sin cos 0 0

1 10 0 1 00 0 0 1

x y z x y z

x

z

(x’, y’, z’) (x, y, z)

Page 17: 第三章  图形变换与输出

3.1.2 三维图形几何变换 ( 续 )⒈ 旋转 2) 绕 x 轴旋转的公式为x = xy = ycos zsinz = ysin +zcos矩阵运算的表达式为

1 0 0 00 cos sin 0

1 10 sin cos 00 0 0 1

x y z x y z

(x, y, z)(x’, y’, z’)

x

y

z

Page 18: 第三章  图形变换与输出

3.1.2 三维图形几何变换 ( 续 )⒈ 旋转 3) 绕 y 轴旋转的公式为 x = zsin +xcos y = yz = zcos xsin

矩阵运算的表达式为

cos 0 sin 00 1 0 0

1 1sin 0 cos 00 0 0 1

x y z x y z

(x, y, z)(x’, y’, z’)

x

y

z

Page 19: 第三章  图形变换与输出

3.1.2 三维图形几何变换 ( 续 )⒈ 旋转 4) 绕任意轴旋转

图 3.6 绕任意轴 P1P2 旋转的前 4 个步骤

Page 20: 第三章  图形变换与输出

3.1.2 三维图形几何变换 ( 续 )⒉ 变比 设 Sx 、 Sy 、 Sz 是物体在 3 个坐标轴方向的比例变化量,则有公式x = xSx , y = ySy , z = zSz

矩阵运算的表达式为

0 0 00 0 0

1 10 0 00 0 0 1

x

y

z

SS

x y z x y zS

Page 21: 第三章  图形变换与输出

3.1.3 参数图形几何变换 ( 续 )⒈ 圆锥曲线的几何变换 圆锥曲线的二次方程是 Ax2+Bxy+Cy2+Dx+Ey+F=0 ,其相应的矩阵表达式是

简记为 XSXT=0 。

2 2

1 02 2

1

2 2

B DA

xB E

x y C y

D EF

⑴ 平移变换。若对圆锥曲线进行平移变换,平移矩阵是         Tr=      ,

则平移后的圆锥曲线矩阵方程是 XTrSTrTXT=0 。

1 0 00 1 0

1m n

Page 22: 第三章  图形变换与输出

3.1.3 参数图形几何变换 ( 续 )⒈ 圆锥曲线的几何变换 ⑵ 旋转变换。若对圆锥曲线相对坐标原点作旋转变换,旋转变换矩阵是        R=        ,则旋转后的圆锥曲线矩阵方程是 XRSRTXT=0 。若对圆锥曲线相对 (m, n) 点作旋转角变换,则旋转后的圆锥曲线是上述 Tr 、 R 变换的复合变换,变换后圆锥曲线的矩阵方程是        XTrRSRTTrTXT=0 。⑶ 比例变换。若对圆锥曲线相对 (m, n) 点进行比例变换,比例变换矩阵为        ST=        ,则变换后圆锥曲线的矩阵方程是 XTrSTSSTTTrTXT=0 。

cos sin 0sin cos 0

0 0 1

0 00 00 0 1

x

y

SS

Page 23: 第三章  图形变换与输出

3.1.3 参数图形几何变换 ( 续 )⒉ 参数曲线、曲面的几何变换 若指定一个平移矢量 t ,对曲线平移 t ,即对曲线上的每一点 P 都平移 t 。对平移后的点 P* 有           P* = P+t对于参数曲线和曲面的几何系数矩阵 B 和代数系数矩阵 A ,可以直接实现平移变换,即有           B* = B+T , T = [ t t 0 0 ] TB* 是经平移后参数曲线的几何系数矩阵,变换结果如图所示。

Page 24: 第三章  图形变换与输出

3.2.1 坐标系统 1. 世界坐标系 (World Coordinates) 为了描述被处理的对象,要在对象所在的空间中定义一个坐标系,这个坐标系的长度单位和坐标轴的方向要适合对被处理对象的描述,这个坐标系通常就称之为世界坐标系或用户坐标系。世界坐标系一般采用右手三维笛卡儿坐标系。 x

y

z

o

Page 25: 第三章  图形变换与输出

3.2.1 坐标系统(续) 2. 观察坐标系 (View Coordinates) 产生三维物体的视图,必须规定观察点 (视点 ) 和观察方向。 好比照相时选择拍摄的位置和方向。 左手笛卡儿坐标系 ( 上图 ) :观察坐标系的原点通常设置在观察点 (视点 ) , Z轴作为观察方向。 右手笛卡儿坐标系:视点确定在 Z轴上的某一个位置, Z轴仍为观察方向 (下图 ) 。

x

y

z

o

x

y

z

o

视点

视点

Page 26: 第三章  图形变换与输出

3.2.1 坐标系统(续)3. 设备坐标系 (Device Coordinates)  与图形设备相关连的坐标系叫设备坐标系。 例如,显示器以分辨率确定坐标单位,原点在左下角或左上角;绘图机绘图平面以绘图精度确定坐标单位,原点一般在左下角。4. 规格化设备坐标系 (Normal Device Coordinates)  为了使图形处理过程做到与设备无关,通常采用一种虚拟设备的方法来处理,也就是图形处理的结果是按照一种虚拟设备的坐标规定耒输出的。这种设备坐标规定为 0≤X≤1 , 0≤Y≤1 ,这种坐标系称之为规格化设备坐标系。

Page 27: 第三章  图形变换与输出

3.2.2 规格化变换与设备坐标变换 ⒈ 规格化变换 从窗口到视区的变换,称为规格化变换 (Normalization Transformation) 。

x

y

o

W(窗口 )

x

y

o

V(视图区 )

wxL wxR

wyB

wyT

vxL vxR

vyB

vyT

(wx,wy) (vx,vy)

Page 28: 第三章  图形变换与输出

3.2.2 规格化变换与设备坐标变换 ( 续 )⒈ 规格化变换

vx – vxL wx – wxL 由两图的比例关系: vxR – vxL wxR – wxL

vy – vyB wy – wyB

vyT– vyB wyT – wyB可得: vxR – vxL wxR – wxL

vyT – vyB

wyT – wyB

= =

vx = • ( wx – wxL ) + vxL

vy = • ( wy – wyB ) + vyB

Page 29: 第三章  图形变换与输出

3.2.2 规格化变换与设备坐标变换 ( 续 )⒉ 窗口操作

⑴ 视野的变化 (zooming) 。

⑵ 摇镜头 (panning) 。 ⑶ 多重窗口 (multiple window) 。

Page 30: 第三章  图形变换与输出

3.2.2 规格化变换与设备坐标变换 ( 续 )⒊ 从规格化坐标 (NDC) 到设备坐标 (DC) 的变换

⑴ 通常采用的公式 xDC= Sx·xNDC+ dx , yDC= Sy·yNDC+ dy

⑵ 方向的考虑 ⑶ 对设备坐标中像素中心的变换

Page 31: 第三章  图形变换与输出

3.2.3 投影变换 投影 (project) 是一种使三维对象映射为二维对象的变换。它可描述为     project(object(x, y, z))→object(x, y, z)投影的要素除投影对象、投影面外,还有投影线。按照投影线角度的不同,有两种基本投影方法:⑴ 平行投影 (parallel projection) 。 它使用一组平行投影将三维对象投影到投影平面上去。 ⑵ 透视投影 (perspective projection) 。它使用一组由投影中心产生的放射投影线,将三维对象投影到投影平面上去。

Page 32: 第三章  图形变换与输出

3.2.3 投影变换 ( 续 )1 平行投影 -正交平行投影 (orthographic P. P.)  正投影的投影面与某一坐标轴垂直,而投影方向与该坐标轴的方向一致。 正投影的图形,在长宽高三个方向上的比例与实物保持一致,因此,常用于工程制图。

y

x

z

主视图 侧视图

俯视图

Page 33: 第三章  图形变换与输出

3.2.3 投影变换 ( 续 )2 平行投影 -斜交平行投影 (oblique P. P.)

正投影与斜投影正投影与斜投影

投影线与投影平面成交角

Page 34: 第三章  图形变换与输出

3.2.3 投影变换 ( 续 )3 透视投影变换

投影中心与投影平面之间的距离为有限参数:投影方向例子:室内白炽灯的投影,视觉系统灭点:不平行于投影平面的平行线,经过透视投影之后收敛于一点,称为灭点 .主灭点 :平行于坐标轴的平行线的灭点。

一点透视两点透视三点透视

特点:产生近大远小的视觉效果,由它产生的图形深度感强,看起来更加真实。

Page 35: 第三章  图形变换与输出

3.2.3 投影变换 ( 续 )3 透视投影变换

Page 36: 第三章  图形变换与输出

3.2.3 投影变换 ( 续 )3 透视投影变换

设投影中心在坐标原点,投影面与 Z 轴垂直,在 z = d 的位置。点 P( x, y, z ) 在投影面上的投影为 P' ( xp, yp, d ) 。

xp x yp y d z d z

x z y z

= =,

xp =

yp =

·d

·d z

x

y

oP(x,y,z)

P'

d

y

z

PP'

o

oz

P P'

d

Page 37: 第三章  图形变换与输出

3.3.1 二维图元输出用户定义的二维图元的窗口区到视图区的输出过程如下所示:应用程序得到的坐标 (UC) 对窗口区进行裁剪 (WC)窗口区到视图区的规格化变换 (NDC)视图区的规格化坐标系到设备坐标系的变换 (DC)调用基本图元生成算法在图形设备上输出图形

Page 38: 第三章  图形变换与输出

3.3.2 输出属性及其控制 ⒈ 图元的输出属性 ⒉ 属性的组合控制

Page 39: 第三章  图形变换与输出

3.3.3 三维图元的输出

⒈ 定义一个视域坐标系统 VCS ,为此需指定如下数据:⑴ VCS 坐标原点,也称 View reference point 。⑵ VCS 的 z 轴方向,也称 view plane normal 。⑶ VCS 的 y 轴方向,又称 view up vector 。

Page 40: 第三章  图形变换与输出

y

zWCS

xx

y

z

oVCS

⒉ 将投影物体从世界坐标变换为视域坐标。

Page 41: 第三章  图形变换与输出

⒊ 选择平行投影或透视投影进行投影变换。使得 VCS 的三维对象变为 VCS 中在 yOx 平面中的二维对象。⒋ 在 VCS 的 yOx 平面中取一个窗口,并定义相应的视区,进行标准化变换。