线性变换 矩阵

线代说明了一个事实,就是“任意的”(见下)变换(x乘以y,x加上y,以及之间的任意组合)可以通过构造一个特定的矩阵,以矩阵乘法的方式“一次”完成。这就给硬件优化留下了余地。

而图形学说明了一个事实,那就是空间映射和顶点变换都是线性齐次的运算,也就是上文所述的那种“任意的”变换,这就意味着,现代说明的那种计算方式,可以应用到图形学里面。

图形学未必是需要用矩阵来做,一来矩阵刚好满足需求,二来矩阵乘法的话比较简单明了而且概念统一(所有的变换都综合在一起了),三来计算机可以做优化。

从图形学的一些概念可以看出这种“向线代伸手”的意图是故意的:为了能涵盖所有的算法,图形学创造了“齐次坐标”这种东西,根本目的是为了将某些原本矩阵乘法无法涵盖进去的运算也搞进去,而不惜增加一维的运算量= =

用矩阵表示线性变换的一个主要动力就是可以很容易地进行组合变换以及逆变换。

组合变换:组合可以通过矩阵乘法来完成。如果AB是两个线性变换,那么对向量x先进行A变换,然后进行B变换的过程为:

任意线性变换都可以用矩阵表示为易于计算的一致形式,并且多个变换也可以很容易地通过矩阵的相乘连接在一起。

线性变换不是唯一可以用矩阵表示的变换。R维的仿射变换与透视投影都可以用齐次坐标表示为RP维(即n+1 维的真实投影空间)的线性变换。因此,在三维计算机图形学中大量使用着 4x4 的矩阵变换

三维图形学,为什么使用四维矩阵呢?主要有两个原因,第一,为了平移变换,第二,为了区别点和向量。

如果不用四维矩阵,平移变换必须用向量加减法,但是四维可以将缩放平移旋转统一为矩阵乘法.

v = {x,y,z,w}当w不为0时(一般=1),表示一个点;当w=0时,表示向量.

我来回答一下,分为两个问题:

1. 为什么引入齐次坐标可以表示平移?

答:

首先我们用一个矢量来表示空间中一个点:
如果我们要将其平移,平移的矢量为:
那么正常的做法就是:

如果不引入齐次坐标,单纯采用3X3矩阵乘法来实现平移
你想做的就是找到一个矩阵,使得

然后你就会发现你永远也找不到这样的矩阵

所以我们需要新引入一个维度,原来
那么我们可以找到一个4X4的矩阵来实现平移




现在,就有:

2. 为什么要引入齐次坐标来表示平移?

在计算机图形学中,坐标转换通常不是单一的,一个几何体在每一帧可能都设计了多个平移,旋转,缩放等变化,这些变化我们通常使用串接各个子变化矩阵的方式得到一个最终变化矩阵,从而减少计算量。所以我们需要将平移也表示为变化矩阵的形式。因此,只能引入齐次坐标系。

时间: 2024-10-02 05:44:12

线性变换 矩阵的相关文章

【线性变换/矩阵及乘法】- 图解线性代数 03

本文转自公众号---遇见数学---图解数学---线性代数部分 感谢遇见数学工作组将大学课本晦涩难懂.故作高深的数学知识,用通俗易懂而又生动有趣的方法解释出来. 线性变换是线性空间中的运动, 而矩阵就是用来描述这种变换的工具. 这样说还是没有直观印象, 所以还是直接看图解的动画吧. 矩阵不仅仅只是数值的表: 其实表示了在该矩阵的作用下, 线性空间是怎样的变化, 观察下图二维平面中水平和垂直方向的伸缩: 可以看到: 垂直方向并没有发生任何变换(A 的第二列没有变化); 水平方向伸展了 2 倍; 浅红

机器学习基础-线性代数学习笔记

这些知识其实中国的学生上过高中的就都应该学过,但是我不敢说所有的学生都忘了,但是还能有几个还记得呢,这是为什么呢,因为填鸭式的教育方式存在问题,所以说学过和没学过区别不大,我现在有点悔恨当初没有好好学,可能你也在悔恨,但是过去的都过去了,人生还要继续,只能恶补了..... 我看的是网易云上的视频教程,http://study.163.com/course/courseMain.htm?courseId=1050010,讲的不错,建议想学机器学习的同学看一下. 线性代数是什么? 代数->数的抽象表

人工智能学习线路

学习人工智能有段时间了,总结了一下人工智能的学习历程和课程表,希望对想学习的朋友有所帮助.期间也买了很多资料.可以分享给大家. 阶段一:数学基础 1.数据分析 常数e 导数 梯度 Taylor gini系数 信息熵与组合数 2.概率论 概率论基础 古典模型 常见概率分布 大数定理和中心极限定理 协方差(矩阵)和相关系数 最大似然估计和最大后验估计 3.线性代数及矩阵 线性空间及线性变换 矩阵的基本概念 状态转移矩阵 特征向量 矩阵的相关乘法 矩阵的QR分解 对称矩阵.正交矩阵.正定矩阵 矩阵的S

3D数学读书笔记——矩阵基础番外篇之线性变换

本系列文章由birdlove1987编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhurui_idea/article/details/25102425 前面有一篇文章讨论过多坐标系的问题.有的人可能会问我那么多坐标系,它们之间怎么关联呢?嘿嘿~这次的内容可以为解决这个问题打基础奥! 线性变换基础(3D数学编程中,形式转换经常是错误的根源,所以这部分大家要多多思考,仔细运算) 一般来说,方阵(就是行和列都相等的矩阵)能描述任意的线性变换,所以后面我们一般用方阵来变

第八章:矩阵和线性变换

第一节:旋转 1.2D中的旋转 上一节中讲了矩阵的几何意义,矩阵的每一行可以看做该维度向量的分解坐标轴向量所对应的最终状态.接下来我们以2D单位向量来讨论2D向量的旋转问题. 上图中我们以2D向量[1 1]来演示旋转θ角后的矩阵表示.首先分解2D向量[1 1],然后[1 1]向量的旋转其实就是分解的p和q向量的旋转,旋转后得到的p'和q'向量就是旋转后的向量.我们可以根据三角函数求出旋转后的分解向量p'和q'.然后我们根据矩阵的几何定义,可以推理出2D向量的旋转矩阵.

浅浅地聊一下矩阵与线性映射及矩阵的特征值与特征向量

都说矩阵其实就是线性映射,你明白不?反正一开始我是不明白的: 线性映射用矩阵表示:(很好明白的) 有两个线性空间,分别为V1与V2, V1的一组基表示为,V2的一组基表示为:(注意哦,维度可以不一样啊,反正就是线性空间啊), 1, 现在呢,有一个从V1到V2的映射F, 它可以把V1中的一组基都映射到线性空间V2中去,所以有: 用矩阵可以表示为: 2,现在我们把在V1中有一个向量A,经过映射F变为了向量B,用公式表示为:                                 所以呢,坐标

洛谷 P3390 【模板】矩阵快速幂

这题的确是个模板 但也要提到有关矩乘的内容: 首先什么是矩阵? 给一个线性变换 F(x)   (她可能就是个函数,定义域为向量集) 她可以把一个N维向量变成M维 那么显然x的每一维都可能影响着F(x)的每一维,于是F(x)这个线性变换就应该是N*M个在每两维间的小映射构成的. 于是我们可以把她写成M行N列的矩阵(M行N列是出于习惯) 所以矩阵是用于形象的表示线性变换的工具: 所以怎么合乎习惯的构造矩阵呢? 举例说明: 如,有一个三元组(3维向量)x{a,b,c} 定义F(x)={a+b,b+c}

矩阵与行列式的几何意义

作者:童哲链接:https://www.zhihu.com/question/36966326/answer/70687817来源:知乎著作权归作者所有,转载请联系作者获得授权. 行列式这个“怪物”定义初看很奇怪,一堆逆序数什么的让人不免觉得恐惧,但其实它是有实际得不能更实际的物理意义的,理解只需要三步.这酸爽~ 1,行列式是针对一个的矩阵而言的.表示一个维空间到维空间的线性变换.那么什么是线性变换呢?无非是一个压缩或拉伸啊.假想原来空间中有一个维的立方体(随便什么形状),其中立方体内的每一个点

《Linear Algebra and Its Applications》-线性变换

线性变换: 先前我们曾经提到过,在讨论矩阵方程Ax = b和向量方程x1a1+x2a2+x3a3+…+xnan = b同解性的时候,我们曾经说过这这将呼应了矩阵乘法运算的规则.但是在这里我们首先介绍一个过渡的概念——线性变换. 考察矩阵方程Ax = b,A是n x m矩阵,x是R^n向量,由先前我们所定义的规则,b必然是R^m向量.我们抽象化这个过程,从集合论或者是函数的角度去看待这样一个明显有着映射的过程,我们将向量x视为原像,向量b视为像,而乘以矩阵A作为一种对应关系. 为什么要建立这样一个