zoukankan      html  css  js  c++  java
  • 点旋转和坐标系旋转

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

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

    (x=r cos( heta+alpha)=rcos( heta)cos(alpha)-rsin( heta)sin(alpha)=x^{'}cos( heta)-x^{'}sin( heta))
    (y=r sin( heta+alpha)=rsin( heta)cos(alpha)+rcos( heta)sin(alpha)=x^{'}sin( heta)+x^{'}cos( heta)) 

    (egin{bmatrix}
    x\
    y
    end{bmatrix}=egin{bmatrix}
    cos( heta) & -sin( heta) \
    sin( heta) &cos( heta) &
    end{bmatrix}egin{bmatrix}
    x^{'}\
    y^{'}
    end{bmatrix})

    齐次坐标系的表达为:

    (egin{bmatrix}
    x\
    y\
    1
    end{bmatrix}=egin{bmatrix}
    cos( heta) & -sin( heta) &0\
    sin( heta) &cos( heta) & 0 \
    0&0&1
    end{bmatrix}egin{bmatrix}
    x^{'}\
    y^{'}\
    1
    end{bmatrix})

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

    (x=rcos( heta+alpha)+x_{0}=rcos( heta)cos(alpha)-rsin( heta)sin(alpha)=x^{'}cos( heta)-x^{'}sin( heta)+x_{0})
    (y=r sin( heta+alpha)+y_{0}=rsin( heta)cos(alpha)+rcos( heta)sin(alpha)=x^{'}sin( heta)+x^{'}cos( heta)+y_{0})

    (egin{bmatrix}
    x\
    y
    end{bmatrix}=egin{bmatrix}
    cos( heta) & -sin( heta) \
    sin( heta) &cos( heta) &
    end{bmatrix}egin{bmatrix}
    x^{'}\
    y^{'}
    end{bmatrix}+egin{bmatrix}
    x^{0}\
    y^{0}
    end{bmatrix})

     齐次坐标系的表达为: 

    (egin{bmatrix}
    x\
    y
    end{bmatrix}=egin{bmatrix}
    cos( heta) & -sin( heta) &x^{0}\
    sin( heta) &cos( heta) &y^{0}\
    0&0 &1
    end{bmatrix}egin{bmatrix}
    x^{'}\
    y^{'}\
    1
    end{bmatrix})

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

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

    参考资料:

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

  • 相关阅读:
    tile38 复制配置
    The Guardian’s Migration from MongoDB to PostgreSQL on Amazon RDS
    tile38 一款开源的geo 数据库
    sqler sql 转rest api 的docker 镜像构建(续)使用源码编译
    sqler sql 转rest api javascript 试用
    sqler sql 转rest api redis 接口使用
    sqler sql 转rest api 的docker image
    sqler sql 转rest api 的工具试用
    apache geode 试用
    benthos v1 的一些新功能
  • 原文地址:https://www.cnblogs.com/cv-pr/p/4850465.html
Copyright © 2011-2022 走看看