zoukankan      html  css  js  c++  java
  • 二维坐标系的转换

    二维坐标系的变换分为旋转变换和平移变换。

    一、旋转变换

    假设已知基坐标系XOY中的一点P(x,y),坐标原点为O,绕点O旋转θ,可以求得点P在新坐标系X'OY'中坐标值(x',y'),如下图所示:

    求解x'和y'的关键是坚持用已知的边做斜边来求解,结合上图利用三角函数可以求得:

    x'=x·cos(θ)+y·sin(θ)

    y'=y·cos(θ)-x·sin(θ)

    那么点P在X'OY'中的坐标值为(x',y')。

    同理如果知道P点在坐标系X'OY'中的坐标(x',y'),可以求得点P在基坐标系XOY中的坐标值:

    x=x'·cos(-θ)+y'·sin(-θ)

    y=y'·cos(-θ)-x'·sin(-θ)

    通过上述两个算式可以知道:已知一个点P在一个坐标系中的坐标值(x,y),那么把坐标系绕坐标原点旋转θ以后,点P在新坐标系中的坐标值x'和y'分别为:

    x'=x·cos(θ)+y·sin(θ)

    y'=y·cos(θ)-x·sin(θ)

    绕坐标原点逆时针旋转θ,上式θ值为正,顺时针旋转θ,上式θ值为负。

    二、平移变换

    已知基坐标系XOY,把坐标系平移(a,b)得到一个新的坐标系X'O'Y',如果基坐标系中一点P(x,y),跟随坐标系一起平移,那么此时P点在基坐标系XOY中的坐标为(x+a,y+b)。

    根据向量加法可以求得:

    OP=OO'+O'P'=T+O'P'

    所以向量OP'的坐标为(x+a,y+b)。

    三、旋转平移变换

    旋转平移变换是以上两种情况的叠加,已知旋转平移后的坐标系X'O'Y'中的一点P'(x',y'),求P'在基坐标系中的坐标值:

    可以先求出P'在坐标系XO'Y中的坐标值,X'O'Y'顺时针旋转θ(此时θ应取负值)可以变换为坐标系XO'Y,然后坐标系XO'Y经过平移(-a,-b)可以变换为坐标系XOY,至此可以求出坐标系X'O'Y'中的一点P'(x',y')在基坐标系XOY中的坐标值x,y分别为:

    x=x'·cos(θ)+y'·sin(θ)+a
    y=y'·cos(θ)-x'·sin(θ)+b

    -----------------------------------------------------------------------------------------------------------------

  • 相关阅读:
    扫描与爆破
    复习与PKI技术

    IIS与FTP
    IIS与WEB
    DNS部署与安全
    DHCP服务部署与安全
    文件共享服务CIFS
    NTFS权限
    关于操作运算符的一些小练习
  • 原文地址:https://www.cnblogs.com/softhal/p/5648463.html
Copyright © 2011-2022 走看看