第2章线计算机绘图基础_第1页
第2章线计算机绘图基础_第2页
第2章线计算机绘图基础_第3页
第2章线计算机绘图基础_第4页
第2章线计算机绘图基础_第5页
已阅读5页,还剩144页未读 继续免费阅读

下载本文档

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

文档简介

第二章计算机绘图基础

本章主要内容

概述

2.2基本图元的生成

2.3基于高级语言的绘图程序设计

2.4图形变换

2.1概述

计算机辅助绘图的实质

一一应用计算机通过程序和算法,在图形显示

和绘图设备上,实现图形的显示及绘图的输出,

是CAD和CAM的重要组成部分。

♦工程图学

♦应用数学

♦计算机科学

计算机绘图系统的组成

■硬件

一一计算机及其图形输入及输出等外围设备

■软件

一一用于图形显示、绘图及图形转换等处理的

程序

计算机绘图的研究内容

如何用计算机来处理和绘制工程图纸。

♦图形输入

♦图形的生成、显示和输出

♦图形处理所需的数学处理方法和算法

♦如何解决工程应用中的图形处理问题

♦研究开发好的绘图软件和管理系统

计算机绘图系统的功能

如何用计算机来处理和绘制工程图纸。

♦输入功能

♦交互功能

♦计算功能

♦存储功能

♦输出功能

计算机辅助绘图基本方法

□从用户使用计算机进行绘图的方法分

♦通过高级语言的绘图函数来编写绘图源程序

♦使用现成的绘图软件包

□从计算机绘图实现的方法分

♦交互式绘图—操作灵活,适应性强

♦参数化绘图—效率较高、生成图形速度快

图形输出设备

图形输出包括图形的显示和图形的绘制。

一一图形显示指的是在屏幕上输出图形;

图形绘制通常指把图形画在纸上,也称硬拷贝。

打印机和绘图仪是两种最常用的硬拷贝设备。

「CRT图形显示器光栅扫描的图形显示器

显示器<

L液晶显示器(LCD)

阴极射线管(CRT)

组成:包括电子枪、聚焦系统、加速电极、偏转系

统、荧光屏

工作原理:电子枪发射电子束,经过聚焦系统、加

速电极、偏转系统,轰击到荧光屏的不同部位,被

其内表面的荧光物质吸收,发光产生可见的图形。

工作原理

在光栅扫描系统中,电子束横向扫描屏幕,一次一

行,从顶到底顺次进行。当电子束横向沿每一行移

动时,电子束的强度不断变化来建立亮点的图案。

垂直回扫期

(a)(b)

(c)(d)

绘图过程

帧缓冲器显示屏幕

绘图原理

基本术语

(1)像素(Pixel)

一构成屏幕(图像)的最小元素

(2)分辨率(Resolution)

CRT在水平或竖直方向单位长度上能识别的

最大像素个数,单位通常为dpi(dotsperinch)

(3)刷新(Refresh)

——为了让荧光物质保持一个稳定的亮度值

(4)刷新频率

——每秒钟重绘屏幕的次数

刷新频率高到一定值后,图象才能稳定显示

隔行扫描与逐行扫描

显示器的显示模式

文本模式图形模式

口对于文本显示方式,显示分辨率用水平和垂直

方向上所能显示的字符总数的乘积表示。

□对于图形显示方式,则用水平和垂直方向上所

能显示的象素点总数的乘积表示。

显示分辨率不同,它所对应的象素点大小也不同。

构成图形的基本要素

■几何要素

——刻画对象的轮廓形状等

■非几何要素:

刻画对象的颜色材质等

计算机中表示图形的方法

a点阵法是用具有颜色信息的点阵来表示图形的

一种方法,它强调图形由哪些点组成,并具有什么

灰度或色彩。

□参数法是以计算机中所记录图形的形状参数与

属性参数来表示图形的一种方法。

♦把点阵法描述的图形叫做图象(Image)

♦把参数法描述的图形叫做图形(Graphics)

图形的生成

—是在指定的输出设备上,根据坐标描述构造

二维几何图形。

|如何在指定的输出设备上根据坐标来

工,.描述、构造基本二维几何图形?

图形的扫描转换(光栅化)

在光栅显示器等数字设备上确定一个最佳逼

近于图形的象素集的过程。

点阵表示

顶点(参数)扫描转换

表示的图形的图形

用户显示系统

用一系列的象素点来逼近直线

2.3基本图元的生成

2.3.1直线段的扫描转换算法

2.3.2圆弧的扫描转换算法

2.3.3椭圆的扫描转换算法

231直线段的扫描转换算法

直线的扫描转换

■确定最佳逼近于该直线的一组象素

■按扫描线顺序,对这些象素进行写操作

直线的绘制要求

♦直线要直

♦直线的端点要准确,即无定向性和断裂情况

♦直线的亮度、色泽要均匀

♦画线的速度要快

♦要求直线具有不同的色泽、亮度、线型等

三个常用算法

1.数值微分法(DDA)

2.中点画线法

3.Bresenham算法。

解决的问题

给定直线两端点Po(Xo,y°)和P1(X1,yx),画出该直线。

一、数值微分法(DDA)

基本思想

已知过端点Po(Xo,y0),P/Xpy»的直线段L

y=kx+b

直线斜率为k=,二)=—

%-xQAx

■从X的左端点X。开始,向X右端点步进。

■步长=1(个象素),计算相应的y坐标y=kx+b;

■取象素点(x,round(y))作为当前点的坐标。

注意:round(x)=(int)(x+0.5)

(1)直接求交算法

a.划分区间[x0,xj:%,玉,・・・,工〃,(%+i=玉+1)

b.计算纵坐标:y=kXj+b

C.取整:{(七,弘)陶二>{(%,,6)};=。

为,=round(y)=(int)(y.+0.5)

复杂度:

浮点数的乘法+加法+取整

(2)DDA算法(增量算法)

yi+}=kxM+b-k(Xj+Ax)+b

=kxi+b+kAx=y.+kAx

当△x=l;yi+1=yj+k

即:当x每递增1,y递增k(即直线斜率);

复杂度:

浮点数的加法+取整

(租1,乂+m)

(xifroundly)

voidDDALine(intxO,intyO,intxl,intyl,intcolor)

{intx;

floatdx,dy,y,k;

dx=xl-xO,dy=yl-yO;

k=dy/dx,y=yO;

for(x=xO;x<xl,x++)

{putpixel(x,int(y+0.5),color);

y=y+k;

}

}

Q注意:

■上述分析的算法仅适用于|k|q的情形。在这种

情况下,x每增加1,y最多增加1。

■当|k|>l时,必须把x,y地位互换。

缺点:

♦有浮点数取整运算

♦效率低

♦仅适用于|k|4的情形:x每增加1,y最多增加1

当因>1时,必须把x,y互换。

DDA算法改进

xM=%+£・Ax

y,+i=y+£.△、

s=l/max(|Ax|

max(|Ax|,|Ay|)=|Ax|,即|k0的情况:

1

41=%+£&"•+■^=xi+l

1Ax

A1A7

%+i=y+/Ay=y+A.△、=%土左

Ax

max(|Ax|?|Ay|)=|Ay|,此时|kRl:

11

无口=X.+6*-AAx=X;+1——r•Ax=x±—

|Ay|ik

%1=y.+£・Ay=y.+占・Ay=%±1

DDA算法生成直线段

优点:

a・增量算法

b.直观、易实现

缺点:

有浮点数取整运算

例:画直线段P0(0,0)・・B(5,2)

△x=x/xo=5△y=y1-y0=2

k=Ay/Ax=0.4

Xint(y+0.5)y+o.5

000.0+0.5

100.4+0.5

210.8+0.5

311.2+0.5

421.6+0.5

522.0+0.5

二、中点画线法

目标:消除DDA算法中的浮点运算

条件:同DDA算法

斜率:ke[0,1]

基本思想

当前象素点为(Xp,yp),则下一个象素点为Pl或P2。

设M=(Xp+l,yp+0.5),为pl与p2之中点,Q为理想直线与

x=x+1垂线的交点。将Q与M的y坐标进行比较。

a.当M在Q的下方,应则P2为下一个象素点;

b.当M在Q的上方,应取P1为下一个象素点;

c.当M与Q恰好重合,则约定取P1为下一个象素。

直线方程

F(x,y)=y-fci-Z?=O

甘山k4%一%

其中:左=丁=------

Axx{-x0

该直线方程将平面分为三个区域:

a.对于直线上的点,F(x,y)=O;

b.对于直线上方的点,F(x,y)>0;

c.对于直线下方的点,F(x,y)<Oo

直线将平面分为三个区域

基本原理

中点画线法生成直线的原理

构造判别式

d=F(xM,yM)=F^+l,%+0.5)=%+0.5—左(1+1)—。

则有:

y+i(d<0)

y=i

(d>0)

初始值d的计算

d0=F(x0+l,y0+0.5)

=y()+0.5—k(x。+1)-b

——kx0-b—k+0.5

=0.5—k

误差项的递推

(a)d<0

d-F{xi+2,yi+1.5)

=y+1.5—k(Xj+2)—b

=y+0.5—k(Xj+1)—Z?+1—k(Xi+2?yi+1.5)

=d+1—k

(xi+i?yi+0.!i)

(xifyi)?

d<0

误差项的递推

(b)d>0

d-F{xi+2,yi+0.5)

—y.+0.5—+2)—b

—y.+0.5—k(Xj+1)—b—k

—■cl—k-ltxi+2,yi+0

(xi+i?yi+OJi)

d>=0

改进?

OSkWl时中点画线法的算法步骤为:

O

1.输入直线的两端点Po(Xo,y°)和P](X1,yx)o

2.计算初始值4x、Ay>d=0.5-k>x=xO>y=yO;

3.绘制点(x,y)。判断d的符号:

若dvO,贝!!(x,y)更新为(x+1,y+1),d更新为|Ql・k;

否则(x,y)更新为(x+1,y),d更新为

4.当直线没有画完时,重复步骤3。否则结束。

d是x〃yp的线性函数,因此采用增量计算,提高运算效率

改进:用2d代替d

L输入直线的两端点Pod。,y°)和PRxi,yx)o

2.计算初始值^x、Ay>d=Z\x-2/^y、x=xO、y=yOo

3.绘制点(x,y)。判断d的符号。

若dvO,贝!l(x,y)更新为(x+1,y+1),d更新为

d+2Z\xM^T|

否则(x,y)更新为(x+l,y),d更新为反2△为

4.当直线没有画完时,重复步骤3。否则结束。

优点:只有整数运算,不含乘除法

例:用中点画线法Po(0,0)Pi(5,2)

△x=xi-x0=5Ay=yi"y0=2

dO=Ax-2Ay=l;dl=-2Ay=-4;

d2=2Ax-2Ay=6

*xiyid

00013

110-32

22i31

3i-1

3o12345

4425

5521

voidMidpointLine(intxO,intyO,intxl,intyl,intcolor)

{inta,b,dl,d2,d,x,y;

a=yl-yO,b=xl-xO,d=b-2*a;

dl=・2*a,d2=2*(b-a);

x=xO,y=yO;

putpixel(x,y,color);

while(x<xl)

{if(d<0){x++,y++,d+=d2;}

else{x++,d+=dl;}

putpixel(x,y,color);

}/*while*/

}/*midPointLine*/

三、Bresenham算法

基本思想

过各行各列象素中心构造一组虚拟网格线。按直线

从起点到终点的顺序计算直线与各垂直网格线的交

点,然后根据误差项的符号确定该列象素中与此交

点最近的象素。

Brensemham算法绘制直线的原理

设直线方程为:

%+1=*+3+1-%)=%+%

其中:k=dyIdx

■因为直线起始点在象素中心,所以误差项d的初值d°=0

■x下标每增加1,d的值相应递增直线斜率值k,BPd=d+k

■当005接近于当前象素的右上方象素(xi+Lyi+l)

■当dv0.5,接近于当前象素的右方象素(xi+l,人)

■一旦dK)5就把它减去1,这样保证|d|在0、1之间

假定直线段的叱依1

3+1

%+1(d>0.5)

y(d<0.5)

误差项的计算

a.d初=0;

b.每走一步:d=d+k;

d=d-lo

算法步骤:

1.输入直线的两端点Po(x°,y°)和Pi(Xpyr)o

2.计算初始值Ax、Ay>d=0>x=x0>y=y0o

3.绘制点(x,y)o

4.d更新为d+k,判断d的符号:

若d>0.5,则(x,y)更新为(x+1,y+1),同时将d更新为

d-1;

否则(x,y)更新为(x+1,y)o

5.当直线没有画完时,重复步骤3和4。否则结束。

改进1:令e=d-0・5

玉+]=%

(e>0)

(e<0)

误差项的计算

3*e初二-0・5,

b.每走一步有e=e+k。

c.if(e>0)thene=e-l

算法步骤:

1.输入直线的两端点Po(Xo,y°)和P"X1,yx)o

2.计算初始值^x、Ay>|e=-05>|x=xn>y=y0o

3.绘制点(x,y)o

4.e更新为国判断e的符号:

若e>0,则(x,y)更新为(x+l,y+l),同时将e更新为

否则(x,y)更新为(x+1,y)o

5.当直线没有画完时,重复步骤3和4。否则结束。

例:用Brensemham算法画线法P0(0,0)(5,2)

△x=xrx0=5△y=y1-y0=2

k=Ay/Ax=0.4

00-0.5

10-0.1

21-0.7

31-0.3

42-0.9

52-0.5

voidBresenhamline(intxOJntyO,intxl,intyl,intcolor)

intx,y,dx,dy;

floatk,e;

dx=xl-xO,dy=yl-yO,k=dy/dx;

e=-0.5,x=xO,y=yO;

for(i=0;i<dx;i++)

{putpixel(x,y,color);

x=x+1,e=e+k;

if(e>0)

{y++,e=e-l;}

改进2:用2eZ\x来替换e

误差项的计算

a.e初二■△x,

b.每走一步有e=e+2/^y。

c.if(e>0)thene=e-2Ax

优点:整数运算,速度快,精度高

算法步骤:

1.输入直线的两端点Po(x0,y0)和此区,yx)o

2.计算初始值Ay>|e=-2^x7]x=x0>y=y0o

3.绘制点(x,y)o

4.e更新为国国|判断e的符号。

若e>0,则(x,y)更新为(x+1,y+1),同时将e更新为

e-2Ax;

否则(x,y)更新为(x+1,y)o

5.当直线没有画完时,重复步骤3和4。否则结束。

2.3.2园I弧的扫描转换算法

解决的问题

绘出园心在原点,半径为整数R的园

圆的特征

八对称性。只要扫描转换八分之一圆弧,就可以

求出整个圆弧的象素集。

、生成圆弧的隐函数方法

算法原理

利用其函数方程,直接离散计算。

圆的函数方程为:x2+y2=R2

Xi+}=xz+1XG

%+i=round

缺点:浮点运算,开方,取整。

二、生成圆弧的参数方程方法

元=Reos3

y=Rsin3

4+1=a+A8(A,为一固定角度步长)

%+1=round(Rcos6>+1)

yM=round(RsinUj+J

缺点:计算量大、所画像素位置间的间距不_致

三、中点画圆法

♦对于圆内的点,有F(x,y)<0

算法原理

M的坐标为:M(x+l,y/0・5)

当F(XM,yM)<。时,取Pi(Xi+l,Yi)

当F(XM,yM)>。时,取P2(Xi+l,"1)

当F(XM,yM)=o时,约定取Pl

中点画圆法原理

构造判别式

d=F(XM,)=F(xz+1,y—0.5)

222

=(XZ+1)+(X.-0.5)-7?

P=(xhyi)|P1I

当dWO时,下一点取Pi(Xj+l,y);

当d>0时,下一点取P2(x+1,y「l)。0?-

初始值d的计算

痣=尸(1,尺—0.5)

=1+(H-0.5)2-R2

=1.25-R

P

误差项的递推__4___41________

yiJ、JQ9

•T__t

(a)d<0J9

yj.乙

d-F{x+2,y—0.5)

iXJX:L+1X:1+2

=(X,+2)2+(y-0.5)2-尺2⑸d〈二0的情况

222

=(玉+1)+(yz-0.5)-7?+2XZ.+3

=d+2x.+3

误差项的递推p

J

_____/\____g1____

yiiJ<9

(b)d>0

yi乙Q9

xi.X:+1X:i+2

d-F(xi+2,yi-1.5)

222(b)d>0的情况

=(XZ.+2)+(Z.-1.5)-7?

2

二(%,+l)2+(y_Q5)7?+(2x+3)+(-2y.+2)

=d+2(x.—y)+5

算法步骤:

1.输入圆的半径R。

2.计算初始值d=L25・R、x=0>y=Ro

3.绘制点(X,y)及其在八分同中的另外七个对称点。

4.判断d的符号。

若达0,则先将d更新为d+2x+3,再将(x,y)更新为

(x+1,y);

否则先将d更新为d+2(x・y)+5,再将(x,y)更新为

(x+l,y-l)o

5.当xvy时,重复步骤3和4。否则结束。

MidPointCircle(intrintcolor)

intx,y;

floatd;

x=0;y=r;d=1.25-r;

circlepoints(x,y,color);〃显示园弧上的八个对称点

while(x<=y)

if(d<0)d+=2*x+3;

else{d+=2*(x-y)+5;y-;}

x++;

circlepoints(x,y,color);

改进2:用(L0.25代替d

算法步骤:

1.输入圆的半径R。

计算初始喉逑)

2.x=0>y=Ro

3.绘制点(x,y)及其在八分圆中的另外七个对称点。

4.判断d的符号:

若好0,则先将d更新为d+2x+3,再将(x,y)更新

为(x+1,y);

否则先将d更新为d+2(x・y)+5,再将(x,y)更新为

(x+1,y-l)o

5.当xvy时,重复步骤3和4。否则结束。

233椭圆的扫描转换算法

解决的问题

对标准椭因进行扫描转换,绘出标准椭园

F(x,y)=b2x2+a2y2-a2b2=0

其中,a为沿x轴方向的长半轴长度;b为沿y轴方

向的短半轴长度;a、b均为整数。

椭圆的对称性

■椭圆的对称性,只考虑第一象限椭圆弧生成;

■分上下两部分,以切线斜率为」的点作为分界点;

尸(羽j)=St+a1y2-c^b1-0

椭圆上一点(x,y)处的法向:

dF.dF.

N(x,y)

=2b2xi+2a2yj

□在上半部分,法向

量的y分量大

□在下半部分,法向

量的X分量大

■在当前中点处,法向量(2b2(Xp+l),2a2(Yp-0.5))

的y分量比x分量大,即:

22

b(Xp+1)<a(Yp-0.5)

■而在下一中点,不等式改变方向,则说明椭圆弧从

上部分转入下部分

解决的思路

与园弧中点算法类似:确定一个象素后,接着在

两个候选象素的中点计算一个判别式的值,由判

别式的符号确定更近的点。

□dl的初始条件:

椭园弧起点为(0,b);第一个中点为(l,b・0.5)

40=/(1/_0.5)

=3_0.5)2-a2b2

=/+/(—b+0.25)

□先讨论椭圆弧的上部分

设(Xp,Yp)已确定,则下一待选像素的中点是

(Xp+l,Yp-0.5)

4=F(%+l»p-0.5)

222

=b\xp+1)+a\yp-0.5)-ab

•若由<0,中点在椭园内,取正右方象素,判别

式更新为:

4'二万(4+2,3_0.5)

222222

=b(xp+2)+a(yp-0.5)-ab

=4+/(2x〃+3)

M2

•若当dlK),中点在椭圆外,取右下方象素,更

新判别式:

4'=尸(壬+2,4―L5)

=/(%+2)2+/(%一1.5)2—Q2b2

=4+/(2%+3)+/(—2y〃+2)

M2

□再讨论椭圆弧的下部分

转入下一部分,下一象素可能是正下方或右下方,

此时判别式要初始化。

&二b(勺+°5%—1)

2222

=b\xp+0.5)+a\yp-1)-ab

M2

•若dzVO,取右下方像素,判别式更新为:

&'=/(4+1.5,2)

=d,2+(2Xp+2)+/(—2yp+3)

M2

•若当dzK),取正下方象素,更新判别式:

/(牛+。.5,%—2)

1

—+a(—2yp+3)

•下半部分弧的终止条件为y=0

MidpointEllipe(inta,intb,intcolor)

{intx,y;floatdl,d2;

x=0;y=b;

dl=b*b+a*a*(-b+0.25);

putpixel(x,y,color);

while(b*b*(x+l)<a*a*(y・0.5))

{if(dl<0){

dl+=b*b*(2*x+3);x++;}

else{dl+=(b*b*(2*x+3)+a*a*(・2*y+2));

x++;y-;}

putpixel(x,y,color);

}〃上部分

d2=sqr(b*(x+0.5))+sqr(a*(y-l))-sqr(a*b);

while(y>0)

{if(d2<0){d2+=b*b*(2*x+2)+a*a*(-2*y+3);

x++;y-;}

else{d2+=a*a*(-2*y+3);y«;}

putpixel(x,y,color);}

)

2.4图形变换

2.4.1图形的几何变换

2.4.2图形的投影变换

2.4.1图形的几何变换

图形变换的基本原理

二维图形由点或直线段组成

直线段可由其端点坐标定义

二维图形的几何变换的实质:

对点或对直线段端点的变换

p=[xy]匚〉Pf=[xyf

一、二维基本变换

(1)平移变换(Translation)

,平行于x轴的方向上的移动量

Ty平行于y轴的方向上的移动量

几何关系|

[x'=JC+T

矩阵形式I

目y']=[x小忙Ty

平移变换

(2)旋转变换(Rotation)

点P绕原点逆时针转。度角

(设逆时针旋转方向为正方向)

J几何关系[

]x=rcoscp

1K

[y=rsincp

x'=rcos(0+(p)=丫cos(pcos0~rsin9sin8

<

y'=rsin(0+(p)=rcos(psin。+厂sin9cos0

,4L\

%'=%cos3—ysin3

<

y'=xsine+ycos0

X

)矩阵形式]

rrJcos。sin0旋转变换

\xy\=[xy\\______________________________

-sin6/cos”

(3)比例变换(Scale)

y

指相对于原点的比例变换

司平行于X轴的方向上的缩放量

邑平行于y轴的方向上的缩放量

几何关系I相对于原点的比例变换

卜'=X*Sx

=y*s、

矩阵形式

s<o

[%'yr]=[%y]Ji

0Sy

比例变换的性质

•当Sx=Sy时,变换前的图形与变换后的图形相似;

当Sx=SyX时,图形将放大,并远离坐标原点;

当0<Sx=SyVl时,图形将缩小,并靠近坐标原点;

•当SxrSy时,图形将发生畸变。

Sx=Sy<lSx>Sy

(a)Sx=Sy比例(b)SxrSy比例

齐次坐标

齐次坐标表示就是用n+1维向量表示一个n维向量o

,cox2,...,cox几,co)

有n个分量的向量有n+1个分量的向量

哑元或标量因子

齐次坐标表示不是唯一的

3=1-A规格化的齐次坐标

齐次坐标技术的引入

平移、比例和旋转等变换的组合变换处理形式

不统一,将很难把它们级联在一起。

变换具有统一表示形式的优点

♦便于变换合成

♦便于硬件实现

基本几何变换的齐次坐标表示

100

r

平移变换:xy'1]=xyi]o1。山)1]T(4W)

T,1

Sx00

比例变换:xy'1\=xy1]。Sy0=[xy1]S(邑,邑)

o01

cos。sin。0

旋转变换:x'y'1]=xy1]-sin。cos。0=xyi]R⑻

逆时针为正001

整体比例变换

100

010

00s

(4)对称变换(Symmetry)

对称变换后的图形是原图形关于某一轴线或原点

的镜像。

(b)关于y轴对称(c)关于原点对称

(a)关于x轴对称

(d)关于x二y对称

(e)关于x=-y对称

(a)关于x轴对称y

ioo-

O-1O=[x-y1]

001

(b)关于y轴对称

--10o-

1]010=[-xy1]

001对称变换(2)

(c)关于原点对称y

对称变换(3)

(d)关于y=x轴对称

_对__称___变__换__(_4_)__/

(e)关于产・x轴对称

几何关系|

尸=_y

矩阵形式

对称变换(5)

\_____________________________________________________________,

0-10一

Nyi]=卜>i]-i00=[-y-X1]

001

(5)错切变换(Shear)

错切变换,也称为剪切、错位变换,用于产生弹

性物体的变形处理。

(a)原图(b)沿x方向错切(c)沿y方向错切

(a)沿x轴方向关于y轴错切

将图形上关于y轴的平行线沿x轴方向推成。角的倾

斜线,而保持y坐标不变。

几何关系]

Jx'=*+Ax

Iy=y

令a=ctg3有Ax=yctgO=ay

代入得

ty=y

矩阵形式|错切变换(1)

UL—1X._________________________________________________________________________

100

[xry'1]=[xy1]a10=x+ayyi]

001

(b)沿y轴方向关于x轴错切

将图形上关于x轴的平行线沿y轴方向推成6角的倾

斜线,而保持x坐标不变。

几何关系

(x'=X

Ly'=y+Ay

令Z?=ctgcp有Ay=xctgcp

y+bx

错切变换(2)

X____________________Z_________________________

b0

10xbx+y1]

01

二、二维复合变换

复合变换的特点

0任何一复杂的几何变换都可以看作基本几何变

换的组合形式。

0图形作一次以上的几何变换,变换结果是每次

变换矩阵的相乘。

复合变换具有形式

P'=PTt-T2-T3----Tn

=P(TiT1Tv---TJ=PT(n>l)

(1)二维复合平移

两个连续平移是相加的

(&&)仃(热,&)"(&+〃,&+&)

(2)二维复合比例

连续比例变换是相乘的

S=S(兀凡1)”(兀02)=义兀・%%・无

(3)二维复合旋转

两个连续旋转是相加的

R=R(4)•R(%)=R(4+仇)

(4)相对任一参考点的二维几何变换

相对某个参考点Pr(x「y1)作二维几何变换,其

变换过程为:

■平移

■针对原点进行二维几何变换

■反平移

关于任意参照点Pr(x°yj的旋转变换

R(£,K;。)=7(-%,-K)•R(8)•7(%,K)

关于任意参照点Pr(x°y1)的放缩变换

S(X,%;%,Sy)=T(f

例:点P(2,2)绕点C(l,1)逆时针旋转。=45。,求

新点P*的坐标。

「1001

P,=PT(-1,-1)=[221]010=[111]

-1-11

cos45°sin45°O-

Pn=P,7?(45°)=[l11]-sin45°cos4500=[01.4141]

001

100一

P!=P"T(l,l)=[01.4141]010=[12.4141]

11

算法二:

T=T(-1,-1)7?(45°)T(1,1)

100cos45°sin45°olFi00

010-sin45°cos45°o010

-1-1ijLoo1111

0.7070.70701

-0.7070.7070

1-0.4141

0.7070.7070

p*=PT=[221]-0.7070.7070=[12.4141]

1-0.4141

(5)相对任意方向的二维几何变换

相对任意方向作二维几何变换,其变换的过程是:

■旋转变换

■针对坐标轴进行二维几何变换

■反向旋转

三、三维几何变换

三维齐次坐标

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

(%力

,yh,2〃,mX](=hx,yh=hy,Zh=hz,/zw0

标准齐次坐标(x,y,z,1)AZ

右手坐标系J一飞

X

三维基本几何变换都是相对于坐标原点和坐标轴

进行的几何变换。

(1)平移变换

1000

0100

0010

TxTyTz1

(2)比例变换

tz000

0^00

a.局部比例变换Ts

0070

0001

1000

0100

b.整体比例变换

0010

0005

(3)旋转变换

a.绕x轴旋转

1000

0cos。sin。0

20

一sin。cos。0

0001

b.绕y轴旋转

cos。0—sin。0

0100

TRY

sin。0COS00

0001

C.绕z轴旋转

cos。sin。00

一sin。cos。00

TRZ

0010

0001

(4)对称变换

a.关于坐标平面对称变换

关于xoy平面进行对称变换的矩阵计算形式为:

1

0

%=0

0

关于yoz平面进行对称变换的矩阵计算形式为:

-1000

0100

0010

0001

关于ZOX平面进行对称变换的矩阵计算形式为:

1000

0-100

0010

0001

b.关于坐标轴对称变换

关于x轴进行对称变换的矩阵计算形式为:

zG

1000

0-100

T=

FX00-10

0001

y

关于y轴进行对称变换的矩阵计算形式为:

关于Z轴进行对称变换的矩阵计算形式为:

-10

0-1

TFZ=

00

00

(5)错切变换

a.沿x方向错切

Z

X

y

沿x含y错切沿X含Z错切

1000

d100

g010

0001

b.沿y方向错切

Z

沿y含x错切沿y含z错切

1b00

0100

TsHy

0h10

0001

C.沿Z方向错切

zz

沿Z含X错切沿z含y错切

10c0

01f0

TSHZ=Q

010

0001

三维变换的一般形式

旋转、比例、

错切、对称

O

o

O

(6)三维复合变换

三维复合变换是指图形作一次以上的变换,变换

结果是每次变换矩阵相乘。

P'=P(7;ZZ…z)=尸T(〃〉1)

a.相对任一参考点的三维变换

相对于参考点F(Xf,丫自zj作比例、旋转、错切等

变换的过程分为以下三步:

•将参考点F移至坐标原点

•针对原点进行三维几何变换

•进行反平移

例:相对于F(Xf,yf,zQ点进行比例变换。

相对参考点F的比例变换

b.相对任意方向轴的三维变换

针对任意方向轴的变换可用五个步骤来完成:

•使任意方向轴的起点与坐标原点重合,此时

进行平移变换;

•使方向轴与某一坐标轴重合,此时需进行旋

转变换,且旋转变换可能不止一次;

•针对该坐标轴完成变换;

•用逆旋转变换使方向轴回到其原始方向;

•用逆平移变换使方向轴回到其原始位置。

问题:如何求出为TRAB。

z

P点绕AB轴旋转

求解步骤:

•将坐标原点平移到A点;

•将O,B绕父轴逆时针旋转a角,

则0rB旋转到Mo"平面上;

•将O,B绕y,轴顺时针旋转0角,

则O,B旋转到/轴上;

•经以上三步变换后,AB轴与7

轴重合,此时绕AB轴的旋转转换

为绕z轴的旋转;

TRy的逆变

•最后,求几,TRX,

换,回到AB原来的位置。

X

2.4.2图形的投影变换

问题:在二维屏幕上如何显示三维物体?

■显示器屏幕、绘图纸等是二维的

-显示对象是三维的

・解决方法…-投影

投影变换一就是把三维立体(或物体)投

射到投影面上得到二维平面图形。

平面几何投影可分为两大类

•透视投影

—投影中心到投影面之间的距离是有限的

•平行投影

一一投影中心到投影面之间的距离是无限的

(a)透视投影(b)正投影©斜投影

平面几何投影的分类

主视图

-侧视图

r三视图-

匚俯视图

温馨提示

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

评论

0/150

提交评论