变换矩阵

【线性代数的本质】矩阵、线性变换、矩阵乘法与线性变换复合

微笑、不失礼 提交于 2020-04-08 11:49:49
线性代数的本质,源视频 https://www.bilibili.com/video/BV1ys411472E @ 目录 矩阵和线性变换 矩阵乘法与复合变换 Unfortunately, no one can be told what the Matrix is. You have to see it for your self. ------ Morpheus 矩阵是什么? 矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,元素是实数的矩阵称为实矩阵,元素是复数的矩阵称为复矩阵。而行数与列数都等于n的矩阵称为n阶矩阵或n阶方阵。 在线性代数中,最容易被忽略但是非常重要的一点就是线性变换的概念以及它和矩阵的关系。 矩阵和线性变换 对于变换,变换其实就是函数的另外一种说法,它接受一个输入,然后输出对应的结果。 特别的,在线性代数下,我们考虑的是接受一个向量并且输出一个向量的变换。 为什么要用变换呢? 因为 变换 是在暗示以特定的方式来可视化这 输入-输出 关系,一种理解向量的函数的方式是使用运动。 例如在二维空间中,我们将一个输入向量移动到输出向量的位置,要理解整个变换,我们可以想象每一个输入向量输出到对应输出向量的位置。 二维空间在这种变化时候,我们可以对无限网格上的所有点同时做变换,还可以保留原来坐标的网格,以便追踪起点和终点的位置。 那么什么是线性变换呢

OpenGL学习

瘦欲@ 提交于 2020-03-27 09:06:06
1. 常识 static GLint vertices[] = { 25, 25, 100, 325, 175, 25, 175, 325, 250, 25, 325, 325 };//这些坐标,画的时候都是相对于屏幕右下角 PS:如果修改了窗口的内容,就需要调用glutPostRedisplay(); PS:窗口在创建的时候就发生了窗口大小的改变,所以要调用glutReshapeFunc, 可以看到每次窗口变化都调用了其中的代码 2. OpenGL简介 PS:接口包含函数700多个 PS:OpenGL也没有提供包含三维物体的高级函数,只能通过使用为数不多基本图元(点、直线、多边形)来创建 PS:OpenGL的工具库(GLU)提供了许多建模的功能,例如二次曲面以及Nurbs曲线和曲面 1.1 OpenGL对场景中图形渲染的步骤 1.创建几何图元,创建图形,建立数学描述 2.在三维空间中排列物体,并选择观察符合场景的有利视角 3.计算所有物体的颜色( 可以由 程序决定、光照和物理纹理贴图 , 或者是三者的结合 ) 4.把物体的数学描述和物体的相关颜色信息转换成屏幕上的像素 PS:OpenGL也是C/s的模式 2.1 几个简单的概念 PS:渲染,是计算机根据 模型 创建图形的过程 模型,是根据 几何图元 创建的,也叫物体 几何图元 ,包括点、直线和多边形,他们是通过顶点指定的 像素-

关于矩阵

孤街浪徒 提交于 2020-03-21 22:42:27
本章所写都是通过对《工程学线性代数》和《3D数学基础:图形与游戏开发》理解所写 “不幸的是,没人告诉您矩阵像什么——您必须自己去感受。” 来自《 黑客帝国 》对白 .我们曾宣称矩阵表达坐标转换,多以当我们观察矩阵的时候,我们是在观察转换,观察新的坐标系。打这个转换开起来像什么?特定的3D矩阵(旋转,放射等)和3X3矩阵的9个数字之间有什么关系?怎么样构建一个矩阵来做这个转换(而不是盲目的照搬书上的公式)?——3D数学基础 矩阵分为实矩阵和复矩阵,元素是实数的矩阵为实矩阵,元素是复数的为复矩阵。 关于复数: http://www.cnblogs.com/ThreeThousandBigWorld/archive/2012/07/21/2602588.html 单位矩阵我们记做E 转置矩阵: 用 ' 表示转置因为右上角的小t打不出来,a为实数 1)(A')' = A; 2) (A+B)' = A' + B'; 3) (aA)' = aA'; 4) (AB)' = B'A'. 由n阶方阵A的元素所构成的行列式(个元素的位置不变),称为方阵A的行列式,记做|A|或detA 1)|A'| = |A| 2) |aA| = a^n|A| 3) |AB| = |A||B| 伴随矩阵: 行列式|A|的各个元素的代数余子式Aij所构成的矩阵然后再转置就是矩阵A的 伴随矩阵 , 记做A* AA* = A

Matlab(9)——矩阵变换

巧了我就是萌 提交于 2020-03-17 03:42:54
Matlab(9)——矩阵变换 文章目录 Matlab(9)——矩阵变换 一、对角阵 1.提取矩阵对角线上的元素 2.构造对角矩阵 3.应用 二、三角阵 1.上三角矩阵 2.下三角矩阵 三、矩阵的转置 四、矩阵的旋转 五、矩阵的翻转 六、矩阵的逆矩阵 一、对角阵 1.提取矩阵对角线上的元素 diag(A):提取矩阵A对角线上的元素,形成一个列向量 diag(A,k): 提取A 的第 k 条对角线上元素的列向量。k=0 表示主对角线,k>0 位于主对角线上方,k<0 位于主对角线下方。 2.构造对角矩阵 diag(v) :以向量v为主对角线元素建立对角矩阵 D = diag(v,k) :将向量 v 的元素放置在第 k 条对角线上。k=0 表示主对角线,k>0位于主对角线上方,k<0 位于主对角线下方。 3.应用 现有一n阶方阵A (1)要将A第一行元素乘r1,第二行元素乘r2,…,第n行元素乘以rn 可以建立对角矩阵:B=diag(r1,r2,…rn),再B*A (2)要将A第一列元素乘c1,第二行元素乘c2,…,第n行元素乘以cn 可以建立对角矩阵:B=diag(c1,c2,…cn),再A*B 二、三角阵 1.上三角矩阵 triu(A):返回矩阵 A 的上三角部分。 triu(A,k):返回位于 A 的第 k 条对角线上以及该对角线上方的元素。(k可以为负) 2.下三角矩阵

计算机图形学:基本变换

放肆的年华 提交于 2020-02-23 17:39:03
基本变换 1 基向量的变换 1.1 基向量的变换 初始基向量为 i ^ ( 1 , 0 ) , j ^ ( 0 , 1 ) \hat{i}(1,0),\hat{j}(0,1) i ^ ( 1 , 0 ) , j ^ ​ ( 0 , 1 ) ,经过变换后变为 i ^ ( 3 , − 2 ) , j ^ ( 2 , 1 ) \hat{i}(3,-2), \hat{j}(2,1) i ^ ( 3 , − 2 ) , j ^ ​ ( 2 , 1 ) 1.2 线性变换对向量的作用 仅需取出向量的坐标,将它们分别于矩阵的特定列相乘,然后将结果相加即可 逆时针旋转90°的例子 当两个向量变为线性相关时,两个向量共线,二维空间会被挤压到一维 2 Transformation Classification(分类) 2.1 Rigid-body Transformation (刚体变换) 物体本身的长度、角度、大小不会变化包括: Identity(不变) Translation(平移) Rotation(旋转) 以及他们的组合 2.2 Similarity Transformation(相似变换) 保持角度 Identity(不变) Translation(平移) Rotation(旋转) Isotropic Scaling(均衡缩放) 以及他们的组合 2.3 Linear

OpenGL视点变换,模型变换,投影变换,视口变换详解

荒凉一梦 提交于 2020-02-23 03:40:31
OpenGL视点变换,模型变换,投影变换,视口变换详解 http://blog.csdn.net/yhb5566/article/details/7714319 作者:luck_net | 出处:博客园 | 2012/2/22 14:46:49 | 阅读112次 OpenGL通过相机模拟、可以实现计算机图形学中最基本的三维变换,即几何变换、投影变换、裁剪变换、视口变换等,同时,OpenGL还实现了矩阵堆栈等。理解掌握了有关坐标变换的opengl图片内容,就算真正走进了精彩地三维世界。 一、OpenGL中的三维物体的显示 (一)坐标系统 在现实世界中,所有的物体都具有三维特征,但计算机本身只能处理数字,显示二维的图形,将三维物体及二维数据联系在一起的唯一纽带就是坐标。 为了使被显示的三维物体数字化,要在被显示的物体所在的空间中定义一个坐标系。这个坐标系的长度单位和坐标轴的方向要适合对被显示物体的描述,这个坐标系称为世界坐标系。世界坐标系是始终固定不变的。 OpenGL还定义了局部坐标系的概念,所谓局部坐标系,也就是坐标系以物体的中心为坐标原点,物体的旋转或平移等操作都是围绕局部坐标系进行的,这时,当物体模型进行旋转或平移等操作时,局部坐标系也执行相应的旋转或平移操作。需要注意的是,如果对物体模型进行缩放操作,则局部坐标系也要进行相应的缩放,如果缩放比例在案各坐标轴上不同

iOS开发-OpenGLES 入门踩坑

╄→гoц情女王★ 提交于 2020-02-13 09:12:56
OpenGL的变换 OpenGL ES 中有两套矩阵,都是4×4的GLfloat矩阵。一个叫 modelview matrix ,你大部分时间都会与之打交道。它是你用来对虚拟世界进行变换的矩阵。要对虚拟世界中的物体进行旋转,转移或尺寸变化,你都需要对此矩阵进行修改。 另一个矩阵用来创建根据设定的视口对世界坐标进行描述的二维表示。此矩阵称为 projection matrix 。在绝大部分时间内,你都不需要接触该矩阵。 从三维空间到二维平面,就如同用相机拍照一样,通常都要经历以下几个步骤 (括号内表示的是相应的图形学概念):   第一步,将相机置于三角架上,让它对准三维景物( 视点变换 ,Viewing Transformation)。   第二步,将三维物体放在适当的位置( 模型变换 ,Modeling Transformation)。   第三步,选择相机镜头并调焦,使三维物体投影在二维胶片上( 投影变换 ,Projection Transformation)。   第四步,决定二维像片的大小( 视口变换 ,Viewport Transformation)。   这样,一个三维空间里的物体就可以用相应的二维平面物体表示了,也就能在二维的电脑屏幕上正确显示了。 变换后的x坐标范围是[-1, 1],y坐标范围是[-1, 1],z坐标范围是[0, 1](OpenGL略有不同,z值范围是

矩阵特征值

試著忘記壹切 提交于 2020-02-13 02:19:32
参考:https://www.zhihu.com/question/21874816 如何理解矩阵特征值? 想要理解特征值,首先要理解矩阵相似。什么是矩阵相似呢?从定义角度就是:存在可逆矩阵P满足B= 则我们说A和B是相似的。让我们来回顾一下之前得出的重要结论:对于同一个线性空间,可以用两组不同的基 和基 来描述,他们之间的过渡关系是这样的: ,而对应坐标之间的过渡关系是这样的: 。其中P是可逆矩阵,可逆的意义是我们能变换过去也要能变换回来,这一点很重要。 我们知道,对于一个线性变换,只要你选定一组基,那么就可以用一个矩阵T1来描述这个线性变换。换一组基,就得到另一个不同的矩阵T2(之所以会不同,是因为选定了不同的基,也就是选定了不同的坐标系)。所有这些矩阵都是这同一个线性变换的描述,但又都不是线性变换本身。具体来说,有一个线性变换 ,我们选择基 来描述,对应矩阵是 ;同样的道理,我们选择基 来描述 ,,对应矩阵是 ;我们知道基 和基 是有联系的,那么他们之间的变换 和 有没有联系呢? 当然有, 和 就是相似的关系,具体的请看下图: &amp;lt;img src="https://pic1.zhimg.com/6cf43eca0f26cb1752f8fbf2633b699c_b.jpg" data-rawwidth="721" data-rawheight="449" class

数字图像处理——第二章(数字图像基础)

蹲街弑〆低调 提交于 2020-02-09 03:21:11
数字图像基础 一、人眼结构 二、电磁波谱和光 2.1 电磁波谱 2.2 光 三、图像的数学模型 四、图像的取样和量化 4.1 取样和量化的概念 4.2 数字图像表示 4.3 空间和灰度分辨率 4.4 图像内插 4.5 像素间的一些基本关系 4.5.1 相邻像素 4.5.2 邻接性、联通性、区域和边界 4.5.3 距离度量 五、数字图像处理中的数学工具介绍 5.1 阵列与矩阵操作 5.2 线性操作和非线性操作 5.3 算术操作 5.4 集合和逻辑操作 5.4.1 集合操作 5.4.2 逻辑操作 5.5 空间操作 5.5.1 单像素操作 5.5.2 邻域操作 5.5.3 几何空间变换和图像配准 5.6 向量和矩阵操作 5.7 图像变换 5.8 概率方法 一、人眼结构 眼睛由三层膜包裹:角膜与巩膜外壳、脉络膜和视网膜。 角膜 是一种硬而透明的组织,覆盖着眼睛的前表面,巩膜是一层包围眼球其余部分的不透明膜。 脉络膜 包含血管网,是眼睛的重要滋养源。 视网膜 是眼睛最里面的膜。眼睛适当聚焦时,来自眼睛外部物体的光在视网膜上成像。感受器通过感受视网膜表面分布的不连续光形成图案。 光感受器分为: 锥状体和杆状体 。 每只眼睛中的锥状体数量约为600~700万个, 对颜色高度敏感 。使用锥状体人可以充分 分辨图像细节 (每个锥状体都连接到自身的神经末梢)。锥状体视觉称为 白昼视觉或亮视觉 。

转:奇异值分解与特征值分解

偶尔善良 提交于 2020-01-29 04:31:44
文章摘自: http://blog.jobbole.com/88208/ 一、奇异值与特征值基础知识: 特征值分解和奇异值分解在机器学习领域都是属于满地可见的方法。两者有着很紧密的关系,我在接下来会谈到,特征值分解和奇异值分解的目的都是一样,就是提取出一个矩阵最重要的特征。先谈谈特征值分解吧: 1) 特征值: 如果说一个向量v是方阵A的特征向量,将一定可以表示成下面的形式: 这时候λ就被称为特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量。特征值分解是将一个矩阵分解成下面的形式: 其中Q是这个矩阵A的特征向量组成的矩阵,Σ是一个对角阵,每一个对角线上的元素就是一个特征值。我这里引用了一些参考文献中的内容来说明一下。首先,要明确的是,一个矩阵其实就是一个线性变换,因为一个矩阵乘以一个向量后得到的向量,其实就相当于将这个向量进行了线性变换。比如说下面的一个矩阵: 它其实对应的线性变换是下面的形式: 因为这个矩阵M乘以一个向量(x,y)的结果是: 上面的矩阵是对称的,所以这个变换是一个对x,y轴的方向一个拉伸变换(每一个对角线上的元素将会对一个维度进行拉伸变换,当值>1时,是拉长,当值<1时时缩短),当矩阵不是对称的时候,假如说矩阵是下面的样子: 它所描述的变换是下面的样子: 这其实是在平面上对一个轴进行的拉伸变换(如蓝色的箭头所示),在图中,蓝色的箭头是一个最 主要的