第 7 章 图形变换

63
1 第7第 第第第第 7.1 第第第第第第第第第 7.2 第第第第第第 7.3 第第第第第第 第第第第第第 第第第第第第 7.4 第第第第 7.5 第第第第

Upload: abbot-casey

Post on 02-Jan-2016

102 views

Category:

Documents


15 download

DESCRIPTION

第 7 章 图形变换. 7.1 图形变换的数学基础 7.2 窗口视图变换 7.3 图形几何变换 二维几何变换 三维几何变换 7.4 投影变换 7.5 视向变换. 第 7 章 图形变换. 本节要求 : 本节的 教学目标 :弄懂图形变换的原理,尝试图形变换的应用。 本节的 教学效果 :你可以让一个五角星在计算机屏幕上放大缩小并旋转起来。参考例题,可以独立编写图形变换的 C 程序。 本节的 教学要求 :理解教材(孙家广)第 366 页几何变换矩阵的四个子矩阵的作用。陈传波教材的 P146 公式 6 - 1. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 7 章  图形变换

1

第 7 章 图形变换

7.1 图形变换的数学基础7.2 窗口视图变换7.3 图形几何变换 二维几何变换 三维几何变换7.4 投影变换7.5 视向变换

Page 2: 第 7 章  图形变换

2

第 7 章 图形变换 本节要求:1. 本节的教学目标:弄懂图形变换的原理,

尝试图形变换的应用。2. 本节的教学效果:你可以让一个五角星在

计算机屏幕上放大缩小并旋转起来。参考例题,可以独立编写图形变换的 C 程序。

3. 本节的教学要求:理解教材(孙家广)第366 页几何变换矩阵的四个子矩阵的作用。陈传波教材的 P146 公式 6 - 1

Page 3: 第 7 章  图形变换

3

第 7 章 图形变换 思考:• 是什么? (What) 图形变换是计算机图形学的重

要内容,它讨论图形的放大、缩小、旋转、错切等变换。图形变换主要讨论变换矩阵。

• 为什么? (Why) 为什么要讨论变换矩阵,因为当对图形进行各种变换时,图形中的点会发生变化,而点对应的矩阵也会发生变化。反过来,当矩阵发生变化时,它所代表的点和图形也发生变化。所以变换了矩阵就变换了图形。

• 如何做? (How) 图形变换的方法是使用矩阵变换。所以本节的重点是讨论使用什么样的变换矩阵和如何进行变换矩阵的运算。

Page 4: 第 7 章  图形变换

4

第 7 章 图形变换 思考:• Photoshop 中的滤镜是如何实现图形变换的?

“滤镜 \ 扭曲 \ 切变”功能可以使得图形任意变形,它使用了图形学的“图形变换”算法

• Word 中的 3D 图形、旋转是如何实现的? 它使用了图形学的投影变换、旋转变换算法• 我们学习图形变换有什么用? ( 1 )自己开发应用软件时利用图形学图形变换算

法实现新功能。 ( 2 )更有效地使用和发挥 Photoshop 等应用软件

的功能。 ( 3 )讲授课程时易懂有深度,所谓知其然,知其

所以然。

Page 5: 第 7 章  图形变换

5

几何变换 平移旋转 缩放错切

变换的分类

Page 6: 第 7 章  图形变换

6

投影变换

正投影(三视图)

轴测投影透视投影

变换的分类

Page 7: 第 7 章  图形变换

7

点的表示:二维图形中的点可以用坐标( x,y )来表示,也可以用矢量 [x,y] 来表示。

二维 行矢量 [x,y] 三维 行矢量 [x,y,z]二维 列矢量 三维 列矢量

图形的表示 用 nx2 或 nx3 矩阵来表示二维或三维图形上所有 n 个点。

二维空间上 三维空间上 的所有点 的所有点

图形与矢量

y

x

z

y

x

nn y

y

y

x

x

x

2

1

2

1

nnn z

z

z

y

y

y

x

x

x

2

1

2

1

2

1

Page 8: 第 7 章  图形变换

8

为什么要用矩阵变换?因为: 当对图形进行各种变换时,图形中的点会发生变化,而点对应的矩阵也会发生变化。反过来,当矩阵发生变化时,它所代表的点和图形也发生变化。所以: 不容易实现的图形变换可以通过容易实现的矩阵运算来进行,通常将矩阵 P 乘以一个相应的变换矩阵 T ,从而得到新矩阵 P’ ,它代表变换后新图形上的各个点的坐标。

图形的变换

图形 矩阵 P

新矩阵 P’新图形

P× 变换矩阵 T (容易)图形变换(困难)

Page 9: 第 7 章  图形变换

9

图形模式(固定坐标系模式)(讨论)变换前后点的坐标发生变化,但都是在同一坐标系中。

空间模式(活动坐标系模式)改变参照系,变换前后是相对不同坐标系的

变换方式

Page 10: 第 7 章  图形变换

10

设有两个矢量

矢量和

z

y

x

v

v

v

V

数学基础 1/4

z

y

x

u

u

u

U

zz

yy

xx

vu

vu

vu

VU

Page 11: 第 7 章  图形变换

11

数学基础 (2/4)

矢量的数乘

矢量的点积

性质

z

y

x

uk

uk

uk

Uk

zzyyxx vuvuvuVU

UVVU VUVU 0

00 UUU

Page 12: 第 7 章  图形变换

12

矢量的长度

单位矢量:长度为 1 的矢量 矢量的夹角

矢量的叉积

数学基础 (3/4)222zyx uuuUUU

VU

VU

cos

zyx

zyx

vvv

uuu

kji

VU

Page 13: 第 7 章  图形变换

13

数学基础 (4/4)矩阵

阶矩阵n 阶方阵零矩阵行向量与列向量单位矩阵矩阵的加法 矩阵的数乘 矩阵的乘法 矩阵的转置 矩阵的逆

m n

Page 14: 第 7 章  图形变换

14

变换矩阵点 :变换矩阵 :

变换 :

变换后的点:

新矩阵 :

注意: x’ 项中有 x 和 y 分量, y’ 项中也有 x 和 y分量, 这意味着 x , y 共同 对新矩阵 P’ 产生作用。

TPP

dybxy

cyaxx

P=[x,y]

dc

baT

dybxcyaxdc

bayx

''' yxP

Page 15: 第 7 章  图形变换

15

单位矩阵

单位矩阵:

由上式可见变换前后的坐标不变, 因此图形也不变,这是恒等变换。图形变换子程序中有: []×T ,当 T 改变时,则变换的结果也发生改变。绘图软件中常把变换矩阵的初始值设为单位矢量。提示:

注意变换矩阵的各个元素的作用。下课时总结出规律。

10

01

''10

01yxyxyx

Page 16: 第 7 章  图形变换

16

比例变换 1/2比例变换:

则:

a 为 x 方向的比例因子, d 为 y 方向的比例因子。当 a=d 时, x,y 方向按相同比例放大(如红线)当 a≠d 时, x,y 方向按不同比例放大 ( 如绿线)。

dyy

axx

d0

0aT

''0

0yxdyax

d

ayx

Page 17: 第 7 章  图形变换

17

比例变换 2/2

比例变换

以坐标原点为放缩参照点不仅改变了物体的大小和形状,也改变了它离原点的距离

TPP

y

x

b

aT

0

0

Page 18: 第 7 章  图形变换

18

对 X 轴对称变换变换矩阵:

则:

图形对 x 轴进行对称变换

yy

xx

1-0

01T

''10

01yxyxyx

Page 19: 第 7 章  图形变换

19

对 Y 轴对称变换对称变换:

则:

图形对 y 轴进行对称变换

yy

xx

10

01-T

''10

01yxyxyx

Page 20: 第 7 章  图形变换

20

对原点对称变换对称变换:

则:

图形对坐标原点进行对称变换

yy

xx

1-0

01-T

''10

01yxyxyx

Page 21: 第 7 章  图形变换

21

旋转变换 1/2旋转变换公式的推导X’= R cos ( α+θ ) = R cos α cos θ-R sin α sin θ = Xcos θ-YsinθY’= R sin (α+θ) = R cos α sin θ+R sin α cos θ = X sinθ +Y cos θ

绕坐标原点旋转 θ 角的变换矩阵为:

cos

sin

sinθ-

cosθR

cossinθ-

sincosθyx

Page 22: 第 7 章  图形变换

22

旋转变换 2/2

旋转变换绕坐标原点旋转角度 编程时注意:逆时针 θ 为正,顺时针 θ 为负。见手稿 P3.3

PRP

cossin

sincosR

Page 23: 第 7 章  图形变换

23

错切变换 1/4

错切变换也称为“剪切”, “错位”,“错移”变换。

错切变换使图形沿 x 轴,或沿 y 轴错位,直观效果位图形产生 x 或 y 方向的倾斜。错切变换:

1

1

c

bT

ybxy

cyxx

ybxcyxc

byxyx

1

1''

Page 24: 第 7 章  图形变换

24

错切变换 2/4

1 。 x 方向错切 ( b=0, c≠0 )

分析:1 )图形各点的 y 坐标不变。(高度不变)2 ) x’ 为 x 和 y 的函数。3 ) c>0 ,则图形沿 +x 方向错切, c<0 ,则图形沿 -x 方向错

切见手稿 P3.4 的例子。见教材 P368 图 732 错切。

ycyxc

yxyx

1

01''

yy

cyxx

Page 25: 第 7 章  图形变换

25

错切变换 3/4

2 。 y 方向错切 ( b ≠ 0, c = 0 )

分析:1 )图形各点的 x 坐标不变。(宽度不变)2 ) y’ 为 x 和 y 的函数。3 ) b>0 ,则图形沿 +y 方向错切, b<0 ,则图形沿 -y 方向错

切见手稿 P3.6 的例子。

ybxxb

yxyx

10

1''

ybxy

xx

Page 26: 第 7 章  图形变换

26

错切变换 4/4

2 。 X , y 方向错切 ( b ≠ 0, c ≠ 0 )

分析:1 )图形同时向 xy 两个方向错切。2 ) x’ 为 x 和 y 的函数, y’ 为 x 和 y 的函数。3 ) b 与 c 均不为 0 ,见手稿 P3.7 的例子。

ybxcyxc

byxyx

1

1''

ybxy

cyxx

Page 27: 第 7 章  图形变换

27

平移变换

平移变换例如:从 A 平移到 A’·

得到结果:

即:

平移变换 :

A

A’

l

m

myy

lxx

mlyxyx ''

TPP

Page 28: 第 7 章  图形变换

28

平移变换的问题

发现问题:平移变换 : 的运算为加法,比例变换 : 的运算为乘法 .旋转变换 : 的运算为乘法 .复合变换: T=T1·T2 ·T3 ·T4 ·T5 的运算为乘法 .

分析问题:不同的变换使用了乘法和加法等不同算法,不利于程序的统一调用。如果能够将多种算法统一成一种算法,则编程变得方便。解决问题:采用齐次坐标技术可以使所有变换全都使用乘法,即如下的形式:

TPP T ·PP R ·PP

TPP

Page 29: 第 7 章  图形变换

29

齐次坐标技术

齐次坐标表示法由 n+1 维向量表示一个 n 维向量采用了齐次坐标技术,图形变换才可以转换为表示图形的点集矩阵与某一变换矩阵相乘这一单一问题。从而可以借助计算机高速计算功能,快速得到变换后的图形。为高度动态的计算机图形显示提供了可能性。

齐次坐标表示法的优点便于变换合成便于硬件实现

Page 30: 第 7 章  图形变换

30

齐次坐标表示的实现

给二维点增加一维,给变换矩阵增加一列。变换后的点也增加一列。

结果:平移变换也可以使用矩阵乘法来进行计算。

推广:二维 三维

1

1

0

0

1 mdybxlcyax

ml

dc

ba

yx

TPP

1yx

1zyx

Page 31: 第 7 章  图形变换

31

齐次坐标的正常化 1/2

讨论:点没有唯一的齐次坐标表示齐次坐标的一般形式:

H=1 时,为:H=2 时,为:它们都表示二维空间点见右图中的红点。

z

y

x12

0

HHH YX

32

1yx

222 yx

Page 32: 第 7 章  图形变换

32

齐次坐标表示的物理含义

只要 和 对应的元素成比例,

则它们对应于二维空间的同一个点。该点对应的齐次坐标为三维空间的一条直线。

该直线上的每一个点都对应于一个二维坐标点( x,y )。

111 hyx 222 hyx

2

1

2

1

2

1

hh

yy

xx

zhz

yhyxhx

h

h

h

Page 33: 第 7 章  图形变换

33

齐次坐标表示的物理含义

齐次坐标表示法用 n+1 维表示 n 维图形的物理含义是:

x

z

y

1Z=1 平面

Page 34: 第 7 章  图形变换

34

齐次坐标的正常化

小结: 只有 H=1 时,点的齐次坐标 x,y才与二维坐标的 x,y值相等。所以应当进行齐次坐标的正常化:

HHy

HHx

y

x

/

/

Page 35: 第 7 章  图形变换

35

组合变换:一个复杂的变换可以转化为多个基本变换,这种方法叫做组合变换。

齐次坐标统一了图形变换的表示形式,为组合变换提供

了基础。

组合变换(级联)( 1/6 )

Page 36: 第 7 章  图形变换

36

复合变换及变换的模式( 1/6 )

关于任意参照点 的旋转变换 θ

T=T1·T2 ·T3 (位移,旋转, - 位移)

P x yr r r( , )

1

010

001

00

1

yx

T

100

0cossin

0sincos

2 θθ

θθ

T

1

010

001

00

3

yx

T

Page 37: 第 7 章  图形变换

37

复合变换及变换的模式( 2/6 )

关于任意参照点 的放缩变换

位移,缩放, - 位移

P x yr r r( , )

Page 38: 第 7 章  图形变换

38

关于任意轴的对称变换 1/2关于任意轴的对称变换(平移 A1 ,旋转 A2 ,对称A3 , - 旋转 A4 , - 平移 A5 )

Page 39: 第 7 章  图形变换

39

关于任意轴的对称变换 2/2

分析:步骤为:平移 l,m,旋转 θ ,对 x 轴的对称变换(这是目的),旋转 -θ ,平移 -l,-m,运算为: T=T1·T2·T3·T4·T5

解释:为了对称变换 T3必须先旋转变换 T2 ,为了旋转变换必须先平移变换 T1 。进行了对称变换后还应返回原始状态,故原路返回逆向旋转 T4 ,并逆向平移T5

注意:变换顺序影响结果先平移后旋转≠先旋转后平移。见手稿 P4.3

Page 40: 第 7 章  图形变换

40

二维变换小结

陈传波教材 P147 有公式 6- 1 ,变换矩阵中共有 4 个子矩阵。abcd对图形作缩放、旋转、对称、错切变换,lm对图形作平移变换,qp对图形作投影变换,s 对图形作整体变换。acl对 x’起作用, bdm对 y’起作用, qps 对整体起作用。

sml

pdc

qba

yxyx 11''

Page 41: 第 7 章  图形变换

41

三维几何变换

三维几何变换三维几何变换是二维几何变换的推广。三维几何变换在齐次坐标空间中可以用 4×4 的变换矩阵表示, (x,y,z) 点对应的齐次坐标为: (x,y,z,h) ,其中 h是不等于 0 的任意常数。变换矩阵:( P42 )(孙教材 P369)

snml

rjih

qfed

pcba

Page 42: 第 7 章  图形变换

42

三维齐次坐标

三维齐次坐标(x,y,z) 点对应的齐次坐标为

标准齐次坐标 (x,y,z,1)右手坐标系

旋转轴 正的旋转方向x y->zy z->xz x->y

),,,( hzyx hhh

0,,, hhzzhyyhxx hhh

x

y

z

Page 43: 第 7 章  图形变换

43

比例变换

比例变换

若 a =e =j 则: xyz 方向的 缩放比例相同,如图 1 。若 a≠e≠j 则:立体产生类似变形,如图 2 。

1000

000

000

000

j

e

a

T

z

yx

z

yx

Page 44: 第 7 章  图形变换

44

全比例变换

全比例变换矩阵:

变换结果:

需要进行齐次坐标正常化

s

T

000

0100

0010

0001

szyx

s

zyx

000

0100

0010

0001

1

1'''1 zyxsz

sy

sx

Page 45: 第 7 章  图形变换

45

对 xoy 平面的对称变换

变换矩阵:

立体对 xoy 平面对称时, x,y 坐标不变, z坐标变化。

1000

0100

0010

0001

T

z

yx

zz

yyxx

'

''

o

Page 46: 第 7 章  图形变换

46

对 xoz平面的对称变换

变换矩阵:

立体对 xoz平面对称时, x,z坐标不变, y 坐标变化。

1000

0100

0010

0001

T

z

yx

zz

yyxx

'

''

o

Page 47: 第 7 章  图形变换

47

对 yoz平面的对称变换

对 yoz平面的对称变换:

立体对 yoz平面对称时, y , z坐标不变, x坐标变化。

1000

0100

0010

0001

T

zz

yyxx

'

''

yx

z

o

Page 48: 第 7 章  图形变换

48

绕 x 轴旋转变换

旋转变换绕 x 轴

1000

0cossin0

0sincos0

0001

)(

x

R

z

yx

z

yx

绕 x 轴旋转

Page 49: 第 7 章  图形变换

49

绕 y 轴旋转变换

旋转变换绕 y 轴

z

yx

z

y

x

绕 y 轴旋转

1000

0cossin

0010

0sin0cos

)(

y

R

Page 50: 第 7 章  图形变换

50

绕 z轴旋转变换

旋转变换绕 z轴

z

yx

z

y

x

绕 z 轴旋转

1000

0100

00cossin

00sincos

)(

z

R

Page 51: 第 7 章  图形变换

51

平移变换

平移变换

l,m,n 分别为 x,y,z 方向的平移量。

1

0100

0010

0001

),,(

nml

nmlT

z

yx

Page 52: 第 7 章  图形变换

52

错切变换

错切变换错切变换是指立体沿 x,y,z三个方向产生错切变形,错切变换是斜轴测投影变换的基础。主对角线元素全为 1 ,第 4 行,第 4 列的其余元素全为 0 。 b,c,d,f,h,I中至少有一个不为 0 。分为 6种形式:1 沿 x 方向含 y 分量错切, 2 沿 x 方向含 z分量错切3 沿 y 方向含 x 分量错切, 4 沿 y 方向含 z分量错切5 沿 z方向含 x 分量错切, 6 沿 z方向含 y 分量错切

1000

01

01

01

1ih

fd

cb

zyx

zfycxz

izybxyhzdyxx

'

Page 53: 第 7 章  图形变换

53

沿 x含 y 错切

沿 x含 y 错切

x 的值随着 y 的增大而增大。

1000

0100

001

0001

dT

zz

yydyxx

'

z

y

x

Page 54: 第 7 章  图形变换

54

沿 x含 z 错切

沿 x含 z 错切

x 的值随着 z的增大而增大。

1000

010

0010

0001

hT

zz

yyhzxx

'

z

yx

Page 55: 第 7 章  图形变换

55

沿 y含 x 错切

沿 y含 x 错切

y 的值随着 x 的增大而增大。

1000

0100

0010

001 b

T

zz

bxyyxx

'

z

yx

Page 56: 第 7 章  图形变换

56

沿 y含 z 错切

沿 y含 z 错切

y 的值随着 z的增大而增大。

1000

010

0010

0001

iT

zz

izyyxx

'

z

yx

Page 57: 第 7 章  图形变换

57

沿 z 含 x 错切

沿 z 含 x 错切

z的值随着 x 的增大而增大。

1000

0100

0010

001 c

T

cxzz

yyxx

'

z

yx

Page 58: 第 7 章  图形变换

58

沿 z 含 y 错切

沿 z 含 y 错切

z的值随着 y 的增大而增大。

1000

0100

010

0001

fT

fyzz

yyxx

'

z

yx

Page 59: 第 7 章  图形变换

59

组合变换

对立体顺序进行多个基本变换,可以完成三维组合变换。要求:使立体绕 J轴旋转 θ 角思路:将 J轴重合 Z轴之后,使立体旋转 θ 角,然后返回。

z

y

x

J

J2

J1

Page 60: 第 7 章  图形变换

60

组合变换步骤:

1 。 J轴绕 Z轴转φ,成为 J1 。2 。 J1 轴绕 X 轴转 γ,成为 J2 。3 。立体绕 J2 轴转 θ ,达到目的。4 。从 J2返回 J1 。5 。从 J1返回 J。

z

yx

J1Jz

y

x

J1

J2z

y

x

J1

J2

Page 61: 第 7 章  图形变换

61

上机习题

内容:实验指导书“实验二 _二维图形几何变换”。

实验要求:按实验指导书要求。

Page 62: 第 7 章  图形变换

62

上机心得

心得:1 用新名字复制源程序,源程序不变。2 不用 C, D盘。3 使用注释删节不要的部分。4每次只改动一点,出问题可以立即返回。5 使用在线帮助。6 问同学,问老师。7跟踪 F7 ,观察watch,等8 不要开太多的窗口, F6 切换。9使用块操作10 同学之间多交流。

Page 63: 第 7 章  图形变换

63

题外话

寻根求源的必要性文 盲: 不知其然(无知识,无法应用)中学生:知其然(记忆知识,可以简单应用)大学生:知其所以然(掌握知识,可以灵活应用)研究生:探索所以然(研究知识和方法,可以发展)

本课程的要求和希望:掌握计算机图形显示的原理和方法。我能在什么地方使用某个原理和方法。如何得到一个新算法,我能发明一个新算法吗。