• 坐标转换原理


    一、坐标转换描述

    坐标转换是空间实体的位置描述,是从一种坐标系统变换到另一种坐标系统的过程。通过建立两个坐标系统之间一一对应关系来实现。通常坐标转换有平移、缩放、旋转三个方面的转换。本文只详细讲述关于旋转部分的内容。

    二、二维坐标旋转

    一个二维坐标系O-XY绕原点O旋转$varphi $后变为另一个坐标系O-X'Y'。假设有一点PO-XY坐标系下的坐标为(x,y),经旋转后在O-X'Y'坐标系下的坐标为(x',y'),则两套坐标系下的坐标的对应关系为

     $left{egin{matrix} x^{'}=xcosvarphi-ysinvarphi\y^{'}=xsinvarphi+ycosvarphi end{matrix} ight.$

    将其写成矩阵形式为

    $egin{bmatrix}x^{'}\ y^{'}end{bmatrix}=egin{bmatrix}cosvarphi & -sinvarphi\ sinvarphi & cosvarphi end{bmatrix}egin{bmatrix}x\ yend{bmatrix}$ 

    三、三维坐标旋转

    三维坐标转换主要分为右手系(笛卡尔坐标系)和左手系(测量坐标系)两种,其分别绕Z、Y、X顺时针旋转$kappa,omega,varphi $角度。现在来看一看各轴旋转后坐标的变化。

    1、绕Z轴旋转

                  

    右:$egin{bmatrix}x^{'}\ y^{'}\ z^{'}end{bmatrix}=egin{bmatrix} coskappa&sinkappa&0\-sinkappa&coskappa&0\0&0&1\ end{bmatrix}egin{bmatrix}x\ y\ zend{bmatrix}$ 左:$egin{bmatrix}x^{'}\ y^{'}\ z^{'}end{bmatrix}=egin{bmatrix} coskappa  & -sinkappa  & 0\sinkappa  & coskappa & 0\ 0 & 0 &1\ end{bmatrix}egin{bmatrix}x\ y\ zend{bmatrix}$ 

    2、绕Y轴旋转

              

    右:$egin{bmatrix}x^{''}\ y^{''}\ z^{''}end{bmatrix}=egin{bmatrix} cosomega &0&-sinomega \0&1&0\sinomega&0 &cosomega \ end{bmatrix}egin{bmatrix}x^{'}\ y^{'}\ z^{'}end{bmatrix}$ 左:$egin{bmatrix}x^{''}\ y^{''}\ z^{''}end{bmatrix}=egin{bmatrix} cosomega &0&sinomega \0&1&0\-sinomega&0 &cosomegaend{bmatrix}egin{bmatrix}x^{'}\ y^{'}\ z^{'}end{bmatrix}$

    3、绕X轴旋转

              

     右:$egin{bmatrix}x^{'''}\ y^{'''}\ z^{'''}end{bmatrix}=egin{bmatrix}1 & 0 & 0\ 0 & cosvarphi  & sinvarphi\0 & -sinvarphi & cosvarphi\ end{bmatrix}egin{bmatrix}x^{''}\ y^{''}\ z^{''}end{bmatrix}$左:$egin{bmatrix}x^{'''}\ y^{'''}\ z^{'''}end{bmatrix}=egin{bmatrix}1 & 0 & 0\ 0 & cosvarphi  & -sinvarphi\0 & sinvarphi & cosvarphi\ end{bmatrix}egin{bmatrix}x^{''}\ y^{''}\ z^{''}end{bmatrix}$

    4、旋转矩阵融合

    将三轴的旋转融合为一个旋转矩阵R

    右:$egin{bmatrix}x^{'''}\ y^{'''}\ z^{'''}end{bmatrix}=egin{bmatrix}1 & 0 & 0\ 0 & cosvarphi  & sinvarphi\0 & -sinvarphi & cosvarphi\ end{bmatrix}egin{bmatrix} cosomega &0&-sinomega \0&1&0\sinomega&0 &cosomega \ end{bmatrix}egin{bmatrix} coskappa&sinkappa&0\-sinkappa&coskappa&0\0&0&1\ end{bmatrix}egin{bmatrix}x\ y\ zend{bmatrix}=egin{bmatrix}r_{11} & r_{12} & r_{13}\ r_{21} & r_{22} & r_{23}\ r_{31} & r_{32} & r_{33}end{bmatrix}egin{bmatrix}x\ y\ zend{bmatrix}$

    左:$egin{bmatrix}x^{'''}\ y^{'''}\ z^{'''}end{bmatrix}=egin{bmatrix}1 & 0 & 0\ 0 & cosvarphi  & -sinvarphi\0 & sinvarphi & cosvarphi\ end{bmatrix}egin{bmatrix} cosomega &0&sinomega \0&1&0\-sinomega&0 &cosomegaend{bmatrix}egin{bmatrix} coskappa  & -sinkappa  & 0\sinkappa  & coskappa & 0\ 0 & 0 &1\ end{bmatrix}egin{bmatrix}x\ y\ zend{bmatrix}=egin{bmatrix}r_{11} & r_{12} & r_{13}\ r_{21} & r_{22} & r_{23}\ r_{31} & r_{32} & r_{33}end{bmatrix}egin{bmatrix}x\ y\ zend{bmatrix}$

     右手坐标系得旋转矩阵R的各个元素为

    $left{egin{matrix}r_{11}=cosomega coskappa &r_{12}=cosomega sinkappa &r_{13}=-sinomega \ r_{21}=-cosvarphi sinkappa +sinvarphi sinomega coskappa & r_{22}=cosvarphi coskappa +sinvarphi sinomega sinkappa &r_{23}=sinvarphi cosomega \ r_{31}=sinvarphi sinkappa +cosvarphi sinomega coskappa&r_{32}=-sinvarphi coskappa +cosvarphi sinomega sinkappa&r_{33}=cosvarphi cosomega end{matrix} ight.$

     左手坐标系得旋转矩阵R的各个元素为

    $left{egin{matrix}r_{11}=cosomega coskappa &r_{12}=-cosomega sinkappa &r_{13}=sinomega \ r_{21}=cosvarphi sinkappa +sinvarphi sinomega coskappa & r_{22}=cosvarphi coskappa -sinvarphi sinomega sinkappa &r_{23}=-sinvarphi cosomega \ r_{31}=sinvarphi sinkappa -cosvarphi sinomega coskappa&r_{32}=sinvarphi coskappa +cosvarphi sinomega sinkappa&r_{33}=cosvarphi cosomega end{matrix} ight.$

  • 相关阅读:
    python chr()、unichr()和ord()
    串的重复
    HDOJ 1465 不容易系列之一
    HDOJ 2050 折线分割平面
    最小距离
    HDOJ 2013 蟠桃记
    三进制转十进制
    数组转置
    蔬菜价格
    扑克牌移动
  • 原文地址:https://www.cnblogs.com/ambition921009/p/10794413.html
Copyright © 2020-2023  润新知