• 线性变换旋转矩阵的推导过程


    设向量v和向量n,并且 ||n|| = 1,计算向量v绕向量n顺时针旋转Θ的旋转矩阵R。

     

    如上图所示,把向量v分成两部分:平行于n的部分projn(v)和垂直于n的部分v,其中v = v - projn(v) .  projn(v)为v在n方向上的投影, projn(v) = (n.v)n. 

    平行于n的部分在旋转时不会发生变化,所以只需考虑垂直于n的部分的旋转即可。V⊥的旋转结果记为Rn (V). Rn (V) = cosΘ*V⊥ +sinΘ*(nxv).

    最后 Rn(V) = projn(v) + Rn (V

          = (n.v)n + cosΘ*V⊥ +sinΘ*(nxv)

          = (n.v)n + cosΘ* (v - projn(v)) +sinΘ*(nxv)

          = cosΘ*v + (1-cosΘ)(n.v)n+sinΘ*(nxv)

     

    设向量v为[xv,yv,zv],向量n为[xn,yn,zn]. 展开上式右边 = 

    = cosΘ*[xv,yv,zv] + (1-cosΘ)*(xn*xv,yn*yv,zn*zv)[xn,yn,zn]T + sinΘ[(yn * zv - zn* yv),(zn * xv - xn* zv),(xn * yv - yn* xv)]

    = [

    [(cosΘ *xv + (1-cosΘ)*x2n * xv) + ((1-cosΘ)*xn *yn *yv +sinΘ*zn*yv)+ ((1-cosΘ)*x*zn *zv - sinΘ*yn*zv)] ,

    [ ((1-cosΘ)*x*y*xv - sinΘ*zn*xv) +(cosΘ*yv +(1-cosΘ)*y2n*yv) +((1-cosΘ)*yn*zn*zv + sinΘ*xn*zv)],

    [((1-cosΘ)*x*zn *xv + sinΘ*yn*xv) +((1-cosΘ)*yn*zn*yv - sinΘ*xn*yv) +((1-cosΘ)*z2n*zv + cosΘ*zv)]

    ]

     

    设R 为[ [R11,R12,R13] ,[R21,R22,R23],[R31,R32,R33]]

    左边 =  [xv,yv,zv]* R

      = [

        [xv* R11 + yv* R21 + zv* R31] ,

        [xv* R12 + yv* R22 + zv* R32],

        [xv* R13 + yv* R23 + zv* R33]

       ]

     

    由于左边 = 右边 ,对应相等,并记 cosΘ 为 c , sinΘ 为 s,则R = 

     

    [

     

    [(c+ (1-c)*x2n) + ((1-c)*xn *yn+s*zn)+ ((1-c)*xn *zn- s*yn)] ,


    [ ((1-c)*xn *yn - s*zn) +(c +(1-c)*y2n) +((1-c)*yn*zn + s*xn)],


    [((1-c)*xn *zn + s*yn) +((1-c)*yn*zn - s*xn) +((1-c)*z2n + c)]

     

    ]

    特别的,当n为[1,0,0],[0,1,0],[0,0,1]时,R分别为

    [

    [1,0,0,0],

    [ 0,c,s,0],

    [0,-s,c,0],

    [0,0,0,1]

    ]

    [

    [c,0,-s,0],

    [ 0,1,0,0],

    [s,0,c,0],

    [0,0,0,1]

    ]

    [

    [c,s,0,0],

    [-s,c,0,0],

    [0,0,1,0],

    [0,0,0,1]

    ]

     

     

     

  • 相关阅读:
    堆排序
    理解KMP算法
    C++性能提升
    论文阅读 | Pre-trained Models for Natural Language Processing: A Survey
    模型融合
    论文阅读 | COMPRESSING BERT: STUDYING THE EFFECTS OF WEIGHT PRUNING ON TRANSFER LEARNING
    论文阅读 | Compressing Large-Scale Transformer-Based Models: A Case Study on BERT
    沉淀再出发:关于netty的一些理解和使用
    沉淀再出发:mongodb的使用
    沉淀再出发:ElasticSearch的中文分词器ik
  • 原文地址:https://www.cnblogs.com/begodlike/p/5559328.html
Copyright © 2020-2023  润新知