计算机图形学4_第1页
计算机图形学4_第2页
计算机图形学4_第3页
计算机图形学4_第4页
计算机图形学4_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机图形学

ComputerGrophic/

第四章几何变换

4.1概述

1)几何变换的概念

只改变组成形体的几何元素的几何信息(大小、形状

及相对位置),而不改变拓扑信息(连线关系)的变换。

2)几何变换通常是用矩阵运算方法实现的,就是将

描述模型几何信息的点列坐标矩阵乘以某变换矩阵,

从而获得一组新的点列坐标。

点列坐标矩阵几何变换新点列坐标矩阵

<X1ylzl:^Xlylz]

X2y2z2X2y2z2

abc

^XnynznJxdef^Xnynzn)

Jmn)

数字化描述图形显示处理

模型图形

3.2二维几何变换

3.2.1二维几何变换的数学模型

1.平移变换

Y.mP'(x'y')

从点P[x,y]平移到点P,[x,,y,]n「7

=x+mP(x,y)

y'=y+n---------kX

2旋转变换

I一个点绕原点的旋转,逆时针方向为正。

X=pCOSOC

{y=psinex

xy-pcos(9+a)=pcosacos3-psinasin9=xcos3-ysin3

y'=psin(9+a)=psinacos9+pcosasin。=xsin9+ycos0

3比例J变换

Sx=Sy:均匀缩放。

Sx=Sy>1,放大

Sx=Sy<1,缩小

Sx不等于Sy时,沿坐标轴

方向伸展和压缩

3.2.2二维几何变换的矩阵表示

用一个2X2的矩阵表示一个点的变换:

X、y']=〔xy〕=(ax+cybx

ac'a°

<J

问题:

1)不能表示平移变换

2)坐标原点(0,0)不能进行变换

为了使所有的几何变换都统一用矩阵运算实现,坐标采

用齐次坐标。

齐次坐标就是一个n维矢量的(n+1)维矢量表示。

例如:二维坐标点P(x,y)的齐次坐标为:(h*x,h*y,h)。

[xy]»[hxhyh]x=hx/hy=hy/h

[xyz]—[hxhyhzh]x=hx/hy=hy/hz=hz/h

二维坐标与齐次坐标是一对多的关系。通常都采用规格

化的齐次坐标,即取H=l。因此(x,y)的规格化齐次坐标为

(x,y,l)o

齐次坐标的几何意义:

可理解为在三维空间上第三维为常数的一平面上的二维

向量。

二维坐标与齐次坐标是一对多的关系。通常都采用规格

化的齐次坐标,即取H=l。因此(x,y)的规格化齐次坐标为

(x,y,1)o

齐次坐标的作用:

1.将各种变换用阶数统一的矩阵来表示。提供了

用矩阵运算把二维、三维甚至高维空间上的一个

点从一个坐标系变换到另一坐标系的有效方法。

2,便于表示无穷远点。

例如:(x*H,y*H,H),令H等于0,

1)二维几何变换主要包括平移、旋转、变比、

对称、错切等变换。变换矩阵统一的格式:

abc

T2D=def

[ghi

2)用已给模型的点列坐标矩阵右乘变换矩阵

就可以得到变换后的新点列坐标矩阵。

口a、y工力

XIylabc

X2>21X2y21def

^Xn'yn'lJ(XnynIj

3)变换矩阵中各元素a、b、c、dh、I赋

以不同的值时,可以得到不同的变换。

(1)比例变换

Ts=

(x、y、1)=:

〈Xa'ya'l、Xaya1SxO0、

Xbyb'lXbyb10SyO

Xc、yc'lIXcyc1I001J

Sx:X方向的比例因子,Sx>l放大,Sx<l缩小。

Sy:Y方向的比例因子,Sy>l放大,SyVI缩小。

比例变换的参考点是坐标原点。

(2)旋转变换:

、CcosOsine0

r="sinecosO0

loo1J

x

、cosOsine0

x'y'1=xy1-sinecose0

JI0

x-cosO-ysinOx-sin0+y*cosO1

旋转变换一定是绕坐标原点旋转。逆时针转动,角度值X为正值,

顺时针转动角度值X为负值。

(3)平移变换:

YB'

(100]D'

Tt=o10

tmn1JCD

0X

Cl001

[X、y'1)=[yi〕o101x+my+n1〕

n1,

,、^

a、

ya1

Xb、1O(ayaV

100

Xe、yb'1Xbyb1〕

d010

c、yc'Xcyc11J

yd'bedyd1)n

m是X方向的平移位移,n是Y方向的平移位移。

(4)对称变换:

「100]

关于X轴的对称变换Tx=o-10

[001J

(x、y、「=1xy1]o-10=X-y1

I。°d

-10o]

关于Y轴的对称变换Ty=010

Lo01J

、、pio

x'y'i〕=1xyl〕oio=(・xy1〕

looiJ.

-100:

关于原点的对称变换T0=0-10

Lo01J

Goo、

[x'y'1]=[xy1〕o-io=t-x-yi

001

(5)矩阵变换的级联

Y

A(Xa,Ya)

绕任意点旋转:

CD

-------------------►X

图中矩形ABCD绕顶点A逆时针旋转0角0

T=TtXTrXTf

<

100cos0sin。0100

010sinOcos60010

uxa-xb001、xaxb1J

关于任意直线对称:

T=TtXTrXTxXTrXTC

1o0cosa-sina01110"hcosa-sina0

010sinacosa00-10-sinacosa0

1J

uxe-xelo01J100[I。01J2<xex"eJ

3.3三维几何变换

1)三维模型的几何变换矩阵表示形式:

3X3子矩阵使形体3义1子矩阵使形

产生比例、旋转、对体产生透视变换

称、错切等线性变换

1mn

1X3子矩阵使1XI子矩阵使形

形体产生平移变换体产生总变比变换

Y

2)基本变换

(1)平移变换

1000

10

T3T=00

0010

<TxTyTz1J

C1o0

[X、y、z、1]=(xyz1]0100

0010X+Txy+Tyz+Tz1

<TxTyTzlJ

CXIylzlr100

Xl'yl'zl'l0、

X2'y2'z2'lX2y2z210100

0010

^X8'y8'z8'lJ(X8y8z81J<TxTyTz1J

(2)比例变换

Sx0001000

T3S=0Sy00或T3S=0100

00Sz00010

I。001I。00sj

Sx00o'

=

lx、y、z'1][xyz1]0Sy00=x-Sxy-SyZ-Sz1

00SzO-/

I。ooJ

相对于非原点的参考点A(xa,ya,za)作比例变换,其变换过程

分二步完成:

平移.变比sx,sy,sz

Ts=Tt-T3sTf

(3)旋转变换

绕X轴变换

空间上的立体绕X轴旋转时,立体上各点的X坐标不

变,只是Y、Z坐标发生相应的变化。

y'=pcos(a+0)=y*cos0-z*sin0

z'=psin(a+0)=y*sin0+z*cos0

用矩阵形式表示为:

1000

0cos0sin00

£y'11]=[xyz1

0-sin0cos00

0001

绕X坐标轴旋转。角的三维旋转变换矩阵是:

1000

Trx=0cos。sin00

0-sin0cos00

0001

绕Y轴旋转

此时,Y坐标不变,X,Z坐标相应变化。

x'=psin(a+0)=x*cosO+z*sinO

y-y

z'=pcos(a+0)=z*cos0-x*sin0

用矩阵形式表示为:

cos00-sin夕0

0100

国yzU=[xyz1]

sin00cos00

0001

绕Y坐标轴旋转。角的三维旋转变换矩阵是:

cose0-sine0、

Try=0100

sine0cosO0

I0001J

绕Z轴旋转

此时,Z坐标不变,X,Y坐标相应变化。

x'=pcos(a+0)=x^cosO-y*sin。

y'=psin(a+0)=x*sin8+ywcos0

i?=z

用矩阵形式表示为:

cos6sin000

-sin0cos000

X2xyz1]

0010

0001

绕z坐标轴旋转。角的三维旋转变换矩阵是:

cosOsine00

-sinecosO00

0010

000

组合变换:

空间一点绕空间任一直线旋转的旋转变换。要通过修几

个基本的变换级联起来,得到该组合变换。

假定空间任一直线的方向矢量分别为:(l,m,n),并经过原点

Y

X

能否转换成绕X、Y或Z轴旋转的变换?

ON绕Z轴旋转62至》XOZ平面上,然后再绕Y轴旋转91,即

可与Z轴重合。

这样,空间任一点绕ON轴旋转的变换过程如下:

1)首先通过两次旋转,使ON轴与Z轴重合;

2)然后使点绕Z轴旋转。角;

3)最后通过与1)相反的旋转,使ON轴回到原来的位置。

假设,绕Z轴旋转的变换矩阵为T1

绕Y轴旋转的变换矩阵为T2

绕Z轴旋转。的变换矩阵为T3

绕Y轴旋转的变换矩阵为T4

绕Z轴旋转。2的变换矩阵为T5

则总体变换矩阵为:

T=T]*T2*T3*T4*T5

由上推导可看出,只要能求出61、62的值,即可通

过上式获得绕ON轴的变换矩阵。

由于矢量(001)绕Y轴旋转01,再绕Z轴旋转

02即可与ON轴重合。即:

cos0-sin0cos02sin200

0100-sin3cosg00

mn1]=[0011]

sin40cosqo0010

00010001

[1mn1]=[sin01cos02sin01sin02cos011]

1=sin01cos02

m=sin01sin02

n=cos01

从而通过上式即可得到e1、e2的值。

问题:当任一轴线的端点不在原点时,此时应如何计算

3.4三维形体的投影变换

投影变换:将形体的三维模型变为二维图形表示的过程称为投影变换

投影的分类:

「正投影(三视图)

「正平行投影T

正等测投影(三轴变形系数相等)

正轴测投影正二测投影(两轴向变形相等)

厂平行投影

4正三测投影(三轴变形系数各不相同)

斜等测投影(三轴都不缩短,但一根轴倾斜)

斜平行投影

斜二测投影(一根轴倾斜,且缩短为1/2)

灭占

r一点透视投影

/〃

///

透视投影I二点透视投影、、///

//

三点透视投影0,

3.4.1正投影

多面正投影变换可视为将形体的坐标分别沿相应坐标轴方向压缩,使

其坐标值为o

z

Z

Xyw

X

0

yyh

沿x方向压缩沿Y方向压缩沿Z方向压缩

000100100

010

0100Tyy=Tyz=

001000

0001000

正面投影(主视图)

正面投影是将立体向V面投

影得到的,投影结果为:

X'=x+tx

y9=0

z'=z+tz

为将点(xyz)变换为(X,y

面投影变换矩阵

10001000

、〕=〔0000000

[x'yz'1xyz1]00100o10

000tx0tz

水平投影(俯视图)

先修立体向H面作正投影,此时Z坐标取0;

然后使水平投影面绕X轴旋转-90,使与正投影面

处于同一平面;

最后让图形沿Z轴平移-tz,使水平投影与正投影

拉开一定距离。

1o0r「i。°

'y'z'l〕=1xyzl〕°10Q0cos90sin90

00000-sin90cos90

001JI。00

侧面投影(左视图)

先将立体向W面作正投影(乂坐标取为0);

然后绕Z轴旋转90,使与V面处与同一平面;

最后使图形沿X轴负向平移一个距离-tx,使正面投

影和侧面投影保持一个距离。

000ocos90sin900

‘y'z'1〕=1xyz1]0100-sin90cos900

0010001

000000

3.4.2正轴测投影

正轴测投影的形成过程如下:

►将空间一立体绕某一坐标轴正向旋转6角;(取Z轴)

►然后再绕另一坐标轴反向旋转巾角;(取X轴)

►最后向包含这两个坐标轴的平面正投影。(取XOZ平

面)

Z

正轴测投影变换矩阵的一般形式:

cos0sin000~-1000~-1000

-sin8cos0000cos(-(/))sin(-。)00000

00100-sin(-°)cos(-°)00010

000100010001

绕Z轴旋转e角绕X轴旋转q>角向XOZ面投影

cos60-sin£sin。0

-sin60-cos<9sin(/)0

00cos。0

0001

当0=45°,q>=35。16,时,得到正等测轴测投影

<0.7070-0.4080、

-0.7070-0.4080

正等测

T000.8160

0001

当8=20。42,,中=19。28,时,得到正二测轴测投影

厂0.9350-0.1180、

-0.3540-0.3120

正二测

T000.9430

0001

3.4.3透视投影变换

Y

1)单点透视

P

O

Qw(居兀ZD

Xs

Qs(4,4)

Z2

7一N

乙乙

利用几何关系可得:21■内

——N»w

Nz—N]

—N/—N»

若令用户坐标系(屏幕坐标)的原点在。,则Z1=O,上式可简化为:

223

./—N卬-X=

工wN叩

名—%9

Ys=•上

2r--w1一N“

若Z2f8,为平行投影,Xs=%,%=%,结论显然正确

上述变换若用矩阵形式可写为:

10001000

01000100

[xYZ\]=\xYZ

LsssJLwww0010000

Z2

00010001

XwYw

Z2」

—01

13

Zz

若r=-〃Z2,则主灭点在Z轴上Z="处,此时,与xy轴平行的线段经透视

投影后仍平行于右,右轴

与此类似,若主灭点在Y轴或1轴上,变换矩阵可分别写为:

1oo01F1000

010q0000

00100010

0ooijLO001

100P0000

01000100

00100010

00010001

2)两点透视

在三维变换矩阵第4列的3x1子阵中,如果有两个非零元素,即得到二

点透视。设一个主灭点在X轴上X=1/T处,另一个主灭点在Z轴的Z

9f9

处,画面为xoyo则透视的投影变换矩阵为:

100X?cosg0—sing01000

010001000100

0017sin60cos300000

000100010001

轴旋转的矩阵,它使轴平行于屏幕画面,并使画

其中T2为物体绕YY

面与原坐标面成q角

例:有一个单位立方体MC6,其顶点为4通,(2,4瓦月6珥(如图示)。

选p=-0.25,

A(0,-l,0)

B(0,-l,l)

C(0,-2,1)

D(0,-2,0)

E(l,-l,0)

F(l,-l,l)

G(l,-2,1)

0)

0-1010-1o1

0-111-0.59-1.18o1

0-2110.86600-0.25-0.59-2.3601

0-20101000-201

M-T

CKo1-101-0.500-0.151.15-1.3301

1-11100010.61-1.6701

1-211

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论