坐标变换

同一坐标系下的点旋转变换(如图1所示)和不同坐标系之间的旋转变换(如图2所示),一直困扰着我,它们是两个不同的概念,但形式上有很相似,以二维空间为例做了下推导,加深理解。

同一坐标系下的点旋转变换,比较好理解,是在相同的坐标系下做的旋转变换。如图3所示,已知逆时针的旋转角度为θ,我们引入中间变量向量的长度r和水平夹角α,显而易见地,推导公式如下:

x=rcos(θ+α)=rcos(θ)cos(α)−rsin(θ)sin(α)=x′cos(θ)−x′sin(θ)x=rcos(θ+α)=rcos(θ)cos(α)−rsin(θ)sin(α)=x′cos(θ)−x′sin(θ)
y=rsin(θ+α)=rsin(θ)cos(α)+rcos(θ)sin(α)=x′sin(θ)+x′cos(θ)y=rsin(θ+α)=rsin(θ)cos(α)+rcos(θ)sin(α)=x′sin(θ)+x′cos(θ) 

[xy]=[cos(θ)sin(θ)−sin(θ)cos(θ)][x′y′][xy]=[cos(θ)−sin(θ)sin(θ)cos(θ)][x′y′]

齐次坐标系的表达为:

⎡⎣⎢xy1⎤⎦⎥=⎡⎣⎢cos(θ)sin(θ)0−sin(θ)cos(θ)0001⎤⎦⎥⎡⎣⎢x′y′1⎤⎦⎥[xy1]=[cos(θ)−sin(θ)0sin(θ)cos(θ)0001][x′y′1]

 

不同坐标系之间的旋转变换,这是透视变换中常用到的,它的作用是将一个点从一个坐标系统映射到另一个坐标系统下,这在将世界坐标系统映射到相机坐标系统中是很有用的。如图4所示,已知坐标系O'X'Y'相对于OXY坐标系逆时针的旋转角度为θ,O'X'Y'的坐标原点O'相对于OXY的坐标为(x0,y0),我们引入中间变量向量的长度r和水平夹角α。变换的思路是,先对O'X'Y'坐标系旋转θ,然后在平移(x0,y0)。推导过程如下:

x=rcos(θ+α)+x0=rcos(θ)cos(α)−rsin(θ)sin(α)=x′cos(θ)−x′sin(θ)+x0x=rcos(θ+α)+x0=rcos(θ)cos(α)−rsin(θ)sin(α)=x′cos(θ)−x′sin(θ)+x0
y=rsin(θ+α)+y0=rsin(θ)cos(α)+rcos(θ)sin(α)=x′sin(θ)+x′cos(θ)+y0y=rsin(θ+α)+y0=rsin(θ)cos(α)+rcos(θ)sin(α)=x′sin(θ)+x′cos(θ)+y0

[xy]=[cos(θ)sin(θ)−sin(θ)cos(θ)][x′y′]+[x0y0][xy]=[cos(θ)−sin(θ)sin(θ)cos(θ)][x′y′]+[x0y0]

 齐次坐标系的表达为: 

[xy]=⎡⎣⎢cos(θ)sin(θ)0−sin(θ)cos(θ)0x0y01⎤⎦⎥⎡⎣⎢x′y′1⎤⎦⎥[xy]=[cos(θ)−sin(θ)x0sin(θ)cos(θ)y0001][x′y′1]

 注意齐次坐标的作用是把旋转缩放和平移结合起来,在传统的欧几里得空间中是做不到的,需要在投影空间中的齐次坐标系统下完成。

同理可以扩展到三维空间。OXYZ坐标系统可以看作是相机坐标系统,O'X'Y'Z'可以看做世界坐标系统,

 

参考资料:

[1].矩阵的坐标变换(转)(里面介绍了矩阵的旋转缩放,还有推导过程,强烈推荐★★★★★)

 

最直观的理解可以从下图得到:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值