图形学-矩阵基础

1.什么是矩阵

线性代数中把矩阵定义为:由m×n 个元素按m 行,n 列的方式排列,就得到矩阵,用下面的方式表示
在这里插入图片描述
通常用一个加粗的大写字母表示一个矩阵,例如矩阵A可以用 A 来表示

2.矩阵的运算

2.1矩阵加法

只有相同维度的矩阵才可以进行加法运算,即m×n的矩阵与m×n的矩阵才能相加,得到的结果还是一个m×n的矩阵,每个元素等于相加矩阵对应位置元素的和
在这里插入图片描述

矩阵加法适用的运算定律

交换律 A + B = B + A
结合律 (A + B) + C = A + (B + C)

示例

A = [
	1.0, 2.0, 3.0, 
	4.0, 5.0, 6.0, 
	7.0, 8.0, 9.0
]
B = [
	1.0, 2.0, 3.0, 
	4.0, 5.0, 6.0, 
	7.0, 8.0, 9.0
]


A + B = [
	1.0+1.0, 2.0+2.0, 3.0+3.0,
	4.0+4.0, 5.0+5.0, 6.0+6.0,
	7.0+7.0, 8.0+8.0, 9.0+9.0,
]

2.2矩阵减法

与矩阵加法类似,也只有相同维度的矩阵才可以进行减法运算,即m×n的矩阵与m×n的矩阵才能相减,得到的结果还是一个m×n的矩阵,每个元素等于被减数矩阵对应位置元素与减数矩阵对应位置元素的差
在这里插入图片描述

2.3矩阵数乘

数乘是矩阵与一个常数相乘,一个m×n的矩阵与一个常数k相乘,得到的结果还是一个m×n的矩阵,每个元素等于矩阵对应位置元素与这个常数的乘积

在这里插入图片描述
矩阵数乘适用的运算定律

分配律 (k + v)A = kA + vA
分配律 k(A + B) = kA + kB
结合律 (kv)A = k(vA)

示例

A = [
	1.0, 2.0, 3.0, 
	4.0, 5.0, 6.0, 
	7.0, 8.0, 9.0
]
k = 3.0


k * A = [
	3.0*1.0, 3.0*2.0, 3.0*3.0,
	3.0*4.0, 3.0*5.0, 3.0*6.0,
	3.0*7.0, 3.0*8.0, 3.0*9.0,
]

2.4矩阵的转置

矩阵转置是指将一个矩阵的行列互换的操作,一个m×n的矩阵转置后,得到的结果是一个n×m的矩阵,最终得到一个与原矩阵行列位置互换的矩阵,例如原矩阵中第三行第二列的元素是a32,转置后变为新矩阵第二行第三列的元素
在这里插入图片描述
矩阵转置适用的运算定律
在这里插入图片描述
注:A与B相乘的结果再转置不等于A的转置乘以B的转置,而是等于B的转置乘以A的转置,注意先后顺序

A = [
	1.0, 2.0, 3.0, 
	4.0, 5.0, 6.0, 
	7.0, 8.0, 9.0
]
k = 3.0


A(转置) = [
	1.0, 4.0, 7.0, 
	2.0, 5.0, 8.0, 
	3.0, 6.0, 9.0
]

2.5 矩阵的乘法

矩阵的乘法相对其他运算比较复杂,两个矩阵可以相乘必须满足一个条件被乘矩阵的列数等于乘数矩阵的行数,例如:(m×n)(n×p) = (m×p),就是说m行n列的矩阵与n行p列的矩阵相乘结果为一个m行p列的矩阵,可以相乘的前提条件是前一个矩阵的列数与后一个矩阵的行数相等

接下来看看矩阵相乘是如何运算的,以一个3×3的矩阵为例说明
在这里插入图片描述
在这里插入图片描述
示例

A = [
	1.0, 2.0, 3.0, 
	4.0, 5.0, 6.0, 
	7.0, 8.0, 9.0
]
B = [
	1.0, 2.0, 3.0, 
	4.0, 5.0, 6.0, 
	7.0, 8.0, 9.0
]


AB = [
	1.0*1.0+2.0*4.0+3.0*7.0, 1.0*2.0+2.0*5.0+3.0*8.0, 1.0*3.0+2.0*6.0+3.0*9.0,
	4.0*1.0+5.0*4.0+6.0*7.0, 4.0*2.0+5.0*5.0+6.0*8.0, 4.0*3.0+5.0*6.0+6.0*9.0,
	7.0*1.0+8.0*4.0+9.0*7.0, 7.0*2.0+8.0*5.0+9.0*8.0, 7.0*3.0+8.0*6.0+9.0*9.0,
]

矩阵相乘适用的运算定律

分配律 A(B + C) = AC + BC
分配律 (A + B)C = AC + BC
结合律 (AB)C = A(BC)

注:矩阵A乘以矩阵B,不等于B乘以矩阵A

2.6矩阵与向量相乘

任何一个向量可以用一维矩阵表示,可以表示为列向量,也可以表示为一个行向量,都表示同一个向量列向量 a
在这里插入图片描述
a 向量转置后变成行向量
在这里插入图片描述
两个矩阵可以相乘必须满足一个条件被乘矩阵的列数等于乘数矩阵的行数

所以当向量与矩阵相乘是需要转换成以下两种形式
矩阵右乘列向量
在这里插入图片描述
矩阵左乘行向量
在这里插入图片描述
计算过程参照向量相乘的运算过程,只是要更少的计算过程

示例

A = [
	1.0, 2.0, 3.0, 
	4.0, 5.0, 6.0, 
	7.0, 8.0, 9.0
]
B = [
	1.0,
	2.0, 
	3.0, 
]


AB = [
	1.0*1.0+2.0*2.0+3.0*3.0, 
	4.0*1.0+5.0*2.0+6.0*3.0,
	7.0*1.0+8.0*2.0+9.0*3.0, 
]

2.7使用矩阵表示向量点积

在这里插入图片描述

2.8 使用矩阵表示向量叉积

在这里插入图片描述

3.一些特殊的矩阵

3.1单位矩阵

一个矩阵的对角线上(从左上角到右下角的对角线)的元素均为1,其余的元素都是0的矩阵称为单位矩阵

二维单位矩阵表示为
在这里插入图片描述
三维单位矩阵表示为
在这里插入图片描述

3.2逆矩阵

若有矩阵 A 和矩阵 B,且 AB = BA = Ⅰ, Ⅰ为单位矩阵,则矩阵A和矩阵B互逆,称矩阵A可逆,矩阵B是矩阵A的逆矩阵,逆矩阵的一些性质
一个矩阵乘以自身逆矩阵等于单位向量,则它的逆矩阵乘以自己也等于单位向量
在这里插入图片描述
一个矩阵的逆矩阵再作逆运算结果是自己本身
在这里插入图片描述
两个矩阵相乘再作逆运算等于后一个矩阵的逆矩阵乘以前一个矩阵的逆矩阵
在这里插入图片描述

3.3对角矩阵

一个矩阵的对角线上(从左上角到右下角的对角线)的元素外其余的元素都是0的矩阵称为对角矩阵,对角矩阵主要用于缩放变换

3.4正交矩阵

若果有矩阵A,满足条件矩阵A乘以矩阵A的转置矩阵是一个单位矩阵,即满足下面的公式
在这里插入图片描述
则矩阵A被称为正交矩阵

正交阵的一些性质

正交矩阵的转置等于它的逆矩阵
正交矩阵的每一行都是单位向量,且俩俩正交
正交矩阵的每每一列都是单位向量,且俩俩正交
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章绪论 1.1计算机图形学及其相关概念 1.2计算机图形学的发展 1.2.1计算机图形学学科的发展 1.2.2图形硬件设备的发展 1.2.3图形软件的发展 1.3计算机图形学的应用 1.3.1计算机辅助设计与制造 1.3.2计算机辅助绘图 1.3.3计算机辅助教学 1.3.4办公自动化和电子出版技术 1.3.5计算机艺术 1.3.6在工业控制及交通方面的应用 1.3.7在医疗卫生方面的应用 1.3.8图形用户界面 1.4计算机图形学研究动态 1.4.1计算机动画 1.4.2地理信息系统 1.4.3人机交互 1.4.4真实感图形显示 1.4.5虚拟现实 1.4.6科学计算可视化 1.4.7并行图形处理 第2章计算机图形系统及图形硬件 2.1计算机图形系统概述 2.1.1计算机图形系统的功能 2.1.2计算机图形系统的结构 2.2图形输入设备 2.2.1键盘 2.2.2鼠标器 2.2.3光笔 2.2.4触摸屏 2.2.5操纵杆 2.2.6跟踪球和空间球 2.2.7数据手套 2.2.8数字化仪 2.2.9图像扫描仪 2.2.10声频输入系统 2.2.11视频输入系统 2.3图形显示设备 2.3.1阴极射线管 2.3.2CRT图形显示器 2.3.3平板显示器 2.3.4三维观察设备 2.4图形显示子系统 2.4.1光栅扫描图形显示子系统的结构 2.4.2绘制流水线 2.4.3相关概念 2.5图形硬拷贝设备 2.5.1打印机 2.5.2绘图仪 2.6OpenGL图形软件包 2.6.1OpenGL的主要功能 2.6.2OpenGL的绘制流程 2.6.3OpenGL的基本语法 2.6.4一个完整的OpenGL程序 第3章用户接口与交互式技术 3.1用户接口设计 3.1.1用户模型 3.1.2显示屏幕的有效利用 3.1.3反馈 3.1.4一致性原则 3.1.5减少记忆量 3.1.6回退和出错处理 3.1.7联机帮助 3.1.8视觉效果设计 3.1.9适应不同的用户 3.2逻辑输入设备与输入处理 3.2.1逻辑输入设备 3.2.2输入模式 3.3交互式绘图技术 3.3.1基本交互式绘图技术 3.3.2三维交互技术 3.4OpenGL中橡皮筋技术的实现 3.4.1基于鼠标的实现 3.4.2基于键盘的实现 3.5OpenGL中拾取操作的实现 3.6OpenGL的菜单功能 第4章图形的表示与数据结构 4.1基本概念 4.1.1基本图形元素 4.1.2几何信息与拓扑信息 4.1.3坐标系 4.1.4实体的定义 4.1.5正则集合运算 4.1.6平面多面体与欧拉公式 4.2三维形体的表示 4.2.1多边形表面模型 4.2.2扫描表示 4.2.3构造实体几何法 4.2.4空间位置枚举表示 4.2.5八叉树 4.2.6BSP树 4.2.7OpenGL中的实体模型函数 4.3非规则对象的表示 4.3.1分形几何 4.3.2形状语法 4.3.3粒子系统 4.3.4基于物理的建模 4.3.5数据场的可视化 4.4层次建模 4.4.1段与层次建模 4.4.2层次模型的实现 4.4.3OpenGL中层次模型的实现 第5章基本图形生成算法 5.1直线的扫描转换 5.1.1数值微分法 5.1.2中点Bresenham算法 5.1.3Bresenham算法 5.2圆的扫描转换 5.2.1八分法画圆 5.2.2中点Bresenham画圆算法 5.3椭圆的扫描转换 5.3.1椭圆的特征 5.3.2椭圆的中点Bresenham算法 5.4多边形的扫描转换与区域填充 5.4.1多边形的扫描转换 5.4.2边缘填充算法 5.4.3区域填充 5.4.4其他相关概念 5.5字符处理 5.5.1点阵字符 5.5.2矢量字符 5.6属性处理 5.6.1线型和线宽 5.6.2字符的属性 5.6.3区域填充的属性 5.7反走样 5.7.1过取样 5.7.2简单的区域取样 5.7.3加权区域取样 5.8在OpenGL中绘制图形 5.8.1点的绘制 5.8.2直线的绘制 5.8.3多边形面的绘制 5.8.4OpenGL中的字符函数 5.8.5OpenGL中的反走样 第6章二维变换及二维观察 6.1基本概念 6.2基本几何变换 6.2.1平移变换 6.2.2比例变换 6.2.3旋转变换 6.2.4对称变换 6.2.5错切变换 6.2.6二维图形几何变换的计算 6.3复合变换 6.3.1二维复合平移变换和比例变换 6.3.2二维复合旋转变换 6.3.4其他二维复合变换 6.3.5相对任一参考点的二维几何变换 6.3.6相对于任意方向的二维几何变换 6.3.7坐标系之间的变换 6.3.8光栅变换 6.3.9变换的性质 6.4二维观察 6.4.1基本概念 6.4.2?用户坐标系到观察坐标系的变换 6.4.3?窗口到视区的变换 6.5?裁剪 6.5.1?点的裁剪 6.5.2直线段的裁剪 6.5.3多边形的裁剪 6.5.4其他裁剪 6.6OpenGL中的二维观察变换 第7章三维变换及三维观察 7.1三维变换的基本概念 7.1.1几何变换 7.1.2三维齐次坐标变换矩阵 7.1.3平面几何投影 7.2三维几何变换 7.2.1三维基本几何变换 7.2.2三维复合变换 7.3三维投影变换 7.3.1正投影 7.3.2斜投影 7.4透视投影 7.4.1一点透视 7.4.2二点透视 7.4.3三点透视 7.5观察坐标系及观察空间 7.5.1观察坐标系 7.5.2观察空间 7.6三维观察流程 7.6.1用户坐标系到观察坐标系的变换 7.6.2平行投影的规范化投影变换 7.6.3透视投影的规范化投影变换 7.7三维裁剪 7.7.1关于规范化观察空间的裁剪 7.7.2齐次坐标空间的裁剪 7.8OpenGL中的变换 7.8.1矩阵堆栈 7.8.2模型视图变换 7.8.3投影变换 7.8.4实例 第8章曲线与曲面 8.1基本概念 8.1.1曲线/曲面数学描述的发展 8.1.2曲线/曲面的表示要求 8.1.3曲线/曲面的表示 8.1.4插值与逼近 8.1.5连续性条件 8.1.6样条描述 8.2三次样条 8.2.1自然三次样条 8.2.2Hermite插值样条 8.3Bezier曲线/曲面 8.3.1Bezier曲线的定义 8.3.2Bezier曲线的性质 8.3.3Bezier曲线的生成 8.3.4Bezier曲面 8.4B样条曲线/曲面 8.4.1B样条曲线 8.4.2B样条曲线的性质 8.4.3B样条曲面 8.5有理样条曲线/曲面 8.5.1NURBS曲线/曲面的定义 8.5.2有理基函数的性质 8.5.3NURBS曲线/曲面的特点 8.6曲线/曲面的转换和计算 8.6.1样条曲线/曲面的转换 8.6.2样条曲线/曲面的离散生成 8.7OpenGL生成曲线/曲面 8.7.1Bezier曲线/曲面函数 8.7.2GLU中的B样条曲线/曲面函数 第9章消隐 9.1深度缓存器算法 9.2区间扫描线算法 9.3深度排序算法 9.4区域细分算法 9.5光线投射算法 9.6BSP树 9.7多边形区域排序算法 9.8OpenGL中的消隐处理 第10章真实感图形绘制 10.1简单光照模型 10.1.1环境光 10.1.2漫反射光 10.1.3镜面反射光 10.1.4光强衰减 10.1.5颜色 10.2基于简单光照模型的多边形绘制 10.2.1恒定光强的多边形绘制 10.2.2Gouraud明暗处理 10.2.3Phong明暗处理 10.3透明处理 10.4产生阴影 10.5模拟景物表面细节 10.5.1用多边形模拟表面细节 10.5.2纹理的定义和映射 10.5.3凹凸映射 10.6整体光照模型与光线追踪 10.6.1整体光照模型 10.6.2Whitted光照模型 10.6.3光线跟踪算法 10.6.4光线跟踪反走样 10.7 OpenGL中的光照与表面绘制函数 10.7.1 OpenGL点光源 10.7.2 OpenGL全局光照 10.7.3 OpenGL表面材质 10.7.4 OpenGL透明处理 10.7.5 OpenGL表面绘制 10.7.6 实例 10.8 OpenGL中的纹理映射
计算机图形学作业题 1. 计算机中由图形的形状参数(方程或分析表达式的系数,线段的端点坐标等)加属性参数 (颜色、线型等)来表示图形图形的参数表示;枚举出图形中所有的点称图形的点阵 表示,简称为图像(数字图像) 2. 什么是计算机图形学?计算机图形学有哪些研究内容? 3. 计算机图形学有哪些应用领域? 4. 计算机图形学有哪些相关学科分支?它们的相互关系是怎样的? 5. 图形系统的软件系统由哪些软件组成?举例说明。 6. 了解计算机图形系统的硬件。 7. 什么是显示器的分辨率、纵横比、刷新率? 8. 什么是像素、分辨率、颜色数?分辨率、颜色数与显存的关系? 分辨率M(N、颜色个数K与显存大小V的关系: 例:分辨率为1024像素/行(768行/帧,每像素24位(bit)颜色(224种颜色)的显示 器,所需的显存为:1024(768(24位(bit)=1024(768(24/8=2359296字节(byte)。 或:每像素16777216种颜色(24位真彩色),1024(768的分辨率,所需显存为:102 4(768(log216777216位显存=2359296字节显存。 9. 什么是图元的生成?分别列举两种直线和圆扫描转换算法。 10. OpenGL由核心库GL(Graphics Library)和实用函数库GLU(Graphics Library Utilities)两个库组成。 11. 区域填充算法要求区域是连通的,因为只有在连通区域中,才可能将种子点的颜色扩 展到区域内的其它点。 区域可分为 向连通区域和 向连通区域。区域填充算法有 填充算法和 填充算法。 12. 字符生成有哪两种方式? 点阵式(bitmap fonts点阵字——raster光栅方法):采用逐位映射的方式得到字符的点阵和编码——字模位 点阵。 笔画式(outline fonts笔画字——stroke方法):将字符笔画分解为线段,以线段端点坐标为字符字模的编 码。 13. 图形信息包含图形的 和 。 14. 什么是图形变换?图形变换只改变图形的 不改变图形的 。图形变换包括 和 ( )。 15. 熟练掌握二维图形的齐次坐标表示、平移、比例、旋转、对称变换以及复合变换的方 法和原则。 16. 图形的几何变换包括 、 、 、 、 ;图形连续作一次以上的几何变换称 变换。 17. 试写出图示多边形绕点A(xo,yo)旋转的变换矩阵。要求写出求解过程及结果。 18. 试写出针对固定参考点、任意方向的比例变换矩阵。 19. 试写出对任意直线y=mx+b的对称变换矩阵。 20. 什么是窗口?什么是视区?什么是观察变换? 21. 简述二维观察变换的流程。 22. 试述窗口到视区的变换步骤,并推出变换矩阵。 23. 已知w1=10,w2=20,w3=40,w4=80, v1=80,v2=110,v3=10,v4=130, 窗口中一点P(15,60),求视区中的映射点P'? 24. 在观察变换前必须确定图形的哪部分在窗口内,那些部分在窗口外,这个选择处理过 程称为 。 25. 使用Open GL的变换函数,若程序中先后调用的几个变换函数所定义的矩阵及顺序为L, M, N,其作用顺序为: 。 26. 试列举你所知的直线和多边形裁剪算法。 27. 简述Cohen-Sutherland(代码)线段裁剪算法。 28. 窗口和多边形如下图,应用Sutherland- Hodgman算法(逐边裁剪算法),对多边形进行裁剪。请以左、上、右、下的顺序列出 窗口各边裁剪多边形后所得的多边形顶点表。 29. 任何满足欧拉公式的形体称为 形体。 30. 超二次曲面通过将额外的参数插入 曲面方程而形成。 31. 在曲线、曲面的表示上,参数方程有何优点? 32. 要变换参数曲线曲面可以直接变换它的 ,而对于非参数形式则必须变换 。 33. 欧几里得曲线是 物体,沿三维曲线路径的位置可用 参数描述。 34. 规格化参变量 t [0, 1] 使得曲线曲面的 容易确定。 35. 什么是插值?什么是逼近?什么是拟合? 36. 给定一组有序的数据点 Pi ,i =0, 1, …, n,称为控制点,构造一条曲线顺序通过每个控制点,称为对这组控制点进行 ,所构造的曲线称为 。 37. 构造一条曲线使之在某种意义下最接近给定的数据点,而不要求通过其中任何一个点 ,称为对这些数据点进行 ,所构造的曲线为 曲线。 38. 拟合(Fitting)是 和 的统称。 39. 对于一组有序的型值点,确定一种参数分割,称之对这组型值点 。确定某个单参数矢函数,即确定参数曲线方程,称为曲线的 。 40. 参数域中所有节点构成的序列称为 矢量。 41. 什么是参数化?什么是参数区间的规格化? 42. 什么是参数连续性? 二条曲线P

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值