图形学第四篇图形变换文档格式.docx

上传人:b****2 文档编号:13920305 上传时间:2022-10-15 格式:DOCX 页数:55 大小:552.92KB
下载 相关 举报
图形学第四篇图形变换文档格式.docx_第1页
第1页 / 共55页
图形学第四篇图形变换文档格式.docx_第2页
第2页 / 共55页
图形学第四篇图形变换文档格式.docx_第3页
第3页 / 共55页
图形学第四篇图形变换文档格式.docx_第4页
第4页 / 共55页
图形学第四篇图形变换文档格式.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

图形学第四篇图形变换文档格式.docx

《图形学第四篇图形变换文档格式.docx》由会员分享,可在线阅读,更多相关《图形学第四篇图形变换文档格式.docx(55页珍藏版)》请在冰豆网上搜索。

图形学第四篇图形变换文档格式.docx

(3)两个向量的叉乘运算

(4)向量的长度

二、矩阵及矩阵运算

个数

排成矩形表:

或简记成

,称为一个

列的矩阵,简称

矩阵,

叫做第

行第

列元素。

时,

叫做

阶方针,此时元素

称为主对角线元素。

只有一行的矩阵

称为行向量,只有一列的矩阵

称为列向量。

有关矩阵的运算有

(1)数乘矩阵

用标量

的每一个元素而得的矩阵称为

的乘积,记为:

(2)矩阵的加法运算

设有两个

矩阵

,将它们对应元素相加而得到的矩阵称为

的和,记为

+

(3)矩阵的乘法运算

设有矩阵

,则此二矩阵相乘的积为矩阵

可见,只有

的列数等于

的行数的时候,

才有意义。

矩阵运算有如下基本性质

(1)数乘矩阵适合分配律和结合律

(2)矩阵加法适合结合律

(3)矩阵乘法对加法适合分配律

(4)矩阵乘法不适合交换律,因为当两个矩阵

能够相乘时,

却未必能够相乘,即使

都是方阵,

也未必相等。

在图形变换中还有用到如下的概念:

(1)零矩阵及其运算

矩阵的所有元素均为零的矩阵称为零矩阵。

一个

列的零矩阵记为

,对于任意的矩阵

都与下式成立:

(2)单位矩阵

在一个方阵中,如果其主对角线元素全是1,而其余元素都是0,则称这样的矩阵为单位矩阵,记为

对任意矩阵

,有下式成立:

(3)逆矩阵

对于方阵

,若存在矩阵

,使得

,则称

是可逆的,

称为

的逆,记为

(4)转置矩阵

的行、列互换而得到的

矩阵,称为

的转置矩阵,记为

矩阵的转置有如下的性质:

三、齐次坐标

齐次坐标表示法就是用

维的向量表示一个

维向量。

维空间中的点具有

个坐标分量

,并且是唯一的,用齐次坐标表示为

,是不唯一的。

使用齐次坐标还可以表示无穷远点,规定当

时为无穷远点。

▪4.2二维图形的几何变换

本节将讲解如何对二维图形进行几何变换,包括平移变换、比例变换、旋转变换、对称变换和错切变换。

1、平移变换

平移变换是将平面上的一点

沿平行于

轴的方向平移

,沿平行于

后变成点

则有

图4.2平移变换

程序的功能如下。

首先,在屏幕上显示一个默认的矩形,然后根据用户选择的不同操作对此矩形进行平移,平移操作是随着鼠标的移动而移动的。

程序步骤:

1)首先,建立一个MFC单文档工程,起名为“Ch4_2DTrans_2DTrans”。

单击Workspace中的ClassView标签,双击CCh4_2DTrans_2DTransView,在CCh4_2DTrans_2DTransView类的定义之前定义一个枚举类型,代码如下:

2)在CCh4_2DTransView类的定义中添加如下成员变量:

3)右键单击CCh4_2DTransView,选择AddMemberFunction,在弹出的对话框中,FunctionType设为void,FunctionDeclaration设为ClearScreen(),单击确定。

4)单击CCh4_2DTransView左侧的+号,双击ClearScreen函数,在ClearScreen函数中添加如下代码:

5)右键单击CCh4_2DTransView,选择AddMemberFunction,在弹出的对话框中,FunctionType设为void,FunctionDeclaration设为DrawRect(),单击确定。

6)单击CCh4_2DTransView左侧的+号,双击DrawRect函数,在DrawRect函数中添加如下代码:

7)双击构造函数CCh4_2DTransView(),在其中添加如下代码:

8)单击Workspace中的ResourceViewView标签中的Menu左边的“+”号,双击其子项:

IDR_MAINFRAME。

9)建立名称为【二维图形变换】的菜单,并建立【平移】子菜单。

ID号设为:

IDT_TRANSLATE。

如图

10)右键单击【平移】子菜单,选择ClassWizzard选项。

在弹出的对话框中选择:

ObjectIDs:

IDT_TRANSLATE,Classname:

CCh4_2DTransView,Messages:

COMMAND,单击AddFunction按钮,在弹出的为函数命名的对话框中单击OK,单击EditCode按钮。

11)在函数OnTranslate()中添加代码:

12)按组合键Ctrl+W,调出ClassWizzard对话框,选择ObjectIDs:

CCh4_2DTransView,Classname:

CCh4_2DTransView,在Messages列表中双击WM_LBUTTONDOWN,WM_LBUTTONUP,WM_MOUSEMOVE,WM_RBUTTONDOWN,WM_RBUTTONUP,单击EditCode按钮。

13)分别在OnLButtonDown(UINTnFlags,CPointpoint)、OnLButtonUp(UINTnFlags,CPointpoint)、OnMouseMove(UINTnFlags,CPointpoint)、OnRButtonDown(UINTnFlags,CPointpoint)、OnRButtonUp(UINTnFlags,CPointpoint)函数中添加如下代码(黑体部分是添加的代码):

voidCCh4_2DTrans_TranslateView:

:

OnLButtonUp(UINTnFlags,CPointpoint)

{

//TODO:

Addyourmessagehandlercodehereand/orcalldefault

m_bLBDown=FALSE;

m_prevPoint=point;

CView:

OnLButtonUp(nFlags,point);

}

OnRButtonDown(UINTnFlags,CPointpoint)

m_bRBDown=TRUE;

OnRButtonDown(nFlags,point);

OnRButtonUp(UINTnFlags,CPointpoint)

m_bRBDown=FALSE;

OnRButtonUp(nFlags,point);

OnMouseMove(UINTnFlags,CPointpoint)

Intdelta;

switch(m_type_transform)

{

caseTRF_TRANSLATE:

if(m_bLBDown)

{

ClearScreen();

delta=point.x-m_prevPoint.x;

m_prevPoint=point;

m_LT+=CPoint(delta*(int)m_xStep,0);

m_LB+=CPoint(delta*(int)m_xStep,0);

m_RT+=CPoint(delta*(int)m_xStep,0);

m_RB+=CPoint(delta*(int)m_xStep,0);

DrawRect();

}

if(m_bRBDown)

delta=point.y-m_prevPoint.y;

m_LT+=CPoint(0,delta*(int)m_yStep);

m_LB+=CPoint(0,delta*(int)m_yStep);

m_RT+=CPoint(0,delta*(int)m_yStep);

m_RB+=CPoint(0,delta*(int)m_yStep);

break;

caseTRF_NONE:

}

OnMouseMove(nFlags,point);

至此,代码部分结束。

编译,运行,点击菜单项中的【平移】命令,出现如图所示矩形。

图4.3平移代码运行结果

图中的矩形可以用鼠标进行平移,具体来说,鼠标的左键控制矩形左右平移,用鼠标右键控制矩形上下平移。

2、比例变换

比例变换是相对于原点,将平面上一点

沿

轴方向乘以常数

,沿

后,变成点

,则有

可见,如果

,则为恒等变换,图形不变,如果

,则图形被放大了,如果

则图形被缩小了。

如果

,则图形在

轴和

轴方向被缩放的倍数不一样。

为了实现上述的功能,我们在前面代码的基础上继续添加代码。

要求,可以令矩形根据用户输入的参数而放大和缩小。

1)在枚举类型Type_Transform添加TRF_SCALE

2)单击Workspace中的ResourceView标签中的Menu左边的“+”号,双击其子项:

3)在【二维图形变换】菜单的子

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1