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^空间中一条过原点的射线 ...
随机推荐
- Ubunt 使用Virtualbox虚拟机NAT无法上网解决办法
我的Ubuntu安装了一个Centos虚拟机,为了SSH和上外网的方便,使用了NAT+host Only方式,实现内网+外网,但是安装好的Centos不能连接外网,很是无语,只能Google了-- 解 ...
- Socket网络编程--网络爬虫(1)
我们这个系列准备讲一下--网络爬虫.网络爬虫是搜索引擎系统中十分重要的组成部分,它负责从互联网中搜集网页,采集信息,这些网页信息用于建立索引从而为搜索引擎提供支持,它决定着整个引擎系统的内容是否丰富, ...
- MXNET:卷积神经网络基础
卷积神经网络(convolutional neural network).它是近年来深度学习能在计算机视觉中取得巨大成果的基石,它也逐渐在被其他诸如自然语言处理.推荐系统和语音识别等领域广泛使用. 目 ...
- Oracle Grid 11.2.0.4 安装是出现"INS-30510: Insufficient number of ASM disks selected."
最新文章:Virson's Blog 错误的原因是由于磁盘数和冗余层级不匹配: 如果创建用来存放OCR和VOTEDISK的ASM磁盘组,那么External.Normal.High三种冗余级别对应的F ...
- Java如何计数字串中的一组词组?
在Java编程中,如何计数字串中的一组词组? 以下示例演示如何使用regex.Matcher类的matcher.groupCount()方法来计算字符串中的一组词组. package com.yiib ...
- 什么是跨域访问,JSON&JSONP
http://blog.csdn.net/notechsolution/article/details/50394391 更详细的讲解,关于同源策略等: http://www.cnblogs.com/ ...
- 我的Mac Pro coding环境配置
新装了OS X 10.11.1. 记录一下开发用得到的一些玩意,方便下次再次配置. homebrew国内源:http://mirrors.tuna.tsinghua.edu.cn/help/#home ...
- JMeter命令行执行及问题解决 Error in NonGUIDriver java.lang.RuntimeException: Could not find the TestPlan class!
下面介绍的是在windows环境下如何运行jmeter linux 命令相同 1.首先要准备好脚本,并且设置好线程属性,假设我们设置一个线程,循环一次. 2. ...
- js -【 数组】判断一个变量是数组类型的几种方法
怎么判断一个数组是数组呢? 其实这个也是一个常考的题目.依稀记得我为数不多的面试经过中都被问道过. 方案一: instanceof variable instanceof Array 解决思路: 使用 ...
- 在WPS中删除整行的快捷键是什么?
选中需要删除的行,(方法:点击最左侧的行号):按快捷键Ctrl+-(按着Ctrl不放,再按小键盘的减号“-”),“-”是删除,“+”是插入,选中行,是对行操作,选中列就是对列操作,选中单元格,就是单元 ...