《计算机图形学》完整课件_第1页
《计算机图形学》完整课件_第2页
《计算机图形学》完整课件_第3页
《计算机图形学》完整课件_第4页
《计算机图形学》完整课件_第5页
已阅读5页,还剩127页未读 继续免费阅读

下载本文档

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

文档简介

计算机图形学

任鸿翔

大连海事大学航海学院航海动态仿真与控制室

教学目的

■掌握计算机图形学的基本知识

■掌握三维图形的显示流程和基本变换

教材及参考书

■《计算机图形学》(第3版)蔡士杰译电子工业出版社

■《ComputerGraphicswithOpenGL》3rdEdition,DonaldHearn,PrenticeHall

《计算机图形学》孙家广编清华大学出版社

第一章计算机图形学综述

一、定义

Apictureisworthathousandwords.

计算机图形学是研究通过计算机将数据转换为图形,并在专门的显

示设备上显示的原理、方法和技术的学科。

二、研究内容

■图形输入、输出设备与技术

■图形的生成和表示技术

■图形操作与处理方法

■图形信息的描述和表示

■几何模型的构造技术

■动画技术

■图形实时性和真实感

三、相关学科

模计算机图形学

模式识别

四、发展史

■硬件(大->小)

五十年代MIT—WhirlwindComputer(准备期)

六十年代IvanSutherland--Sketchpad绘图系统(发展期)

七十年代中型机、小型机(实用化)

八十年代图形工作站(推广应用期)

九十年代PC+图形加速卡(普及和广泛应用期)

■软件(从非标准一>标准化;从与设备相关一>与设备无关)

七十年代ACMSIGGRAPH--3DCoreGraphicsSystem

八十年代ISO—GKS

ANSI—PHIGS

SGI-GL

九十年代OpenGL

DirectX

五、应用

■图和表■数据可视化■娱乐

■计算机辅助设计■教学和培训■图像处理

■虚拟现实环境■计算机艺术■图形用户界面

大连海事大学大型船舶操纵模拟器

六、应用程序演示

■MarineSimuIator(CCTV-1)演示

■MarineSimuIator(Under-sea)演示

■MarineSimuIator(Wuhan-harbour)演示

■CIothSimuIation演示

■FractaITerrain演示

第二章图形学基础

2.1图形学的数学基础

1向量

2矩阵

3齐次坐标

2.2图形系统的相关设备

1图形系统的组成

2图形系统的分类

3图形系统的显示设备

4图形系统的其他设备

<2.1图形学的数学基础

2.1.1向量

向量具有两个基本特性:大小和方向。设有两个三维向量V](xi,yr

-向量的长度(大小)

匕|=Jxj+yj+z;

V

昌称为匕的单位化向量

■数乘向量

aVx=(叼,孙,名)。为实数

■向量和

=(x1,yl,z1)+(x2,y2,z2)

=(x1+x2,yl+y2,zl+z2)图匕+匕

■向量的点积

匕•匕=|用闷cose=xi%2+JV2+Z1Z23为两向量之间的夹角

匕.匕=0o匕JL%

点积满足分配律、交换律和结合律

■向量的叉积

iJk

匕x%二/月

4=(y^2一乃4,4X2-Z2^1^172一巧必)

々当z2

匕x%=00匕平行V2

叉积满足分配律,不满足交换律和结合律

匕x%+%)=匕x%+%x匕

(匕x%)x匕¥%x(%x匕)

垂直/平行多边形的方向多边形的凸凹性

1.2矩阵

mxn阶矩阵A定义为:

%%…%》

^m2…amn

其中为被称为A的第i行第j列元素,(阳92,%3,…,阳)称为第i个行向

量,(%,«2C均「-4砂),称为第)个列向量,如果加=〃称A为n阶矩阵或

n阶方阵。

■矩阵的加法:

■1+41%2+可2…%+可广

〃21+^21〃22+》22…a2n+^2n

JD—•■•••••・・•・・

"ml+“加2+"m2…"mx

・数乘矩阵:

她1彻2…彻M

加21奶22九5

kA二

・・・••••■■■■•

如加…ka.集

■矩阵的乘法:

Cmx〃=MnxpBpy;(%)心〃

P

矩阵中的元素。广£《也

k=[

矩阵的乘法满足分配律、结合律,不满足交换律

A{B+C)=AB+AC

ABC=(AB)C=A(BC)

AB^BA

-矩阵的转置:

ana12,,,ana21…

〃21a22…々2nT〃12422am2

Anxn一A=

・・・•■■■■•««■・・・■■•

am2,,,a2n•••3am刀

T二炉T

(T)T=A二A

・矩阵的逆:对于一个n阶方阵A,如果存在一个n阶方阵B,使得

AB二BA=In(单位矩阵),则称B是A的逆,记为B=A'1

2.1.3齐次坐标

所谓齐次坐标就是用n+1维向量来表示n维向量,如向量(七,、2,…,乙

用齐次坐标表示为(〃再,五大…,历%〃),其中h为非0实数。显然一个向量

的齐次坐标表示是不唯一的。

2.2图形系统的相关设备

2.2.1图形系统的组成

软件和

显示设备图形计算机L.

数据库

2.2.2图形系统的分类

1)采用大、中型计算机的图形系统

2)采用图形工作站的图形系统

3)采用PC机的图形系统

PC+图形加速卡

2.2.3图形系统的显示设备

PCI/AGP/

CPU・4・•显卡•显示器

PCI-E总线

图图形显示流程示意图

一、显卡(图形加速卡)

/显示芯片(图形处理器,GPU)

/显存:

RAMDAC:

■总线接口:

输出接口:

显卡工住原理值第两,

二、显示器

CRT显本器

液晶显示器

等离子显示器

图具有一位帧缓存的黑白光栅显示器工作原理

图具有24位面的真彩色光栅显示器工作原理

三、其他显示设备

头盔显示器(HMD:Head-MountedDisplay)

CAVE

(CaveAutomaticVirtualEnvironment)

立体显示器

2.2.4图形系统的其他设备

数字化仪

第三章输出图元

图具有一位帧缓存的黑白光栅显示器工作原理

在光栅显示器上显示的任何一种图形,实际上都

是一些具有一种或多种颜色的象素的集合。显示一个

图形的过程就是确定一个象素集合及其颜色过程,这

个过程称为图形的扫描转换(或光栅化)。

对图形的扫描转换一般分两个步骤:

1.先确定有关象素;

2.再对象素进行写操作(如颜色等)。

3.1线的扫描转换

3.1.1数值微分法(DDA)理想直线:扫描转换直线:

没有宽度一个象素宽度

y=m-x+b无数个点有限个象素点

/7]

b-yx-m-xx

在屏幕上输入两端点,假定斜率0〈加4,

让x从左端点到右端点变化,每步递增1个

象素,计算对应的y的坐标。

(乙,为)(4+1,H+1)

/+1=%+1

yk+i=m(xk+1)+6=mxk+b+m=yk+m

XIX2左

E,)—(x+1,Round{yk+m))

图3T

OJ

r0<m<l:X每步递增1个象素,y递增m(直线斜率)

(X左,入)—(4+I,Roundlyk+m))

向<

右m>l:可将x和y的规则交换,y每步递增1个象素,计算对应的x的坐标

(x,y)^(Round(x+—),^+1)

kkkm

从0<m<1:x每步递减1个象素,y减少m(直线斜率)

向(乙,力)一(4一1,Round(yk-m))

m>\:同样可将x和y的规则交换,y每步递减1个象素,x减少1/m

(4,以)—(Round(x~~\y-1)

kmk

3.1.2Bresenham画线算法

图3-3局部显示屏幕

图3-4向右绘制的直线(0<加41)图3-5向左绘制的直线(加>1)

图3-6对(工,”)(%,/)两图3-7在取样位置乙+1处,候选

点间的线段进行扫描转换象素到线段y坐标之间的竖直距离

尸加6+1)+6

"2=(%+1)->

d、—d2—2y—2y左一1=2加+1)+2b—2y左一1

XkV1

加=ZA=电

演-4Ax

Ax(4—出)=Ax[2——(X/,+1)+2b—2力—1]

Ax"'

=2Ay•xk—2Ax•yk+2Ay+AY(2Z?—1)

=2Ay•xk-2Ax-yk+c其中c=24y+Ax(2Z?-1)

给定线段从左向右绘制,Ax>0,所以Ax(4-4)的符号与4—刈的符号相同。

令Pk=Ax(4-刈),称以为Bresenham画线算法中第k步的决策参数。

X.X.+1

pk-Ax(d[-d2)=2Ay-xk-2Ax'yk+c

Pk<0,则4—出<。,4<"2,选择绘制(4+1,%);

Pk>0,则dx-d2>0,4>d2,选择绘制(4+Vyk+1);

Pk=3选择绘制®+L0+1)或a+L”)都可以,约定绘制®+1,%)。

(4,外)—(招+1,然+1)

以Pk&。

%左+1=4+1J4+1=

为+1A>°

Pk=2与•/_2Ax$+c

•♦

Bresenham画线算法中第k+1步的决策参数Pk

Pk+i=2Ay・乙+]-2Ax•%+cX:

夕/1一74=2绿・4+]-2©»+]+。一(2力・4-2©»+。)

=2绿(Z+if.)-2Ax(%+i-%)

Pk+产Pk+2AW/+1-4)-2Ax(%|一力)

='"R可得

由项:+1=项+1,外+1:

U+lPk>。

2Pk4O

jpk+Ay

Pk+\-]“A

IA+W-2AxPk>0

Pk+2AyPk<。

pk+\=

pk+2Ay-2AxPk>。

由此可见,如果计算出第一个决策参数Po,其它的决策参数PA

可以由递推算出(递推算法中只有整数的加减法,易于硬件实现),

根据决策参数的符号可以决定选择哪个象素点绘制,直到整个线段绘

制完毕。

p0=2Ay•-2Ax-ys+2Ay+Ax(2Z?—1)

—2Ay,Xs-2Ax,(——,xs+6)+2Ay+Ax(2Z?-1)

=-2Ax•b+2Ay+Ax(2b—1)

=2Ay-Ax

0<m<1时的Bresenham画线算法:

1.输入线的两个端点,并将左端点存储在(%s/s)中;

2.将(4,/)装入帧缓冲存储器中,画出第一个点;

3.计算决策参数的第一个值:p0=2Ay-Ax;

4.从k二0开始,在沿线的每个4处,进行下列检测:

假如<0,下一个待画点是(4+1,以),且外+1=外+2八y;

否则下一个待画点是(项.+1,以+1),且Pk+i=Pk+2Ay-2Ax;

5.重复步骤4,共AxT次。

作业一

1.图形与图像的联系与区别。

2.显存与帧缓存是一回事吗?一显示器可显示256种颜色,其分辨率为

1024*1024,则需要的帧缓存容量至少为多少?

3.显卡的主要组成有哪些?简述显卡的工作原理。

4.编程题:用VC或其他语言编写程序,实现完整的Bresenham画线算法。

3.2圆的扫描转换一一中点画圆法

{x-xcy+{y-ycf=r-

图3—8图3—9

坐标系中任意一点(X,y)与圆的位置关系:在圆内、在圆上和在圆外。

「<0(x,y)位于圆边界内

farciedy)=x~+y2<=0(x,y)位于圆边界上

、>0(x,y)位于圆边界外

图3To

£力区(、,/)=、2+/一炉为中点画圆算法的决策参数

第k步的决策参数以:Xr

2

Pk=farcied+l,yk-0.5)=(xk+1)+(yk-0.5)2—户

Pk<0,中点在圆内,选择绘制(々+1,”);

Pk>0,中点在圆外,选择绘制(4+1,以-1);

Pk=o,选择绘制®+1,%-1)或®+1,")都可以,约定绘制6+

(XQ%)—(4+』+1)

ykpk<°

4+1=为:+1"+1=

力—1PkN°

中点画圆算法第k步的决策参数:

Pk=fcircle^k+Lh一0.5)=乂+I)2+(然一OS)?—/

中点画圆算法第k+1步的决策参数:

222

Pk+1=fcircle(Xk+l+1,然+1一0・5)=(4+1+1)+(%+1一0.5)-r

Pk+\~Pk=(4+i+1)2+(%+i-。.5)2___+1)2+(然_0.5)2-r2]

222

二[(%+1)2—(/+1)]+[(加-0.5)-(然-0.5)]

Pm=A+K%+IP一@+1)?]+[(%]一OS:—(%_Oy

"A<°

X

k+\=Z+1,J4+1

》女一1P20

74+24+3=夕后+24+]+1A<°

Pk+\~

Pk+2*+3-2(yk-1)=pk+24+1+1-2yA+iPk?。

Pk+2®+1)+1=A+2/+1+1Pk<。

Pk+i~

Pk+20+1)+1—2(yk-1)=pk+2%a+1+1-2yk+ipk>0

在起始位置(0,r)处,初始决策参数为:

PO=/circled-0・5)=1+(一一0.5)2—/=[一尸

由此可见,如果计算出第一个决策参数Po,其它的决策参数”

可以由递推算出(递推算法中只有整数的加减法,易于硬件实现),

根据决策参数的符号可以决定选择哪个象素点绘制,直到八分圆绘制

完毕。其它七个八分圆可由圆的对称性进行绘制。

中点画圆算法:

1.输入圆的半径r和圆心(血,%),得到圆心在原点的圆周上的第一点为:

(*0,歹0)—(0,r);

2.计算决策参数的初始值:Po=j--;

3.从k=0开始,进行下列检测:

假如夕%<°,下一个待画点是(4+1,以),Pk+i=Pk+2x,+1+1.

否则下一个待画点是(4+1,%-1),且4+1=Pk+2/+1-2/+]+1.

4.确定在其它七个八分圆的对称点;

5.将每个计算出的象素位置(x,y)移动到中心在(儿,%)的圆路径上,

并画坐标值。x=x+xc,y=y+yc

6.重复步骤3—5,直至x>yo

3.3椭圆的扫描转换一一中点画椭圆法

椭圆中心在坐标原图3—11中心(%,〉,),长半

点的标准位置椭圆轴q和短半轴外的椭圆

“平移变换

椭圆中心在其它地

方的标准位置椭圆

H旋转变换

非标准位置的椭圆

图3—12椭圆的对称性

椭圆某点处的斜率为:

dy_2小

dx

在区域1和区域2的交界处斜率为一1

虫=7

dx

图3-13椭圆的处理区域

r\2c2

2Gx=2rxy

所以从区域1移至区域2的条件是>2rry

中心在坐标原点(0,0)的标准位置椭圆,定义椭圆函数为:

<0(x,y)位于椭圆边界内

z*z\22.2222

/ellipse。,y)=GX+G歹~rxry\=0(x,y)位于椭圆边界上

>0(x,y)位于椭圆边界外

为中点画椭圆算法的决策参数,区域1的决策参数记为A:

PL=狐pseKOk)=ryXk+-rxry

凡=,飒e6+1,为一。-5)二弓2@+厅+々2(”一o《J一九2

第k步绘制(与,然)假设第k+1步绘制(X-i,力+1)

,1左<0第k+1步绘制(乙+L以)%+1=%

plk20第k+i步绘制E+1,%—1)以+i=yk-i

在区域1,中点画椭圆算法第k+l步的决策参数:xkx古1xt2

凡+1二狐/々+1+1,九+1一。5)图3T4区域1(孙川

PL+l=d(/+l+1)2+1(九+1—0.5)2_r2r2

风L日人+1)+If+/出厂0.5)2-

2

P1k+i="+1)2+2r;(Xk+1)+rv+&2(%+]—0.5)2_立+小力一。5了一日/一。5了

风+广风+2G2(4+1)+d+/[(加―0.5)2_u_0.5力

pl"i=plk+2%2(/+1)+勺2+&2K_o5)2_(%—。§2]

pik<°=yk

风+1=plk+2r;g+1)+Y=plk+2r^xk+1+r:

plk>0>人+i二>左—1

2

“k+i="L,+2r:(4+1)+々2+2r^-yk+1)=plk+2r^xk+x+ry-2r^yk+]

由此可见,在区域1中如果我们能计算出第一个决策参数川o,其

它的决策参数pl可以由递归算出,把两个候选象素的中点代到决策

参数中,根据决策参数的符号可以决定选择哪个象素点绘制,直到区

域1绘制完毕。在区域1中,决策参数的初始值可通过椭圆函数在起始

点(0,々)处求值得到:

2

P】o=feinPse^+1,4一0,5)=rv-r^ry+%

区域2的决策参数记为p2k:

P2k=/ellipse(Xk,/)=ryXk+J—

x22

P?k=feinPse{k+0$,%—1)=r}(xk+0.5)+/(%—Ip一YY

第k步绘制(/,/)假设第k+1步绘制(x《+i,力+i)

P2k—。弟k+1步绘制(x/c+\,yk—1)4+i=x%+1

P2k>0第k+1步绘制(与,以—1)xk+i=xk

在区域2,中点画椭圆算法第k+1步的决策参数:

P2k+1=fellipse(Xk+\+°5,》左+1-D

(《加_)

p2k+l=YZ+1+05)2+2(]2_r2r2图3-15区域2(%"Q

p2k+i=/(/+1+0.5)2+1[他一1)—1)[2一G2G2

2222

p2k+i=d(/+i+0・5『+rx(yk-1)-2r\yk-1)+-4叶++0.5)-r^xk+0.5)

阳+1圈-2/-1)+寻日(%+0.5)2+0.5)2]

P2m=P2k—2/(%-1)+1+不[(/讨+O.5)2一(4+o.5)2]

P2k<0Z+i=4+1

2

P2g=P2k-2/(力_1)+1+2G2(/+1)=p2「2/%+]+/+2ryxk+i

P2k>。*+i=*卜

P2k+i=P2「2G之(%-1)+&2=p2k_2G2弘+]+丫;

由此可见,在区域2中如果我们能计算出第一个决策参数p20,

其它的决策参数夕2可以由递归算出,把两个候选象素的中点代到决

策参数中,根据决策参数的符号可以决定选择哪个象素点绘制,直

到区域2绘制完毕。在区域2中,决策参数的初始值可由区域1中最后

点(x/)求值得到:

p2o=/ellipse^+gy—1)=42a+0.5)2+/(y—if--j;

中心在坐标原点的标准位置椭圆扫描转换算法:将

1.输入椭圆长短轴。弓,得到椭圆第一点为:(/,比)二(0,勺)勺

7717

2.计算区域1中决策参数的初始值:21。=弓-4弓+]丁;

3.在区域1中,从k=0开始,进行下列检测,直至2弓

假如pl%<0,下一个待画点是(4+1,力),plk+l=风+2弓2/+]+弓2;

否则下一个待画点是(4+1,然一1),21左+1=夕1A+262々+1+々2一2心2%+1;

确定其它三个象限中的对称点

4.使用区域1中最后点(xj)来计算区域2决策参数的初始值:

22

p2o=+OS)?+rv(j/-l)-rvY

5.在区域2中,从k二0开始,进行下列检测,直至尸0:

22

假如-2%>0,下一个待画点是心,丁-1),夕2什]二22A「2不”X+G;

否则下一个待画点是(4+1,%—1),夕2八]=p2k—2々2%+]+1+2与2队小

确定其它三个象限中的对称点

第四章二维几何变换

4.1基本变换

4.2矩阵表示和齐次坐标

4.3复合变换

4.4其他变换

4.5二维笛卡尔坐标系间的变换

4.1基本变换

4.1.1平移

平移是将图形从一个位置移到另一个位置的变换。

x'=%+tx

y'=y+ty

用列向量表示坐标点p,p':•P'(X',y)

ty

X,-|「X

p=p=•p(x,y)

令T=4

tx

得到平移变换的矩阵表示为:图4—12点平移到夕'点

P'=P+T

4.1.2旋转

旋转是将图形绕某一旋转点旋转一定角度的变换。

x'=/cos0+6)=rcos^cos^-rsin^sin^

y'=〃sin(0+e)=_cos0sine+rsin°cos。

x二rcos(f),y=rsin^

x'=xcos0-ysinO•P'(X;y)

y'=xsmO+ycosO

r

。一。•P(x,y)

Acossin、3

令R=r

sin。cos。\

'M

得到绕坐标原点旋转变换的矩阵表示为:

cos0-sin。*图4—2p点绕原点旋转到p'点

y'sin。cos0y_

P'=R-P

4.1.3缩放

缩放是将图形相对于某一固定点放大或缩小的变换。

X'=X•sx

了二>0

•P(x,y)

y5)

得到相对于坐标原点缩放变换的

矩阵表示为:

图4—3p点相对于原点x方向缩

放力,y方向缩放力得到夕'点

P'=SP

4.2矩阵表示和齐次坐标

平移、旋转和缩放三种基本变换的矩阵表示分别为:

P=P+TP=RPP=SP

1.对图形做相对于坐标原点先旋转(R)、再缩放(S)的变换:

先旋转变换:P'=R.P

再缩放变换:P'=SP=S(RP)=(SR)・P=MP

2.对图形先做平移变换(T),再相对于坐标原点做缩放变换(S):

先平移变换:P=P+T

再缩放变换:P'=S•尸=S-(O+T)=S-P+S-T

表4-1两个例子中的矩阵运算次数

一个占

1八、、三千个点三千个点(合并后)

例12次x6000次x3001次x

例21次x,l次+3000次x,3000次+3001次x,3000次+

在实际图形系统中,经常对图形做多个变换,这就需要进行大量的矩阵计算。

为了减少计算量,比较好的方法是将多个变换矩阵合并成一个复合变换矩阵。

所谓齐次坐标就是用n+1维向量来表示n维向量,向量(2,%2,…,招)的齐

次坐标表示是其中h为非0实数。二维点(x,y)的齐次坐

标表示为(hx,hy,h),通常向1=1,(x,y)的齐次坐标表示为(x,y,1)。

平移变换:

・P'(M,y5)

x'=x+4ty

•p(x,y)

y'=y+ty

用齐次坐标表示坐标点P,P\

tx

10X

令平移矩阵

79,6)=01y

001

得到平移变换的矩阵表示为:

对于绕坐标原点的旋转变换:

•P'(X:y)

x'=xcosO-ysinO

y'=xsin夕+ycos夕r

eep(x,y)

用齐次坐标表示坐标点,”

cos。一sin。0

令旋转矩阵尺(。)=sin<9cos<90

001

得到绕坐标原点旋转变换的矩阵表示为:

一sin。0x

cos。0y

011

p=R(e)•p

对于相对于坐标原点的缩放变换:

%'二X•sx

歹'二》巴

>p(x,y)

用齐次坐标表示坐标点p,p'

•p'(x',y)

邑oo

令缩放矩阵S(Sx,s,)=0Sy0

001

得到相对于坐标原点缩放变换的矩阵表示为:

0

Sy

0

)•

采用齐次坐标后,所有基本变换表示成矩阵的乘法,图形在做多个变

换时,可将各变换矩阵按先后次序相乘,形成一个复合变换矩阵M;图形上

的坐标点只须与M相乘,便可完成一连串变换,得到新的坐标点。

4.3复合变换

4.3.1复合平移

复合平移是将图形做二次以上的平移变换。

在二维坐标系中,将点)(x,y)平移两次,第一次在x方向、y方向分别平

移&,&,第二次在x方向、y方向分别平移的心,得到点

P=T(M>&(%,%)•口

=[7&2,3)"(&,%)],

1o%]ri0%+4.2

T9242),T(&,外1)=。1%•01。=01,+ty2

001J[ooijL°01

=T(1+&2册+。2)

P=TQxl+&2,4+&),0

4.3.2复合旋转

复合旋转是将图形绕坐标原点进行多次旋转变换。

将点Mx/)旋转两次,先绕坐标原点逆时针旋转q角,再绕坐标原点逆

时针旋转。2角,得到点夕:

P'=R(2)•[火⑹,口=网2)•P

cos^2-sin6)20cos6]—sin40

•sin4cos。10

R®.RG)=sin2cos^20

001001

cosdcos02-sin0{sin02-sinqcosa-cos61sin020

cos61sin2+sin仇cos%cos,cosa—sin仇sin%。

001

cos(^+02)-sin(4+2)0

sin(a+2)cos{01+^2)0=K(a+a)

001

4.3.3复合缩放

复合缩放是将图形相对于坐标原点进行多次缩放变换。

将点)(兀V)缩放两次,先相对于坐标原点缩放外,再相对于坐标原

点缩放%,%,得到点夕:

尸'=862%2)3(%小)・尸]

=[8(&2%2>5(%巴1)],尸

K°o[「S"00

S(Sx2,S”>S(%i,Syi)=05^20.0s.0

001JLo01

Sjcl,Sx200

二0Syi'sy20

001

=S(Sxi・Sx2,s,i-Sy2)

户'=5(%1・12,5..5丁2).尸

4.3.4绕(匕,%)点的旋转变换

当旋转点不为坐标原点,而是任一点(芍,以),图形绕(5,乂)旋转夕

角的旋转变换:

1.平移图形使旋转点(芍,外)与坐标原点重合,平移变换矩阵为7(-%,-%);

2.图形绕坐标原点旋转。,旋转变换矩阵为&(夕);

3.平移图形使旋转点回到其原始位置,平移变换矩阵为。

绕(当,乂)旋转。角旋转变换的复合变换阵/=T(Xr,yAR3)・T(f,—y)

图4—4绕(再旋转。角的旋转变换

〃=7KJ)H(e)・T(f券)

10%cos^-sin^010-xr

01sin5COS000

yr1_K

00i001001

cos5-sin0xr(1-cos5)+sin5

二sin。cos5yr(1-cos5)-xrsin5

001

P=MP

4.3.5相对于(号,力)点的缩放变换

当固定点不为坐标原点,而是任一点(Xf//),图形相对于缩放

系数为%,S»的缩放变换:

1.平移图形使固定点(号,〃)与坐标原点重合,平移变换矩阵为T(-X/,-刀.);

2.图形相对于坐标原点缩放工,S),缩放变换矩阵为8(%,%);

3.平移图形使固定点回到其原始位置,平移变换矩阵为

相对于(号,〃)点缩放变换的复合变换阵M=•S(Sx,%>T{-xf-yf)

图4—5相对于(x/J/Jl勺缩放变换

(

X

)

J

7,

c

),

•s

s(

K二

J)

sn

4.3.6变换的次序

图形先后做多个变换MM,…,M〃,复合变换矩阵M由各变换矩阵依次

相乘得到,要注意各变换矩阵相乘的次序。

例:如图所示,对同一三角形分别进行两次复合变换,请画出每次复合变

换后三角形的位置。复合变换矩阵分别为:

R(90°厂7一1,0)7(—1,0)/(90〉

图4-6变换矩阵相乘的次序不同得到的变换结果不同

4.4其他变换

4.4.1反射(对称)

图4—7反射变换

abde反射变换

100-1关于x轴

-1001关于y轴

ab0-100-1关于原点

0110关于y=x

常用的反射变换矩阵通式:M"de0

0010-1-10关于y=-x

■4.4.2错切

图4—8错切变换

-

x'X1bO-Xx+byX’v'错切变换

y'=Msh-y—d10y—dx+yb彳O,d=0x+byy关于x轴

ii001i1b=0,dw0Xdx+y关于y轴

1bO-

相对于x、y轴的错切变换矩阵通式:Mshd10

001

图形相对于与X或y轴平行的直线做错切变换可由以下儿步完成:

1.平移图形使直线与x或y轴重合;

2.图形相对于x或y轴做错切变换;

3.平移图形使直线回到其原始位置。

例:对图形相对于直线y二T做错切变换,错切参数为1/2。

%%

M=7(0-(;)1(0,1)=010

001

4.5二维笛卡尔坐标系间的变换

yi

vi

cP(U,V)

2•

iL__________

u

o237

(1)

yi

vip

P、%。

2・5

pbP'S-

1一

u

。23r

(3)

yiPN=P'uv

=R(-30。).以

2=H(—30)7(—2,—1)•七

1=M%

(2)

yi

M=7?(-30)-7(-2,-l)

cos(-30)-sin(-30)OT1

sin(-30)cos(-30)00

01

yi

%=MP”

"(V3+%一

1

ou'

如图两个笛卡尔坐标系:xy系和uv系。

图形从xy系坐标变换到uv系坐标,必须建立uv系到xy

系的变换:

oXX

1.平移UV系,使UV系的坐标原点与xy系的原点重合;a

10_XQ

丁(一/,一y0)=°1_7o

001

2.旋转uv系8角,使u轴与X轴重合。

cos。sin。0

R(—8)=—sin。cos。0

001

将这两个矩阵合并成复合矩阵:

M=R(—”(一/,一为)

图4—9笛卡尔坐标系间变换

yi

在许多情况下,两坐标系中U轴和X轴的夹角8并

不知道,此时可利用UV轴的轴向量来完成旋转变换:

/U

U轴的单位向量为u(ux,uy)

22

Ux+uy=1

Ux

-------1Jcin—=U

COS0=-yOUx

\u^+u2xA2+u2

yy

图利用轴向量

cos。sin。0~uo-4—10

x进行旋转变换

R(叫=-sin。cos。0—-uy%0

001001

V轴的单位向量为V(匕,V,,它是由单位向量〃旋转90度得到的

V=-u.V=uXvVXcos90°-sin90°0ux

-

-4UUysin90°cos90°0u

yo州y

1[1

—V

R(-e)=~Uyux0匕yD00

001001

因此,由UV坐标轴的单位向量可得到两坐标系的旋转变换阵。

第五章二维观察

5.1例子与基本概念

5.2观察流程

5.3建模变换

5.4观察变换

5.5规范化变换

5.6视口变换

5.1例子与基本概念

X

(-0.5,-0.5)

(-2.0,-2.0)

建模(局部)坐标系世界(全局)坐标系设备坐标系设备坐标系

ModelingCoordinateWorldCoordinateDeviceCoordinateDeviceCoordinate

图5-1用OpenGL显示一个简单的两维图形

裁男/观察窗口(cIipping/viewingwindow):场景中要显示的区域。

屏幕(screen):图形显示器输出的最大区域。

窗口(window):小于或等于屏幕区域。

视口(viewport):小于或等于窗口区域。

二维观察变换(ViewingTransformation):图形由世界坐标系裁剪窗口映射

到设备坐标系视口的过程。

5.2观察流程

™HelloME区I

裁剪窗口yn*

~7iXn

(-0.5,-0.5)

(-2.0,-2.0)

温馨提示

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

评论

0/150

提交评论