transformations 变换集合关系 仿射变换
http://groups.csail.mit.edu/graphics/classes/6.837/F03/lectures/04_transformations.ppt
https://groups.csail.mit.edu/graphics/classes/6.837/F03/lectures/
Maps points (x, y) in one coordinate system to points (x', y') in another coordinate system
x' = ax + by + c
y' = dx + ey + f
For example, IFS:


Can be combined
Are these operations invertible?
Yes, except scale = 0
恒等 平移 旋转 等比缩放
可逆,除非等比缩放系数为0
Classes of Transformations 变换分类
Rigid Body / Euclidean Transforms 刚体、欧式变换
Similitudes / Similarity Transforms 相似性变换
Linear 线性变换
Affine 放射
Projective 投影
保持不变量的对象
点点之间
距离
线线之间
角度
平行关系
保距变换
保角变换
平行变换
Rigid-Body / Euclidean Transforms

Preserves distances
Preserves angles
Rigid / Euclidean
Translation Identity Rotation
Similitudes / Similarity Transforms

Linear Transformations

L(p + q) = L(p) + L(q)
L(ap) = a L(p)
shear
vt. 剪;修剪;剥夺
vi. 剪;剪切;修剪
切力 切变
Affine Transformations

Projective Transformations
preserves lines


Representing Transformations 变换的表示
Combining Transformations 变换的联合
Change of Orthonormal Basis 改变正交基
How are Transforms Represented?

Homogeneous Coordinates 齐次坐标
Add an extra dimension
in 2D, we use 3 x 3 matrices
in 3D, we use 4 x 4 matrices
Each point has an extra value, w

Most of the time w = 1, and we can ignore it

If we multiply a homogeneous coordinate by an affine matrix, w is unchanged
如果通过仿射矩阵来乘齐次坐标系,则w不变
Divide by w to normalize (homogenize)
W = 0? Point at infinity (direction)

https://en.wikipedia.org/wiki/Affine_transformation





Translate (tx, ty, tz)
Why bother with the extra dimension? Because now translations can be encoded in the matrix!
Translate(c,0,0)

Scale (sx, sy, sz)
Isotropic (uniform) scaling: sx = sy = sz

扩展
旋转

关于不同坐标轴旋转

About (kx, ky, kz), a unit vector on an arbitrary axis(Rodrigues Formula)

How are transforms combined?
Scale then Translate

Use matrix multiplication: p' = T ( S p ) = TS p

Caution: matrix multiplication is NOT commutative!
矩阵相乘不可以交换
Non-commutative Composition
Scale then Translate: p' = T ( S p ) = TS p

Translate then Scale: p' = S ( T p ) = ST p



Review of Dot Product
点乘

Change of Orthonormal Basis
Given: coordinate frames
xyz and uvn
point p = (x,y,z)

Find: p = (u,v,n)

Substitute into equation for p:

Rewrite:

p = (u,v,n) = u u + v v + n n
Expressed in uvn basis:

In matrix form:



transformations 变换集合关系 仿射变换的更多相关文章
- MongoDB学习笔记~使用原生语句实现三层集合关系的更新
回到目录 MongoDB的文档型数据结构使得它在存储数据上很像JSON,在可读性方面很强,然而这种复杂的结构在update时相对麻烦一些,而对于官方给出的文档说的也不够细致,有些东西也是模棱两可的态度 ...
- python 全栈开发,Day7(元组转换,列表以及字典的坑,集合,关系测试,深浅copy,编码补充)
一.元组转换 数字 tu = (1) tu1 = (1,) print(tu,type(tu)) print(tu1,type(tu1)) 执行输出: 1 <class 'int'>(1, ...
- java基础笔试题二(集合关系)
知识点:java集合继承关系(Collection,Map) 1.集合框架体系图 2.java的集合层次 来自博客(http://blog.csdn.net/stubbornaccepted/arti ...
- day14 Python集合关系运算交,差,并集
low逼写法,没用集合 python_1 = ['charon','pluto','ran'] linux_1 = ['ran','xuexue','ting'] python_and_linux = ...
- LaTex中集合关系的表示
集合的大括号: \{ ... \} \(\{ ... \}\) 集合中的"|": \mid \(\mid\) 属于: \in \(\in\) 不属于: \not\in \(\not ...
- java集合的中的集合关系实现或继承关系图
放在这儿一目了然.
- Java - 集合之间的关系和区别
1.Java集合关系图: 2.List.Map.Set区别: ① List ArrayList LinkedList Vector Advantage Search Insert.Delete Syn ...
- opencv中的仿射变换
什么是仿射变换? 原理:1.一个任意的仿射变换都能表示为 乘以一个矩阵(线性变换) 接着再 加上一个向量(平移) 2.综上所述,我们能够用仿射变换来表示: 1)旋转(线性变换) 2)平移(向量加) 3 ...
- 2D射影几何和变换
阅读<计算机视觉中的多视图集合> 2D射影几何和变换 2D射影平面 本章的关键是理解线和点的对偶性.从射影平面模型出发,IP^2^内的点(a, b ,c)由IP^3^空间中一条过原点的射线 ...
随机推荐
- Sql2008中添加程序集(转)
一.示例演示 1.用C# 建立数据库 CRL 项目 public partial class MyClr{ [Microsoft.SqlServer.Server.SqlFunction] ...
- 译: 1. RabbitMQ Spring AMQP 之 Hello World
本文是译文,原文请访问:http://www.rabbitmq.com/tutorials/tutorial-one-spring-amqp.html RabbitMQ 是一个Brocker (消息队 ...
- Socket网络编程--聊天程序(7)
接上一小节,本来是计划这一节用来讲数据库的增删改查,但是在实现的过程中,出现了一点小问题,也不是技术的问题,就是在字符界面上比较不好操作.比如要注册一个帐号,就需要弄个字符界面提示,然后输入数字表示选 ...
- 初识HTTPS
初识HTTPS HTTPS也被叫做“基于TLS的HTTP,基于SSL的HTTP,HTTP安全“,它是一个在Internet上广泛使用的计算机网络安全通信协议. 即HTTPS是HTTP的安全版本,在了解 ...
- 每日英语:Dashing the China Dream
Much has been said about what the 'China Dream' really means to many Chinese -- whether it is nation ...
- HttpPost请求将json作为请求体传入的简单处理方法
https://www.cnblogs.com/mambahyw/p/7875142.html **************************************************** ...
- 【原】在Matplotlib绘图过程中设置X轴的刻度和显示文本
使用Matplotlib进行绘图时,当x轴的数据太多的时候,就需要设置x轴的刻度和显示文本,关键代码如下: 绘图结果如下:
- wrk压测工具使用
介绍分为四部分 1.wrk简述 2.wrk安装 3.wrk运行参数 4.wrk高级用法 1.wrk简述 当使用ab做压测的时候发现,ab的客户端消耗很大,而且测试时性能较差,测试redis,sprin ...
- ssh免密码登录配置方法
每次输密码很麻烦,免密登录设置方法按照<ssh免密码登录配置方法>即可,简单来说: 1.终端上执行ssh-keygen -t rsa,生成密钥对(存放在/home/usera/.ssh). ...
- Eclipse 中修改tomcat设置内存大小
修改1: 在Eclipse中下面Servers双击Tomcat Server... 然后点击General InformAtion 下的Open launch configuration: 会弹出Ed ...