矩阵变换:沿任意方向缩放、镜像、正交投影及切变及其推导
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
v = v + v ⊥ , v 是 v 在 n 上的投影
v= n (v ⋅n ) ,
v ⊥ 垂直于 n ,不会受缩放影响
, n ′ v = v = v - v = v - v ⋅ n ⊥ ⊥
( )
v′ 受缩放因子影响
n , = v′ k= v k v ⋅ n
( )
() (
)
2 1 + ( −1 − 1) nx ( −1 − 1) nx ny ( −1 − 1) nx nz , −1 = ( −1 − 1) n n 1 + ( −1 − 1) n 2 ( −1 − 1) n n = S n R n x y y y z ( −1 − 1) nx nz ( −1 − 1) n y nz 1 + ( −1 − 1) nz2
= p′ k= k x [1 = 0] xp
[ k x 0] ,
q′ k= = k y [1 = 0] xq 0 k y ,
得到缩放矩阵:
kx S ( kx , k y , kz ) = 0 0 0 ky 0 0 0 kz
2
kx [ x y z] 0 0
( )
2 nx 1 ( k − 1) nx 1 = + ( k − 1) nx = + 0 ny 0 ( k − 1) nx n y 2 1 + ( k − 1) nx = , ( k − 1) nx n y
矩阵变换:沿任意方向缩放、镜像、正交投影及切变及其推 导 目录
1 简介 ............................................... 2 2 缩放 ............................................... 2 2.1 沿坐标轴缩放 .................................. 2 2.2 沿任意方向缩放 ................................ 3 3 正交投影 ........................................... 5 3.1 向坐标轴或平面上投影........................... 5 3.2 向任意指向或平面投影........................... 6 4 镜像 ............................................... 6 5 切变 ............................................... 7
2 1 + ( −1 − 1) nx ( −1 − 1) nx ny = − = , 1 R n S n 2 ( −1 − 1) nx n y 1 + ( −1 − 1) n y 2 1 − 2nx −2nx n y = . 2 −2nx n y 1 − 2n y
q = [ 0 1] ,
( k − 1) nx n y q′ = , 2 1 + k − 1 n ( ) y 通过基向量构建矩阵,得到以单位向量 n 为缩放方向,以 k 为缩放因子的缩 放矩阵
p′ = S n ,k = q′
( )
2 1 + ( k − 1) nx ( k − 1) nx ny . 2 ( k − 1) nx n y 1 + ( k − 1) n y
0 ky 0
0 0 = kx x k y y kz z kz
2.2 沿任意方向缩放
设 n 为平行于缩放方向的单位向量, k 为缩放因子,缩放沿着穿过原点的并 平行于 n 的直线(2D 中)或平面(3D)进行。 先讨论 2D 中的推导过程。我们需要推导一个表达式,给定向量 v ,可以通 过 v 、 n 和 k 来计算 v′ 。将 v 和 v′ 分解为平行和垂直于 n 的分向量
2D 中切变矩阵为:
x 坐标根据 y 坐标的切变
1 0 Hx (s) = , s 1
y 坐标根据 x 坐标的切变
1 s Hy (s) = , 0 1
x, y 坐标被 z 坐标的切变
1 0 0 H xy ( s, t ) = 0 1 0 , s t 0
1
1 简介
镜像、 正交投影和切变的推导都可根据缩放变形而来。在要缩放方向上去缩 , k > 1 ,物体“膨胀” ; k = 0 ,正交投影; 放因子 k ,如果 k < 1 ,物体“收缩”
k < 0 ,镜像;切边稍有不同。
2 缩放
2.1 沿坐标轴缩放
2D 中有两个缩放因子 k x 和 k y , p 和 q 是原来的基向量,缩放因子单独影响 基向量,得到 p′ 和 q′ :
() ( )
3D:
2 1 + ( 0 − 1) nx ( 0 − 1) nx ny ( 0 − 1) nx nz 2 P n = S n, 0 = ( 0 − 1) nx n y 1 + ( 0 − 1) n y ( 0 − 1) ny nz ( 0 − 1) nx nz ( 0 − 1) n y nz 1 + ( 0 − 1) nz2
Τ
Τ
r = [ 0 0 1] ,
, k 表示缩放矩阵 是 scale(缩放)的缩写 S n
( )
p′ ′ S n, k = q = r ′
( )
2 1 + ( k − 1) nx ( k − 1) nx ny ( k − 1) nx nz 2 ( k − 1) nx n y 1 + ( k − 1) n y ( k − 1) n y nz ( k − 1) nx nz ( k − 1) n y nz 1 + ( k − 1) nz2
4
3 正交投影
投影意味和降维操作, 将所有的点拉平到要投影的直线或平面上,从原来的 点到投影点的直线相互平行,这就是正交投影。透视投影是另一种投影。
3.1 向坐标轴或平面上投影
通过将垂直方向上缩放因子设为 0 来实现,如将 3D 点投影到 xy 平面,则抛 弃 z 分量,通过将 z 方向上的缩放因子设为 0 实现。
7
如下图, 这是 x 坐标根据 y 坐标的切变, 机器人的 y 坐标没有变化, 只有 x 坐 标变化了, 变化后的坐标 x′ 可以理解为将 y 坐标乘以切变因子 s 与原坐标 x 的和:
x′= x + sy 。如果是 3D 则增加 z 坐标的切变因子 t : x′= x + sy , y′ = y + tz
8
1 0 0 H xz ( s, t ) = s 1 t , 0 0 1 1 s t H yz ( s, t ) = 0 1 0 . 0 0 1
wk.baidu.com
9
() (
)
2 1 − 2 nx = −2nx n y −2nx nz
−2nx n y 2 1 − 2n y −2nx nz
−2nx nz −2n y nz . 1 − 2nz2
5 切变
切变是坐标系的变换,非均匀的拉伸。切变时候,角度变化,但是面积或体 积不变。也可以理解为坐标轴间的角度变化,造成的扭曲。
1 0 0 = Pxy S = ([0 0 1] , 0 ) 0 1 0 , 0 0 0
5
1 0 0 = = Pxz S ([ 0 1 0] , 0 ) 0 0 0 , 0 0 1 0 0 0 0 1 0 , Pyz S = = ([1 0 0] , 0 ) 0 0 1
推导得到 v′
′ v′ =v′ ⊥ + v =v - v⋅n n + k v ⋅ n n =v + ( k − 1) v ⋅ n n.
( )
( )
( )
通过表达式来推导基向量
p = [1 0] ,
3
1 nx nx =1 + ( k − 1) n p′ =p + ( k − 1) p ⋅ n 0 ⋅ n 0 y ny
P 是 projection(投影)的缩写,2D 中, Px 表示向 x 轴投影, Py 同理:
1 0 = Px S = ([0 1] , 0 ) 0 0 , 0 0 Py S = = ([1 0] , 0 ) 0 1 , 3D 中, Pxy 表示向 xy 平面投影,其余同理:
同样的原理运用在 3D 中
p = [1 0 0] ,
2 1 + ( k − 1) nx = p′ ( k − 1) nx n y , ( k − 1) nx nz Τ
q = [ 0 1 0] ,
( k − 1) nx n y 2 q′ = 1 + ( k − 1) n y , ( k − 1) n y nz ( k − 1) nx nz = r′ ( k − 1) n y nz . 2 1 + ( k − 1) nz
3.2 向任意指向或平面投影
定义,通过使 n 方向上的缩放因为 0 就能 投影有垂直于直线或平面的向量 n 的轴或平面投影矩阵, 表示向垂直于向量 n 导出任意方向的投影矩阵。 P n 方向上的缩放因子为 0 的缩放矩阵。 , 0 表示在 n S n
()
( )
2D:
2 1 + ( 0 − 1) nx ( 0 − 1) nx ny = = P n S n, 0 2 ( 0 − 1) nx n y 1 + ( 0 − 1) n y 2 1 − nx − nx n y . = 2 − nx n y 1 − n y
() ( )
2 1 − nx = − nx n y − nx nz
− nx n y 2 1 − ny − nx nz
− nx nz − n y nz . 1 − nz2
4 镜像
也叫做反射,与正交投影相似,正交投影将缩放值 k 设为 0,而镜像则设为 -1。
6
R 是 reflect(反射)的缩写。2D: