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 变换集合关系 仿射变换的更多相关文章

  1. MongoDB学习笔记~使用原生语句实现三层集合关系的更新

    回到目录 MongoDB的文档型数据结构使得它在存储数据上很像JSON,在可读性方面很强,然而这种复杂的结构在update时相对麻烦一些,而对于官方给出的文档说的也不够细致,有些东西也是模棱两可的态度 ...

  2. python 全栈开发,Day7(元组转换,列表以及字典的坑,集合,关系测试,深浅copy,编码补充)

    一.元组转换 数字 tu = (1) tu1 = (1,) print(tu,type(tu)) print(tu1,type(tu1)) 执行输出: 1 <class 'int'>(1, ...

  3. java基础笔试题二(集合关系)

    知识点:java集合继承关系(Collection,Map) 1.集合框架体系图 2.java的集合层次 来自博客(http://blog.csdn.net/stubbornaccepted/arti ...

  4. day14 Python集合关系运算交,差,并集

    low逼写法,没用集合 python_1 = ['charon','pluto','ran'] linux_1 = ['ran','xuexue','ting'] python_and_linux = ...

  5. LaTex中集合关系的表示

    集合的大括号: \{ ... \} \(\{ ... \}\) 集合中的"|": \mid \(\mid\) 属于: \in \(\in\) 不属于: \not\in \(\not ...

  6. java集合的中的集合关系实现或继承关系图

    放在这儿一目了然.

  7. Java - 集合之间的关系和区别

    1.Java集合关系图: 2.List.Map.Set区别: ① List ArrayList LinkedList Vector Advantage Search Insert.Delete Syn ...

  8. opencv中的仿射变换

    什么是仿射变换? 原理:1.一个任意的仿射变换都能表示为 乘以一个矩阵(线性变换) 接着再 加上一个向量(平移) 2.综上所述,我们能够用仿射变换来表示: 1)旋转(线性变换) 2)平移(向量加) 3 ...

  9. 2D射影几何和变换

    阅读<计算机视觉中的多视图集合> 2D射影几何和变换 2D射影平面 本章的关键是理解线和点的对偶性.从射影平面模型出发,IP^2^内的点(a, b ,c)由IP^3^空间中一条过原点的射线 ...

随机推荐

  1. android4.3 截屏功能的尝试与失败分析

    1.背景 上一篇讲了在源码中捕获到了android手机的截屏函数(同时按下电源键与音量减,详情http://blog.csdn.net/buptgshengod/article/details/199 ...

  2. 分析各种Android设备屏幕分辨率与适配 - 使用大量真实安卓设备采集真实数据统计

    一. 数据采集 源码GitHub地址 : -- SSH : git@github.com:han1202012/DisplayTest.git; -- HTTP : https://github.co ...

  3. windows系统安装完后要做的事情

    完成之后 1.netplwiz关闭开机输入密码 2.这台电脑右击->属性->高级系统设置->高级->性能设置->高级->虚拟内存: 把C盘设为无分页文件,选择一个大 ...

  4. layui table 根据条件改变更换表格颜色 高亮显示 数据筛选

    请问想让当layui表格的某个字段符合某个条件的时候,让该行变颜色.这样可以实现么. layui数据表格怎么更换表格颜色 layui表格 通过判断某一行中的某一列的值进行设置这一行的颜色 LayUI之 ...

  5. bindpose定义

    根据常识,有: 但根据骨骼动画的定义,又有: 对比两式,可得bindpose的定义: 即骨骼bone的bindpose是:在绑定时刻,将顶点由mesh的局部空间变换到bone的局部空间的变换.

  6. YII页面显示trace

    修改protected/config/main.php 'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=te ...

  7. 最详尽的 JS 原型与原型链终极详解,没有「可能是」。(一)

    最详尽的 JS 原型与原型链终极详解,没有「可能是」.(一) 第二篇已更新,点击进入第三篇已更新,点击进入

  8. Git 目录

    linux通过用户名.密码提交的方式搭建私有git服务端 centos 6.5 6.6 6.7安装gitlab教程(社区版) Git 初始化项目.创建合并分支.回滚等常用方法总结 Git 错误集锦

  9. 牛客网_Go语言相关练习_选择题(3)

    题目来源于牛客网 一.选择题 Go语言自带垃圾回收机制. 如果是值传递的话子函数对map修改不会影响父函数中的map,如果是地址传递则会影响. go语言编译器会自动在以标识符.数字字面量.字母字面量. ...

  10. 学习Mysql过程中拓展的其他技术栈:Docker入门介绍

    一.Docker的介绍和安装 1. Docker是什么 百度百科的介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linu ...