[线性代数]矩阵变换在几何中的体现:缩放、翻转、切片、旋转、平移矩阵;放射变换
1.缩放矩阵
几何图示
对应公式
x ′ = − x y ′ = y \begin{aligned} &x^{\prime}=-x \\ &y^{\prime}=y \end{aligned} x′=−xy′=y
[ x ′ y ′ ] = [ s x 0 0 s y ] [ x y ] \left[\begin{array}{l} x^{\prime} \\ y^{\prime} \end{array}\right]=\left[\begin{array}{cc} s_{x} & 0 \\ 0 & s_{y} \end{array}\right]\left[\begin{array}{l} x \\ y \end{array}\right] [x′y′]=[sx00sy][xy]
带入数据
[ x ′ y ′ ] = [ 0.5 0 0 1 ] [ x y ] \left[\begin{array}{l} x^{\prime} \\ y^{\prime} \end{array}\right]=\left[\begin{array}{cc} 0.5 & 0 \\ 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \end{array}\right] [x′y′]=[0.5001][xy]
2.反转矩阵
几何图示
对应公式
x ′ = − x y ′ = y \begin{aligned} &x^{\prime}=-x \\ &y^{\prime}=y \end{aligned} x′=−xy′=y
[ x ′ y ′ ] = [ − 1 0 0 1 ] [ x y ] \left[\begin{array}{l} x^{\prime} \\ y^{\prime} \end{array}\right]=\left[\begin{array}{cc} -1 & 0 \\ 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \end{array}\right] [x′y′]=[−1001][xy]
3.切片(剪切)矩阵
几何图示
对应公式
[ x ′ y ′ ] = [ 1 a 0 1 ] [ x y ] \left[\begin{array}{l} x^{\prime} \\ y^{\prime} \end{array}\right]=\left[\begin{array}{ll} 1 & a \\ 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \end{array}\right] [x′y′]=[10a1][xy]
4.旋转矩阵
几何图示
对应公式
R θ = [ cos θ − sin θ sin θ cos θ ] \mathbf{R}_{\theta}=\left[\begin{array}{cc} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{array}\right] Rθ=[cosθsinθ−sinθcosθ]
推导:
- 取点 ( 1 , 0 ) → ( c o s θ , s i n θ ) (1,0)→(cosθ,sinθ) (1,0)→(cosθ,sinθ)
( x ′ y ′ ) = ( A B C D ) ( x y ) ( cos θ sin θ ) = ( A B C D ) ( 1 0 ) \begin{aligned} &\left(\begin{array}{l} x^{\prime} \\ y^{\prime} \end{array}\right)=\left(\begin{array}{l} A & B \\ C & D \end{array}\right)\left(\begin{array}{l} x \\ y \end{array}\right)\\ &\left(\begin{array}{c} \cos \theta \\ \sin \theta \end{array}\right)=\left(\begin{array}{ll} A & B \\ C & D \end{array}\right)\left(\begin{array}{l} 1 \\ 0 \end{array}\right) \end{aligned} (x′y′)=(ACBD)(xy)(cosθsinθ)=(ACBD)(10)
得出 A = c o s θ , C = s i n θ A=cosθ,C=sinθ A=cosθ,C=sinθ
- 取点 ( 0 , 1 ) → ( − s i n θ , c o s θ ) (0,1)→(-sinθ,cosθ) (0,1)→(−sinθ,cosθ)
( − sin θ cos θ ) = ( A B C D ) ( 0 1 ) \begin{aligned} &\left(\begin{array}{c} -\sin \theta \\ \cos \theta \end{array}\right)=\left(\begin{array}{ll} A & B \\ C & D \end{array}\right)\left(\begin{array}{l} 0 \\ 1 \end{array}\right) \end{aligned} (−sinθcosθ)=(ACBD)(01)
得出 B = − s i n θ , D = c o s θ B=-sinθ,D=cosθ B=−sinθ,D=cosθ
5.平移矩阵
几何图示
对应公式
( x ′ y ′ 1 ) = ( 1 0 t x 0 1 t y 0 0 1 ) ( x y 1 ) \left(\begin{array}{l} x^{\prime} \\ y^{\prime}\\ 1 \end{array}\right) =\left(\begin{array}{ccc} 1 & 0 & t_{x} \\ 0 & 1 & t_{y} \\ 0 & 0 & 1 \end{array}\right)\left(\begin{array}{l} x \\ y\\ 1 \end{array}\right) ⎝⎛x′y′1⎠⎞=⎝⎛100010txty1⎠⎞⎝⎛xy1⎠⎞
在此,你发现它多了一维,这说明:如果我们要对一个二维矩阵进行平移,我们需要用三维矩阵去控制它。
也就意味着,用一个三维的矩阵,不止可以将其平移,而是可以对它进行任意操作。
由此,引出了一个变换:仿射变换。
仿射变换
简单来说,仿射变换就是:线性变换”+“平移。
线性变换有三个特点:
- 变换前是直线,变换后依然是直线;
- 直线比例保持不变
- 变换前是原点,变换后依然是原点
仿射变换有两个特点:
- 变换前是直线,变换后依然是直线。
- 直线比例保持不变。
可以发现,由于加入了平移,原点不变的特性消失了。
平移不是线性变换,而是仿射变换。
所有的仿射变换都可以用一个三维矩阵来表示。
- Scale
S ( s x , s y ) = ( s x 0 0 0 s y 0 0 0 1 ) \mathbf{S}\left(s_{x}, s_{y}\right)=\left(\begin{array}{ccc} s_{x} & 0 & 0 \\ 0 & s_{y} & 0 \\ 0 & 0 & 1 \end{array}\right) S(sx,sy)=⎝⎛sx000sy0001⎠⎞ - Rotation
R ( α ) = ( cos α − sin α 0 sin α cos α 0 0 0 1 ) \mathbf{R}(\alpha)=\left(\begin{array}{ccc} \cos \alpha & -\sin \alpha & 0 \\ \sin \alpha & \cos \alpha & 0 \\ 0 & 0 & 1 \end{array}\right) R(α)=⎝⎛cosαsinα0−sinαcosα0001⎠⎞ - Translation
T ( t x , t y ) = ( 1 0 t x 0 1 t y 0 0 1 ) \mathbf{T}\left(t_{x}, t_{y}\right)=\left(\begin{array}{ccc} 1 & 0 & t_{x} \\ 0 & 1 & t_{y} \\ 0 & 0 & 1 \end{array}\right) T(tx,ty)=⎝⎛100010txty1⎠⎞
然而,以上我们都讨论的是针对一张图片——2D图形的变换。当变为3D物体时,我们只需要加一个坐标 z z z,就可以表示3D物体的放射变换,当然,“操作”这个三维矩阵的矩阵,自然就是4维的。
( x ′ y ′ z ′ 1 ) = ( a b c t x d e f t y g h i t z 0 0 0 1 ) ⋅ ( x y z 1 ) \left(\begin{array}{l} x^{\prime} \\ y^{\prime} \\ z^{\prime} \\ 1 \end{array}\right)=\left(\begin{array}{lllc} a & b & c & t_{x} \\ d & e & f & t_{y} \\ g & h & i & t_{z} \\ 0 & 0 & 0 & 1 \end{array}\right) \cdot\left(\begin{array}{c} x \\ y \\ z \\ 1 \end{array}\right) ⎝⎜⎜⎛x′y′z′1⎠⎟⎟⎞=⎝⎜⎜⎛adg0beh0cfi0txtytz1⎠⎟⎟⎞⋅⎝⎜⎜⎛xyz1⎠⎟⎟⎞
在此引申出了一个哲学问题,要操作一个 n n n维的“东西”,则需要操作者(观察者)至少处于第 n + 1 n+1 n+1维。例如:
- 一个点处于任何一个位置,它都是一个点,它并不具有任何能表示自己的值。
- 对于一条线,也可以理解为一个线段,这个点就有了一个坐标,也就是我们小学时学过的——横坐标(x坐标)。
- 对于一个平面,一条线就成了向量,离开线的点也可以被一个平面发现。
- 对于一个空间,一个平面也有了位置,两个不相交的平面可以通过空间坐标来知道彼此的位置。
- 下一个维度,我个人的理解为时间,但由于我也是三维生物,我无法做出比喻。
设想一下,是否有一个可以在时间轴上任意穿梭的“东西”,它能知道我们宇宙中的一切呢?无论是宇宙的过去,或是宇宙未来的模样,对于它来说只是重设时间值这么一个简单的操作?
[线性代数]矩阵变换在几何中的体现:缩放、翻转、切片、旋转、平移矩阵;放射变换相关推荐
- 线性代数:矩阵变换图形(二维平移缩放旋转)
转载自: https://blog.csdn.net/yinhun2012/article/details/79544205 前面我们从理论上理解了图形学中图形的变换过程,具体可以理解为如果要对一个图 ...
- C++-矩阵运算-Eigen-几何矩阵变换-常见几何参数求解-平移-缩放-旋转-仿射变换-垂足-面积-周长-方向角-按目标点和距离移动当前点
文章目录 1.矩阵运算规律 1.1.矩阵相乘结合律 1.2.矩阵相乘交换律 1.3.矩阵转置 1.4.矩阵的逆 2.仿射变换 2.1.平移变换 Translation 2.2.缩放变换 Scale 2 ...
- 【机器学习的数学基础】(二)线性代数(Linear Algebra)(中)
文章目录 2 线性代数(Linear Algebra)(中) 2.4 向量空间 2.4.1 群 2.4.2 向量空间 2.4.3 向量子空间 2.5 线性独立 2.6 基和秩 2.6.1 生成集和基 ...
- 酒店中计算机信息应用的重要性,浅析计算机在酒店管理中所体现的应用价值
浅析计算机在酒店管理中所体现的应用价值 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 浅析计算机在酒店管理中所体现的应用价值 1概述 ...
- 适配器在JavaScript中的体现
适配器设计模式在JavaScript中非常有用,在处理跨浏览器兼容问题.整合多个第三方SDK的调用,都可以看到它的身影. 其实在日常开发中,很多时候会不经意间写出符合某种设计模式的代码,毕竟设计模式就 ...
- java面试题31:结构型模式中最体现扩展性的模式是()
java面试题31:结构型模式中最体现扩展性的模式是() A:装饰模式 B:合成模式 C:桥接模式 D:适配器 蒙蔽树上蒙蔽果,蒙蔽树下你和我 结构型模式是描述如何将类对象结合在一起,形成一个更大的结 ...
- 中ridge_10种线性代数在数据科学中的强大应用(内附多种资源)
原文选自 | Analytics Vidhya 作者 | Khyati Mahendru 本文转载自 TalkingData数据学堂 ,未经允许禁止转载 本文摘要 线性代数为各种各样的数据科学算法和应 ...
- 几何画板是哪方面的计算机应用,几何画板在几何中的奇妙应用
原标题:几何画板在几何中的奇妙应用 高一数学学科论坛 几何画板在|几何中的 奇 妙 应 用 当今世界日益信息化,信息日益网络化,<几何画板>正是现代信息技术中改变学生学习方式,促进教师数学 ...
- 线性代数在计算机视觉的应用,10种线性代数在数据科学中的强大应用(内附多种资源)...
本文摘要线性代数为各种各样的数据科学算法和应用提供支持 在这里,我会向您介绍通过线性代数帮助您成为更好的数据科学家的10种实际应用 我们已将这些应用程序分类到各个领域 - 基本机器学习,降维,自然语言 ...
最新文章
- 图像分类和目标检测技术有什么区别?
- 宁波网络推广介绍几点容易被优化人员忽略的图片优化技巧!
- Linux 主机被入侵后的处理案例
- Azure SQL 数据库引入了新的服务级别
- 年终福利 | 京东虚拟平台团队问答专场
- 【干货】百度十年产品经验总结:产品经理九步法
- Mysql8.0.12安装教程方法 Mysql8.0.12安装教程
- [蓝桥杯][基础练习VIP]分解质因数
- js实现替换指定字符后面的内容(包括指定字符)
- binarySearch与IndexOf的那些事儿~
- 莫比乌斯带catia建模_独家教程 | 循环曲面“莫比乌斯”,康石石教你Rhino“3步”快速打造...
- 【Day05】Html5 有哪些新特性?如何处理 Html5 新标签的浏览器兼容问题?如何区分 Html 和 Html5?
- cups源码下载 linux_正点原子Linux第七十章Linux WIFI驱动实验
- hexo需要先编辑好html文件吗,教你定制Hexo的landscape打造自己的主题_html/css_WEB-ITnose...
- HDU1213How Many Tables
- vue $slot基本用法
- 电脑今天关机,第二天重启 解决方案
- 复联4定档 4.24——十一年21部漫威电影,用数据为你梳理口碑、票房、主演最佳...
- 海尔计算机天越Y3的配置,海尔天越Y3S 拉近你与梦想的距离!
- Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes解决办法