第4章 图形处理技术基础_第1页
第4章 图形处理技术基础_第2页
第4章 图形处理技术基础_第3页
第4章 图形处理技术基础_第4页
第4章 图形处理技术基础_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

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

文档简介

第4章图形处理技术基础

4.1图形的几何变换

-图形几何变换的基本原理

-二维图形的基本变换

■二维图形的组合变换

■三维图形的变换、工程图的生成

4.L1图形几何变换的基本原理

-图形:无论二维或图形,都是由组成图形的点、

点之间的连线、连线构成的面、以及点、线、

面之间的关系表达的。

■图形变换:只是改变图形顶点的坐标,不改变

它们的拓扑关系。

■从原理上讲:图形的几何变换,实际上位点的

变换。

4.L2二维图形的基本变换

■一个点的坐标可以用矩阵形式[Xy]或表示,坐

标变换的矩阵表示形式为:步

■AT=B,T为变换矩阵

ab

设T

cd

ab

[axbx

[xy][xc。加

y]

变换类型

*

xaxcy

(1)比例变换

V*bxdy

当b=c=O,a、d>0,

A

[X**y][X[axdy]

中)等比例变换

a=d时

2)不等比例变换

a#d时

(2)对称变换

1)对X轴x*axcy

a=1,d=—1;y*bxdy

2)对Y轴

a=—1,d=1;

3)对原点

A=—1,d=-1

(3)错切变换

1)沿X方向Y

b=0,d=La=Lc#0时,

[x*y^lx+cyy]

练习:对如图所示的边长为10的正

方向进行c=2的错切变换。

4OO)OO)Z*

0

81o1O1O05

1*

00

c1KO1⑵13O1C

1*

DOO——0

1。*

20

2)沿Y方向

a=l,c=0,d=Lb#0时,

[x*y^]=[xbx+y]

练习:对如图所示的边长为10的

正方向进行b=-0.5的错切变换。

X*axcy

A0000y*bxdy

510010.5105B*

C101001105G

DO1000D*

3)沿X、Y两个方向错切

a=d=l,b,0,cWO时,[x*/]=[*+①bx+y]

举例:对如图所示的边长为10的正方向进行b=c=0.5的错

切变换。

x*axcy

y*bxdy

(4)旋转变换

当。dcos,bsin.csin,

[x**y][xcosj/siliixsmycos

绕原点的旋转,转角逆时针为正。

x*axcy

y*bxdy

(5)平移变换

■无论变换矩阵中的即b,c,dx*ax

为何值,均不能实现图形y*bxdy

的平移,为此需要图形的

另一种表示坐标一齐次坐

标。

齐次坐标

z[HxHyHzH]

齐次坐标

■将一个11维空间的点用n+1维坐标来表示。

口如在直角坐标系中,二维点[xy]的齐次坐标

通常用三维坐标[HxHyH]表示;

口一个三维点[xyz]的齐次坐标通常用四维坐

标[HxHyHzH]表示。

口最后一维坐标H称为比例因子,H为不为零

的任意实数。

■直角坐标与齐次坐标的关系

x=Hx/H

y=Hy/H

z=Hz/H

■任一点可用多个齐次坐标表示。

■例如二维点(20,10)用齐次坐标可表示为:(20,

10,1)、(40,20,2)或者(30,15,1.5);

■同理三维点(2,3,5)的齐次坐标可表示为(2,

3,5,1)或者(20,30,50,10)。

一般,总是将H设为“产,以保持两种坐标的一致

________________________________________________

ab

变换矩阵:Tftdq

Ims

当a=d=s=l,b=c=p=q=O,I、而不全为0时,

,100I

x**y1xy1010[x

加11Im

/为x方向的平移因子,1%为丫方向的平移因

子。

齐次变换矩阵

■对于二维坐标系上的点,齐次坐标为[HxHyH];

■齐次坐标变换矩阵的形式是:

可以实现图形的比列、

对称、错切、旋转等

S

4.L3二维图形的组合变换

■工程应用中,仅用基本变换不能实现图形的

变换;

■必须采用两种或两种以上的基本变换组合才

能完成,即组合变换。

■设各次变换的变换矩阵分别为TLT2,

Tn,则组合变换矩阵是各次变换矩阵的乘

积。

绕任意一点对图形实施旋转变换

例1:三角形abc,坐标分别为a(6,4),b(9,4),c

(6,6),绕A(5,3)点逆时针旋转90。

图形变换由如下

步骤组合:

(1)平移变换

(2)旋转变换

(3)平移变换

(1)将图形平移

(—5,—3),使100

得旋转中心在原点no1o

531

(2)三角形绕原

0-

点旋转变换

0

(3)将图形平移(/,

阳),得到满足要求

的几何变换。

①-④

■组合变换矩阵

H1oo0I0I00

TT\T2T010I000I0

li|l5Jl31

00I53I

则,变换后的顶点:

XJ6

a44I

XV9

Q-47

1

XJ6

a24I

思考:当图形要对画面中的某一点A(Xo,y°)作放

大时,通过哪些基本变换复合而成?

(1)首先将图形平移,使点A与坐标原点(0,0)

重合;

⑵然后图形以(0,0)为中心作放大;

(3)最后将图形平移,使点A回原处。

则以点(1yj为中心,放大系数分别为XS>

S的组合变换矩阵为:

V

LLI1oosxoohoo

o,s001

TT1T2TT010

1001Un%UnJy

1

4.L4三维图形的几何变换

三维点坐标—三维点齐次坐标

(x,y,z)——(x,y,z,1)

三维图形的几何一

变换矩阵

/in

000

比例0^00

T=

变换00i0

0001

1000

0100

等比例T=

变换0010

000s

1000店z[

平移0100

T=

变换0010

mn\

三维图变换及其变换矩阵

变换变换

名称柜库图例说明

。一绕渤的旋转角,

逆时针为正,顺时针为

负。

4

"cosfi0-smO'Z

0100P—绕Y轴的旋转角,

旋转sinfi0cosfl0逆时针为正,顺时针为

变换0001_0负°

■cosysinx0o-

店:包7-绕Z轴的旋转角,

-sinycosy00

0010逆时针为正,顺时针为

0001负。

三维图变换及其变换矩阵

变换变换

名称矩阵图例说明

1000

0100

T

00-10对XOY平面的对称变换

Y

0001乂咛

1000

『0-100

对称T—

0010对XOZ平面的对称变换

变换

0001

-1000

0100

对YOZ平面的对称变换

0010

0001

三维图变换及其变换矩阵

蠹矩阵变换图例

说明

000

沿X含Y的错切,

100

010d——错切因子,

001

1000

沿X含Z的错切,

,0100

错切T=

g010g——错切因子,

变换

0001

1600沿丫含X的错切,

0100

T=

0010b——错切因子,

0001

三维图变换及其变换矩阵

(3)二维图形变换及其变换矩阵

变换变换

名称矩阵图例说明

1000正面投影变换,

0000图形在XOZ平面的投

0010影,即Y坐标的比例因子

0001为零。

水平面投影变换

1000

图形在平面的投

0100XOY

投登T

0000影,即Z坐标的比例因子

变换

0001为零。

0000

图形在YOZ平面的投

0100

T=影,即挫标的比例因子

0010

0001为零。

应用举例:

(1)对称变换

四棱锥S-ABCD对XOZ平

对称变换

,4

00

2

00

B6301=5

10

6

01

、3

4.L5三维图形的组合变换

■原理同于二维图形的

组合变换

度”,求旋转后的矢量。

I”

设旋转后的矢量为

如图:

V=c+n*(Z*h)

c=nXZXn*cosa+

nXZ*sina

4.1.6投影变换

■投影变换是各类变换中最重要的一种,是把n维坐标系中的

点交成才、于n维坐标系的点。

投影中心:投影线的汇聚

点,或投影参考点

投影线:物体发出的光线

与投影中心的连线

观察平面:也称投影面,

投影图所在的平面

平行投影:投影中心与投

影面距离无限远

透视投影:投影中心与投

影面距离有限

投影变换过程:

■建立观察坐标系;

■将世界坐标系中的物体变换到观察坐标系中;

■通过正投影变换将场景投影到观察平面。

■Pref:注视点;P0:观察原点;N:观察平面法向量;

■观察方向为N的反方向;

思考题:

1.如何确定XM部的方向?

规定向上方向V=[010],再通过矢量叉乘建立观

察坐标系。

2.如何实现将世界坐标系中的物体变换到观察坐标

系中?

1.平行投影

■按投影方向是否垂直投影面,分为正平行

投影和斜平行投影。

■正平行投影的投影方向垂直于投影面。

■正投影可测量实体的距离、角度,可度量

性好,在工程制图中应用广泛。

工程图的生成

三维图形转化为二维工程图的变换

Z

主视图的生成

取XOZ面为主视图的投

影面,变化矩阵为

ooo

o0o

o1O

OO1

俯视图的生成

■俯视图:取XOY面为投影面,然后绕x轴顺时

针旋转90度,然后平移一定的距离d。

俯视图变换矩阵为

L管

1Ooo

10001000o1oo

01000cos(90)sin(90)0

oo

00000sin(90)cos(90)00ood

0001Ioo

左视图的生成

■左视图:取YOZ面为投影面,

然后绕Z轴逆时针旋转90度,

然后平移d。

ooooO1OOO

o1o0cos90sin90oOO1OO

0sin90cos90

oo1ooooooOO

oo1dOO

oooo11

2.轴测投影

CAD/CAM设计的图形大多数为三维,轴测图的显

示需要用到轴测投影变换。

轴测投影变换实质是三维组合变换,先绕2个轴旋

转,在向一个平面投影。

例如先绕y轴旋转(P角,再绕x轴旋转。角,最后向

XOY平面投影。

OOo

COsin.ooOOO

OOOOoO1OO

sm1

cos

OO•OOOOO

sincosmcos

OOOOOOOOO

■轴间角:ZX1O1YiZxq不、/Y1O1Z1

■轴向变形系数:OiX[/ox=%/0丫=小O1Z1/

OZ=r|z

正二轴测投影变换

■当%=2%=1=1时,为正二轴测投影;

■先绕y轴旋转(p=19。28”,再绕x轴旋转。=

20°42”

■变换矩阵为:

0.9350.11800

00.94300

T

0.3540.31210

ooor

正等轴测投影变换

■当1=%=%=0・82时,为正等轴测投影;

■轴间角120。

■先绕y轴旋转<p=45。,再绕x轴旋转。=35。16"

■变换矩阵为:

0.7070.40800

00.81600

0.7070.40810

八001

3.透视变换

■通过投影中心将三维形体投影到投影面的变换。

■投影线从投影中心出发,投影线不平行。

■比轴测图更富立体感,投影面位于投影中心和实体之间。

小Z

P=(x,y,z)

■•

□投影中心/投影参考点(Projectionreferencepoint)

口为了简化计算,一般情况下取:

(1)观察平面位于观察坐标原点;

(2)投影中心在Z眼能方向,即xyprp=0o

■则经过坐标变换,使观察坐标系与世界坐标系重合

10°1°0°0

XyZ

011/40000

0010001

透视投影观察体

落在近、远裁剪平面之间的棱台体内的物体才能被显示。

OpenGL中,投影面与近裁剪平面重合,投影参考点位于

观察坐标系原点。

OpenGL实现透视变换实例

#include"stdafx.h"

#defineGLUT_DISABLE_ATEXIT_HACKglClear(GL_COLOR_BUFFER_BIT);//Showthedolorwith

#include<GL/glut.h>displaywindowcolor

GLintwinWidth=600,winHeight=600;//Initialdisplay­/*Setparametersforacube.*/

windowsize.glColor3f(0.0,1.0,0.0);//Setobjectcolortogreen.

GLfloatxO=0.0,yO=0.0,zO=100.0;//Viewing­glutWireCube(50);

coordinateorigingIFIush();//PrcessallOpenGLroutinesasquicklyas

GLfloatxref=0.0,yref=0.0,zref=0.0;//Look-atpoint.possible

GLfloatVx=0.0,Vy=10,Vz=0.0;//View-upvector.}

/*Setcoordinatelimitsfortheclippingwindow:*/voidmain(intargc,char**argv)

GLfloatxwMin=-20.0,ywMin=-20.0,xwMax=20.0,ywMax={

20.0;glutlnit(&argc,argv);//InitialGLUT

/*Setpositionsfornearandfarclippingplanes:*/glutlnitDisplayMode(GLUT_SINGLE|GLUT_RGB);//Set

GLfloatdnear=30.0,dfar=150;displaymode,defaultset

voidinit(void)glutlnitWindowPosition(50,50);//Setleft-topdisplay

(windowposition

glClearColor(1.0,1.0,1.0,0.0);//SetdisplaywindowtoglutlnitWindowSize(winWidth,winHeight);//Setdisplay

whitewindowwidthandlength

gIMatrixMode(GL_MODELVIEW);//SetprojectioglutCreateWindow("PerspectiveViewofASquare");//Creat

parametersdisplaywindow

gluLookAt(xO,yO,zO,xref,yref,zref,Vx,Vy,Vz);init();//Executeinitializationprocedure

gIMatrixMode(GL_PROJECTION);//SetprojectioglutDisplayFunc(displayFcn);//Sendgrapicstodisplay

parameterswindow

gIFrustum(xwMin,xwMax,ywMin,ywMax,dnear,dfar);glutMainLoop();//Displayeverythingandwait

}}

voiddisplayFcn(void)

参考书[2]计算机图形学,2.9、7.10节

课后思考题:

课后自运行以上程序,改变观察点、参考点位置、远、近

裁剪平面参数,观察所得到的图形,体会投影变换的原理。

■灭点:透视图上任何一束不平行于投影面的

平行线的透视投影的交汇点。

■主灭点:与坐标轴平行的平行线的灭点。

■根据主灭点的个数,分为一点透视、二点透

视和三点透视。

1000

0101/yj

X0010fj

10001I(

p、q、r中,有1个不为零则为1点透视;

有2个不为零,则为2点透视;

有3个不为零,则为3点透视;

点透视三点透视

4.2图形的消隐技术

4.2.1消隐的概念和作用

显示设备描绘物体的图形时,必须把三维信息

经过某种投影变换,在二维的显示表面上绘制

出来。

在显示三维图形时,存在一些问题:

0图形表达的二义性

(b)(c)

两个立方体相互遮挡的关系

■概念

□消隐线和消隐面:沿着投影方向,三维实体被挡住

的线和面;

□消隐:消除消隐线和消隐面的过程。

□消隐技术:查找、确认并且消除隐藏的线与面的技

术。

■作用:

□投影变换失去了深度信息,导致图形的二义性。

□消除图形表达的二义性,提高图形的真实感,使其

只有唯一解释。

422消隐算法中的基本测试方法

测试那些线和面是可见的,那些是不可见

的。

1.重叠测试

许多物体的投影是由若干个多边形构成的,

将这些多边形两两判别,看它们是否有重

叠部分,如果不重叠,说明它们肯定不互

相遮挡。

nmsw------------------------------

□第一步(粗筛):将根本不可能重叠的多变形

筛掉。判据为:

、>linax",Emin;'/min~'Bniax

第二步:对于外接矩形有相交的情况;

□将多边形的各边与另一多边形的每条边比较;

口如果2个矩形有重叠,计算交点。

2.包含性测试

测试点与多边形的包含关系有两种方

法:

□射线交点数算法

□夹角求和算法

y\y卜引出射线;由交点数判断。

二交点数为奇数时,点在多边

形内;

"■交点数为偶数时,点在多边

■■形外;

■射线经过顶点:

•两条边在射线两侧,

记相交一次;

--•两条边在射线一侧,

记相交2或0次;

■射线经过多边形的边,改变

射线方向。

勺有向边。

■测试点与多边形每

条边的两端点构成

三角形;

■求被测试点与多变

形各边对应的中心

角;

2,在内部;

I

0,在外部;

i

3•深度测试

深度测试是用来测

本方法。

・ZAZ2,点门喘;

■Z2>Z1,速可见;

4.可见性测试

判别物体哪些部分是可见的,哪些部分是不可见的。

矢量S为观察方向;

Y

时、涧另]举蟒卜

希鎏正则为可见面。

X

423常用消隐算法

■经过测试,可判别物体之间是否有重叠,如

果有重叠,需进行消隐处理。

・很多基本算法,适用某些领域,没有一种能

够使用所用的领域;

□Z缓冲器扫描线算法

Z缓冲器算法

■深度缓冲器算法,图形消隐中经常使用的方法。

存放像素颜色值存放像素深度值

Z缓冲器算法基本原理

■物体上的点(X,y,z)对应于屏幕上的每个像素

点(x,y)

Z3>Z可见

Z缓冲器算法步骤

■初始化

□深度缓冲器的初始设置为足够小的z值;

□帧缓冲器中各单元(X,y)取背景色;

'逐点处理

□确定物体多边形上每一点的深度值z;

□如当前z值大于原有值,则将此深度值替换原有

值;

□此点的颜色值替换帧缓冲器中的原有值。

4.3图形裁剪技术

-图的大小和复杂程度不同,需要将图显示在

计算机屏幕上;

"裁剪技术:使图形恰当的显示在屏幕上的处

理技术

4.3.1窗口与视区

1.用户域与窗口区

■用户域:程序员用来定义整个草图的自然空间。

□用户域数连续无限的;

口用户域中的坐标系为用户坐标系或世界坐标系。

用笛卡尔右手坐标系表示。

■窗口区:用户指定的任一区域。

□小于或等于用户域。

■只关心整幅图形的特定部位,希望这部分图形清

晰地显示出来。

■在二维平面,窗口为一矩形,用四个变量代表窗

口左下角和右上角点的坐标,即:

WrXWmin

温馨提示

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

评论

0/150

提交评论