线性分式变换(linear fractional transformation)的名称来源于其定义的形式:(ax+b)/(cx+d),其中分子分母是线性的,然后最外层是一个分式形式,所以叫做这个名字,但是这个名字其实基本没有对其几何的或者(可能的)物理内涵进行任何的解释或者表达,根据《Convex Optimization》中Remark 2.2对其的解释,这个线性分式变换可以分解为:P^-1QP(x),其中x就是初始的n维变量,首先P是一个逆透视变换(perspective transformation是透视变换,会将一个维度,那么逆透视变换自然是升一个维度了),称为投影变换(projective transformation,很明显这里的投影变换是升维度变换,和我以前常遇到的降维度变换不同,或许投影变换既可以表示升维度也可以降维度),经过第一个P就变成了n+1维变量,然后Q是一个矩阵变换,既然是矩阵变换那就存在非常多的可能性了,其中可以包括(平移、旋转、缩放、倒置等),然后将变换后的n+1维变量再进行一次透视变换(降一个维度,既然P是逆透视变换,那么P^-1自然就是透视变换了),又变成了n维的变量。可见这个线性分式变换的目的就是把变量提高一个维度(以统一的方式,也就是透视变换的方式,这种方式可以维持凸性和仿射性),然后在这个高维度的空间中对其进行一些处理(这个就需要由Q=[a,b;c,d]来决定了),然后再用同样的方式将其送回到原来的维度空间。这个过程,特别是透视变换中对变量最后一项元素必须等于1的强调,让我想起了在黄家祥论文中看到过的四元数变换,其实归根结底他想做的是,对三维空间变量进行一系列的操作(平行、旋转、缩放等),但是却硬是将变量变成了四维的(这个过程很简单,原来的三维变量最后加一项元素,这个元素就是1),这样的好处是什么呢,据我观察就是变换矩阵变得简单了。这其实是很有道理的,一个直观的理解就是,例如在二维平面xy(空间)中,我们想把一个封闭圆形内的一个三角形移到圆形外,这几乎是不可能的任务,非常难,但是如果在三维空间中这就非常简单了,只要将这个三角形在第三个维度z进行一个平移,然后再在二维平面xy的任意方向上进行平移, 然后再将这个三角形在z方向进行平移,将其还原到原来的xy平面内,就实现了二维平面内无法完成的任务。这个例子说明,在低维空间内很难(甚至不可能)的事情,在高维(甚至只需要高一个维度)空间中就会变得简单很多。我们将这个例子与线性分式变换进行对比发现了一些非常相似的地方,首先由二维空间到三维空间的出现,其实就是将变量进行了升维操作,也就对应于逆透视变换P,然后再三维空间的一系列操作就对应于Q,再然后由三维空间的消失恢复到二维空间就对应于透视变换P^-1,可以发现,在这个过程中,透视变换的主要作用其实就是一个规范化的升维(降维)操作。
相关文章
- 10-01新手入门 : Windows Phone 8.1 开发 视频学习地址
- 10-01Windows Phone 学习笔记(一) 数据存储
- 10-01[Windows Phone 开发] 为 ListBox 增加功能吧 - 加入快速导览 ScrollBar (上)
- 10-01Windows Phone 8.1开发:如何从ListView中,获取ScrollViewer对象
- 10-01深入浅出Windows Phone 8应用开发
- 10-01《Windows Phone 7开发笔记》------Live Tile的实现
- 10-01Windows Phone 8.1开发:如何从ListView中,获取ScrollViewer对象
- 10-01Windows Phone 8.1开发:如何让ListView滚动到顶部,回到第一条?
- 10-01windows phone 8.1开发笔记之Toast
- 10-01Windows Phone开发手记-WinRT下分组拼音的实现