zoukankan      html  css  js  c++  java
  • 矩阵变换:沿任意轴旋转及其推导

    http://blog.csdn.net/zsq306650083/article/details/8773996

    1. 2D中绕原点旋转

    设基向量p,q和r分别是朝向+x,+y和+z方向的单位向量。

    旋转角度为θ,基向量p,q绕原点旋转,得到新的基向量p`和q`

    即旋转矩阵R(θ)为

    2. 3d中绕坐标轴旋转

    01. 绕x轴旋转,基向量q和r旋转θ,得到新的基向量q`和r`

    即旋转矩阵Rx(θ)为:

    02. 绕y轴旋转,基向量p和r旋转θ,得到新的基向量p`和r`

    即旋转矩阵Ry(θ)为:

    03. 绕z轴旋转,基向量p和q旋转θ,得到新的基向量p`和q`

    即旋转矩阵Rz(θ)为:

    3. 绕任意轴旋转

    这里不考虑平移,所以是过原点的任意轴。

    任意轴用单位向量n表示,绕n旋转θ角度的矩阵表示为R(n,θ),v`是向量v绕轴n旋转后的向量

    v` = VR(n,θ)

    我们的目标是用v,n和θ来表示v`,具体步骤如下:

    将v分解为平行于n的分向量v||和垂直于n的分向量v⊥。v`⊥是v`垂直于n的分向量。

    01.根据向量投影公式有

    02.根据v||算出v⊥,w是v⊥与n叉剩的结果

    03.根据w算出v`⊥

    04.最后算出v`

    05.现在已经得到了v`与v,n和θ的关系公式,用它来计算变换后的基向量并构造矩阵,基向量p`为

    06.其余基向量类推,这里纠正上式中列向量的写法

    07.合并为矩阵后:

    更多内容参见:3d数学基础

  • 相关阅读:
    汉诺塔问题
    Java中的int类型取值范围
    unsigned 类型
    CharBuffer
    铺地砖问题(递归)
    汉诺塔简略
    Long类型的构造方法被遗弃,代替的是valueOf
    坏掉的项链
    挤牛奶
    修理牛棚
  • 原文地址:https://www.cnblogs.com/alps/p/7171396.html
Copyright © 2011-2022 走看看