- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 图形变换
图形变换是计算机图形学的基础内容之一。图形在计算机上的显示可以比喻为用假想的照相机对物体进行拍照,并将产生的照片贴在显示屏上的指定位置进行观察的过程。三维物体要在屏幕上显示首先要做的就是投影变换。此外,还要求能够对物体进行旋转、缩放、平移变换。绘图过程还要用窗口规定显示物体的哪个部分,用视区来规定将窗口中的内容显示在屏幕上的什么位置。图形显示的过程见下图。
图4.1 图形显示的坐标变换过程
在本章中,我们将实现二维图形的几何变换、三维图形的投影变换,以及对图形尽心裁剪的算法。
4.1变换的数学基础
在计算机图形学的图形变换过程中要大量的用到向量、矩阵以及它们之间的运算。本小节对这些知识做简要介绍。
向量及向量运算
一个物理量,如果我们只关心其数值的大小(例如物体的质量、体积、密度),则这样的量统称为标量,如果我们既关心其数值大小,还关心其方向(如速度),则这样的两统称为向量。标量一般用普通字体的英文字母显示,而向量一般用黑体英文字母显示。
设向量,,有关的向量运算有:
两个向量的和、差运算
两个向量的点乘运算
两个向量的叉乘运算
向量的长度
矩阵及矩阵运算
由个数排成矩形表:
或简记成或,称为一个行列的矩阵,简称矩阵,叫做第行第列元素。当时,叫做阶方针,此时元素称为主对角线元素。
只有一行的矩阵称为行向量,只有一列的矩阵称为列向量。
有关矩阵的运算有
数乘矩阵
用标量乘的每一个元素而得的矩阵称为与的乘积,记为:
矩阵的加法运算
设有两个矩阵,,将它们对应元素相加而得到的矩阵称为与的和,记为+
矩阵的乘法运算
设有矩阵,,则此二矩阵相乘的积为矩阵:
可见,只有的列数等于的行数的时候,才有意义。
矩阵运算有如下基本性质
数乘矩阵适合分配律和结合律
矩阵加法适合结合律
矩阵乘法对加法适合分配律
矩阵乘法不适合交换律,因为当两个矩阵,能够相乘时,与却未必能够相乘,即使,都是方阵,与也未必相等。
在图形变换中还有用到如下的概念:
零矩阵及其运算
矩阵的所有元素均为零的矩阵称为零矩阵。一个行列的零矩阵记为,对于任意的矩阵都与下式成立:
单位矩阵
在一个方阵中,如果其主对角线元素全是1,而其余元素都是0,则称这样的矩阵为单位矩阵,记为。对任意矩阵,有下式成立:
逆矩阵
对于方阵,若存在矩阵,使得,则称是可逆的,称为的逆,记为
转置矩阵
将的行、列互换而得到的矩阵,称为的转置矩阵,记为。矩阵的转置有如下的性质:
齐次坐标
齐次坐标表示法就是用维的向量表示一个维向量。维空间中的点具有个坐标分量,并且是唯一的,用齐次坐标表示为,是不唯一的。使用齐次坐标还可以表示无穷远点,规定当时为无穷远点。
4.2 二维图形的几何变换
本节将讲解如何对二维图形进行几何变换,包括平移变换、比例变换、旋转变换、对称变换和错切变换。
平移变换
平移变换是将平面上的一点沿平行于轴的方向平移,沿平行于轴的方向平移后变成点,则有
,
图4.2 平移变换
程序的功能如下。首先,在屏幕上显示一个默认的矩形,然后根据用户选择的不同操作对此矩形进行平移,平移操作是随着鼠标的移动而移动的。
程序步骤:
首先,建立一个MFC单文档工程,起名为“Ch4_2DTrans_2DTrans”。
单击Workspace中的ClassView标签,双击CCh4_2DTrans_2DTransView,在CCh4_2DTrans_2DTransView类的定义之前定义一个枚举类型,代码如下:
在CCh4_2DTransView类的定义中添加如下成员变量:
右键单击CCh4_2DTransView,选择Add Member Function,在弹出的对话框中,Function Type设为void,Function Declaration设为ClearScreen(),单击确定。
单击CCh4_2DTransView左侧的+号,双击ClearScreen函数,在ClearScreen函数中添加如下代码:
右键单击CCh4_2DTransView,选择Add Member Function,在弹出的对话框中,Function Type设为void,Function Declaration设为DrawRect(),单击确定。
单击CCh4_2DTransView左侧的+号,双击DrawRect函数,在DrawRect函数中添加如下代码:
双击构造函数CCh4_2DTransView(),在其中添加如下代码:
单击Workspace中的ResourceViewView标签中的Menu左边的“+”号,双击其子项:IDR_MAINFRAME。
建立名称为【二维图形变换】的菜单,并建立【平移】子菜单。ID号设为:IDT_TRANSLATE。如图
右键单击【平移】子菜单,选择ClassWi
您可能关注的文档
- 华南理工大学大三学习资料:实验打印.docx
- 华南理工大学大三学习资料:智能电网.docx
- 华南理工大学大三学习资料:智能配电网-1.ppt
- 华南理工大学大三学习资料:自动控制理论复习.pptx
- 华南理工大学-电机学-动态-第27章 电机动态分析特点.ppt
- 华南理工大学-电机学-动态-第28章 同步机动态分析.ppt
- 华南理工大学-电机学-动态-第30章 变压器动态分析.ppt
- 华南理工大学-电机学-动态-动态 习题课.ppt
- 华南理工大学数电期末模拟6.doc
- 华南理工大学数电期末模拟试卷A.docx
- 计算机图形学(徐长青、许志闻)第四章 曲线和曲面.ppt
- 计算机图形学(徐长青、许志闻)第五章 图形运算.ppt
- 计算机图形学(徐长青、许志闻)第一章计算机图形学简介.ppt
- 计算机图形学(徐长青、许志闻)第一章 MFC图形编程基础.doc
- 计算机图形学(徐长青、许志闻)计算机图形学实验[1].ppt
- 计算机图形学(徐长青、许志闻)计算机图形学试题a(软件学院2002级)答案.doc
- 计算机图形学(徐长青、许志闻)计算机图形学试题A(软件学院2003级)答案.doc
- 计算机图形学(徐长青、许志闻)计算机图形学试题b(软件学院2002级)答案.doc
- 计算机图形学(徐长青、许志闻)计算机图形学试题bb(软件学院2003级)答案.doc
- 计算机图形学(徐长青、许志闻)试卷B答案10-12-23-b5.doc
文档评论(0)