zoukankan      html  css  js  c++  java
  • 3种方式理解旋转变换

    有V1(x1,y1), 求这个点绕坐标原点旋转θ角度后的坐标V2(x2,y2)
    1.三角函数
       假设(x1,y1)=(Rcosα,Rsinα)
       (x2,y2)   
    =(Rcos(α+θ),Rsin(α+θ))
    =(Rcosαcosθ-Rsinαsinθ,Rcosαsinθ+Rsinαcosθ)
    =(x1cosθ-y1sinθ,x1sinθ+y1cosθ)

    2.坐标轴旋转
    如果有向量Ax=(1,0),Ay=(0,1)
    点旋转时,这两个向量跟着旋转,那么向量在Ax上的投影始终为x,  在Ay上的投影始终为y
    那么始终有V1=x1Ax+y2Ay
    旋转后的Ax=(cosθ,sinθ), Ay=(-sinθ,cosθ)
    V2=x1(cosθ,sinθ)+y1(-sinθ,cosθ)

    3.坐标轴反向旋转
    如果保持点不变,Ax,Ay同上,向反方向旋转,后得到
    Ax=(cosθ,-sinθ)
    Ay=(sinaθ,cosθ)
    那么,V1分别向这两个单位向量Ax,Ay投影(点乘),得到
    Lax=(x1cosθ-y1sinθ)
    Lay=(x1sinaθ+y1cosθ) 
       
    那么如果旋转点之后,点在x,y轴上的投影也正好是Lax,Lay,所以V1经过旋转后得到 
    V2=(Lax,Lay)=(x1cosθ-y1sinθ,x1sinθ+y1cosθ)

  • 相关阅读:
    细节决定成败,为什么他能挣15亿
    GLSL Notes
    Connecting Physics Bodies
    Pylint
    Physicals
    Advanced Scene Processing
    Working with Other Node Types II
    OperateParticleWithCodes
    SpriteParticle II
    Working with Other Node Types
  • 原文地址:https://www.cnblogs.com/Tue/p/221289.html
Copyright © 2011-2022 走看看