没有合适的资源?快使用搜索试试~ 我知道了~
首页图形变换行旋转、缩放、平移变换。
图形变换行旋转、缩放、平移变换。

图形变换是计算机图形学的基础内容之一。图形在计算机上的显示可以比喻为用假想的照相机对物体进行拍照,并将产生的照片贴在显示屏上的指定位置进行观察的过程。三维物体要在屏幕上显示首先要做的就是投影变换。此外,还要求能够对物体进行旋转、缩放、平移变换。
资源详情
资源评论
资源推荐

第三章 图形变换
图形变换是计算机图形学的基础内容之一。图形在计算机上的显示可以比喻为用假想的照相机对物体进行
拍照,并将产生的照片贴在显示屏上的指定位置进行观察的过程。三维物体要在屏幕上显示首先要做的就是投
影变换。此外,还要求能够对物体进行旋转、缩放、平移变换。绘图过程还要用窗口规定显示物体的哪个部分,
用视区来规定将窗口中的内容显示在屏幕上的什么位置。图形显示的过程见下图。
图 4.1 图形显示的坐标变换过程
在本章中,我们将实现二维图形的几何变换、三维图形的投影变换,以及对图形进行裁剪的算法。
4.1 变换的数学基础
在计算机图形学的图形变换过程中要大量的用到向量、矩阵以及它们之间的运算。本小节对这些知识做简
要介绍。
一、 向量及向量运算
一个物理量,如果我们只关心其数值的大小(例如物体的质量、体积、密度),则这样的量统称为标量,
如果我们既关心其数值大小,还关心其方向(如速度),则这样的两统称为向量。标量一般用普通字体的英文
字母显示,而向量一般用黑体英文字母显示。
设向量 , ,有关的向量运算有:
(1) 两个向量的和、差运算
(2) 两个向量的点乘运算
(3) 两个向量的叉乘运算
(4) 向量的长度
二、 矩阵及矩阵运算
本体坐标系子物
体 1
本体坐标系子物
体 1
用 户 坐 标
系
观 察 坐 标
系
规 范 化 设
备坐标系
设 备 坐 标
系

由 个数 排成矩形表:
或简记成 或 ,称为一个 行 列的矩阵,简称 矩阵, 叫做第 行第 列元素。
当 时, 叫做 阶方针,此时元素 称为主对角线元素。
只有一行的矩阵 称为行向量,只有一列的矩阵 称为列向量。
有关矩阵的运算有
(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 类的
定义之前定义一个枚举类型,代码如下:
O
T
x
T
y
X
y

2) 在 CCh4_2DTransView 类的定义中添加如下成员变量:
3) 右 键单 击 CCh4_2DTransView ,选 择 Add Member Function ,在 弹 出 的 对话 框 中, Function Type 设为
void,Function Declaration 设为 ClearScreen(),单击确定。
4) 单击 CCh4_2DTransView 左侧的+号,双击 ClearScreen 函数,在 ClearScreen 函数中添加如下代码:
剩余41页未读,继续阅读



















婉漪滟馨
- 粉丝: 1
- 资源: 9
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- ARM Cortex-A(armV7)编程手册V4.0.pdf
- ABB机器人保养总结解析.ppt
- 【超详细图解】菜鸡如何理解双向链表的python代码实现
- 常用网络命令的使用 ipconfig ping ARP FTP Netstat Route Tftp Tracert Telnet nslookup
- 基于单片机控制的DC-DC变换电路
- RS-232接口电路的ESD保护.pdf
- linux下用time(NULL)函数和localtime()获取当前时间的方法
- Openstack用户使用手册.docx
- KUKA KR 30 hA,KR 60 hA机器人产品手册.pdf
- Java programming with JNI
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论3