变换
变换
模型变换
正运动学:已知各关节的角度,求末端的位置姿态。
逆运动学:已知末端位置姿态,求各关节转角。
视图变换
从3D到2D投影
二维变换
把矩阵和变换联系起来
缩放变换
横轴和纵轴都变为了原来的1/2,即缩放了0.5倍,原来的任意坐标(x,y)经过缩放s后成了(x‘,y')
写成矩阵形式,如图。图中含S的矩阵称为缩放矩阵
x方向缩小为原来的0.5倍,y方向缩放原来的1倍。sx=0.5 ,sy=1
反射
水平翻转
切变
y=0处水平位移为0;y=1处水平位移是a;垂直位移总是0(y‘=y);y=0.5处水平位移是a/2;
任何的x在水平方向上的位移都是ay,即x’=x+ay,写成矩阵形式如上图。
注:要写出一个变换矩阵,就要找出一个对应,找出变化之前的(x,y),和变化之后的(x‘,y')两者之间的一个关系。
旋转
(默认关于原点(0,0)旋转,逆时针方向旋转)
旋转θ角度:边长为1的矩形,用(1,0)点和(0,1)点对应得到(cosθ,sinθ)和(-sinθ,cosθ)
旋转-θ角度:边长为1的矩形,用(1,0)点和(0,1)点对应得到(cosθ,-sinθ)和(sinθ,cosθ)
相当于对旋转θ角度的矩阵做了一个转置,即旋转矩阵的逆等于旋转矩阵的转置。
在数学上,如果一个矩阵的逆等于这个矩阵的转置,那么这个矩阵称为 正交矩阵。
可以写成下面矩阵形式的变换称为线性变换(相同维度)
齐次坐标
平移不是线性变换,所以不能写成矩阵形式。
我们不希望把平移变换当作一个特殊的变换,希望有一种统一的方法可以表示各种各样的变换,包括平移、旋转等。所以引进齐次坐标。
trade off:权衡(为了引进一种方便的表述,空间换时间或者时间换空间 ,此消彼长,(没有免费的午餐))
通过对二维的点或者向量增加一个维度的方式,把平移变换也写成矩阵乘以向量的形式。
向量具有平移不变性。最后一个数字为0是为了保护向量经过平移变换后依然是他自己。
增加的一个数字是w,点加点在2维上表示的点是(x/w,y/w,1),w≠0,w=0的时候,x,y就成了向量,不再是点了。
一个点加另一个点,在齐次坐标的表示下。表示的是这两个点的中点。
所有的仿射变换都可以写成齐次坐标的形式
在表示二维情况下的仿射变换的时候,齐次坐标对应的矩阵的最后一行是(0,0,1)
逆变换
把一个变换的操作反过来就是他的逆变换。
M-在矩阵和几何意义上都是变换M的逆。
组合变换
先平移再旋转:
先旋转再平移:
变换顺序很重要!!!顺序不一样,得到的结果不一样。矩阵乘法不满足交换律;
矩阵是从右到左逐个应用的。下面是先做旋转,旋转45°,再做平移,向x方向平移一个单位。
仿射变换序列A1,A2,A3,…… ,组成矩阵乘法非常重要的性能!。
也可以对n个变换矩阵进行预乘,得到一个表示组合变换的矩阵,再去乘需要变换的矩阵
变换不但可以组合,也可以分解复杂变换
如何绕给定的点c旋转?
1. 将所有的点沿着-c方向移动一定 2. 旋转 3.从原点沿着c方向移回来
Matrix representation?
T(c) · R(α) · T(−c)