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^空间中一条过原点的射线 ...
随机推荐
- android4.3 截屏功能的尝试与失败分析
1.背景 上一篇讲了在源码中捕获到了android手机的截屏函数(同时按下电源键与音量减,详情http://blog.csdn.net/buptgshengod/article/details/199 ...
- 分析各种Android设备屏幕分辨率与适配 - 使用大量真实安卓设备采集真实数据统计
一. 数据采集 源码GitHub地址 : -- SSH : git@github.com:han1202012/DisplayTest.git; -- HTTP : https://github.co ...
- windows系统安装完后要做的事情
完成之后 1.netplwiz关闭开机输入密码 2.这台电脑右击->属性->高级系统设置->高级->性能设置->高级->虚拟内存: 把C盘设为无分页文件,选择一个大 ...
- layui table 根据条件改变更换表格颜色 高亮显示 数据筛选
请问想让当layui表格的某个字段符合某个条件的时候,让该行变颜色.这样可以实现么. layui数据表格怎么更换表格颜色 layui表格 通过判断某一行中的某一列的值进行设置这一行的颜色 LayUI之 ...
- bindpose定义
根据常识,有: 但根据骨骼动画的定义,又有: 对比两式,可得bindpose的定义: 即骨骼bone的bindpose是:在绑定时刻,将顶点由mesh的局部空间变换到bone的局部空间的变换.
- YII页面显示trace
修改protected/config/main.php 'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=te ...
- 最详尽的 JS 原型与原型链终极详解,没有「可能是」。(一)
最详尽的 JS 原型与原型链终极详解,没有「可能是」.(一) 第二篇已更新,点击进入第三篇已更新,点击进入
- Git 目录
linux通过用户名.密码提交的方式搭建私有git服务端 centos 6.5 6.6 6.7安装gitlab教程(社区版) Git 初始化项目.创建合并分支.回滚等常用方法总结 Git 错误集锦
- 牛客网_Go语言相关练习_选择题(3)
题目来源于牛客网 一.选择题 Go语言自带垃圾回收机制. 如果是值传递的话子函数对map修改不会影响父函数中的map,如果是地址传递则会影响. go语言编译器会自动在以标识符.数字字面量.字母字面量. ...
- 学习Mysql过程中拓展的其他技术栈:Docker入门介绍
一.Docker的介绍和安装 1. Docker是什么 百度百科的介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linu ...