罗德里格斯公式

1.点乘

A ⃗ ⋅ B ⃗ = ∣ A ⃗ ∣ ∣ B ⃗ ∣ c o s ⟨ A ⃗ , B ⃗ ⟩ \vec{A} \cdot \vec{B} = \left | \vec{A} \right | \left | \vec{B} \right | cos\left \langle \vec{A}, \vec{B} \right \rangle A B = A B cosA ,B

  • 对应几何意义:向量 A ⃗ \vec{A} A 在向量 B ⃗ \vec{B} B 方向上投影与 ∣ B ⃗ ∣ \left | \vec{B} \right | B 的乘积,反应两个向量在方向上的相似度,结果越大越相似;
    请添加图片描述

2.叉乘

A ⃗ × B ⃗ = ∣ A ⃗ ∣ ∣ B ⃗ ∣ s i n ⟨ A ⃗ , B ⃗ ⟩ n ⃗ \vec{A} \times \vec{B} = \left | \vec{A} \right | \left | \vec{B} \right | sin\left \langle \vec{A}, \vec{B} \right \rangle \vec{n} A ×B = A B sinA ,B n

  • 其中 n ⃗ \vec{n} n A ⃗ \vec{A} A B ⃗ \vec{B} B 所构成平面的单位向量。
  • 对应几何意义:若以 A ⃗ \vec{A} A B ⃗ \vec{B} B 为边构成一个平行四边形,那么这两个向量外积的模长与这个平行四边形的面积相等;
    请添加图片描述

3.罗德里格斯公式的特殊情形

  • 如图所示,假设向量 k ⃗ \vec{k} k 为与Z轴重合的单位向量,向量 v ⃗ \vec{v} v 与X轴重合,向量 v ⃗ \vec{v} v 绕向量 k ⃗ \vec{k} k 旋转 θ \theta θ角度后,得到向量 v ⃗ r o t \vec{v}_{rot} v rot
    请添加图片描述

  • 那么,Y轴方向的单位向量为:
    Y ⃗ = k ⃗ × v ⃗ ∣ k ⃗ × v ⃗ ∣ \vec{Y} = \frac{\vec{k}\times \vec{v}}{|\vec{k}\times \vec{v}|} Y =k ×v k ×v

  • 而向量 k ⃗ \vec{k} k 和向量 v ⃗ \vec{v} v 垂直,并且向量 k ⃗ \vec{k} k 为单位向量,则:
    Y ⃗ = k ⃗ × v ⃗ ∣ k ⃗ × v ⃗ ∣ = k ⃗ × v ⃗ ∣ k ⃗ ∣ ∣ v ⃗ ∣ s i n ⟨ k ⃗ , v ⃗ ⟩ = k ⃗ × v ⃗ ∣ v ⃗ ∣ \vec{Y} = \frac{\vec{k}\times \vec{v}}{|\vec{k}\times \vec{v}|} = \frac{\vec{k}\times \vec{v}}{|\vec{k}| | \vec{v}| sin\left \langle \vec{k}, \vec{v} \right \rangle} = \frac{\vec{k}\times \vec{v}}{|\vec{v}|} Y =k ×v k ×v =k ∣∣v sink ,v k ×v =v k ×v

  • 那么旋转后的向量 v r o t v_{rot} vrot为:
    v ⃗ r o t = ∣ v ⃗ r o t ∣ c o s θ v ⃗ ∣ v ⃗ ∣ + ∣ v ⃗ r o t ∣ s i n θ Y ⃗ ∣ Y ⃗ ∣ \vec{v}_{rot} = |\vec{v}_{rot}|cos\theta \frac{\vec{v}}{|\vec{v}|} + |\vec{v}_{rot}|sin\theta \frac{\vec{Y}}{|\vec{Y}|} v rot=v rotcosθv v +v rotsinθY Y

  • 由于旋转不会改变向量模长,所以 ∣ v ⃗ ∣ = ∣ v ⃗ r o t ∣ |\vec{v}| = |\vec{v}_{rot}| v =v rot,向量 Y ⃗ \vec{Y} Y 为归一化后的单位向量,所以:
    v ⃗ r o t = c o s θ v ⃗ + s i n θ ( k ⃗ × v ⃗ ) \vec{v}_{rot} = cos\theta \vec{v} + sin\theta (\vec{k} \times \vec{v}) v rot=cosθv +sinθ(k ×v )


4.罗德里格斯公式的一般形式

  • 如图所示,向量 v ⃗ \vec{v} v 绕向量 k ⃗ \vec{k} k 旋转 θ \theta θ角度得到向量 v ⃗ r o t \vec{v}_{rot} v rot,其中,向量 k ⃗ \vec{k} k 为单位向量:
    在这里插入图片描述

  • 向量 v ⃗ \vec{v} v 可以表示成如下形式:
    v ⃗ = v ⃗ ∥ + v ⃗ ⊥ v ⃗ r o t = v ⃗ ∥ + v ⃗ r o t ⊥ \vec{v} = \vec{v}_{\parallel } + \vec{v}_{\perp } \\ \vec{v}_{rot} = \vec{v}_{\parallel} + \vec{v}_{rot\perp } v =v +v v rot=v +v rot

  • 由于向量 k ⃗ \vec{k} k 为单位向量,有:
    v ⃗ ∥ = ∣ v ⃗ ∣ c o s ⟨ v ⃗ , k ⃗ ⟩ k ⃗ ∣ k ⃗ ∣ = ∣ v ⃗ ∣ v ⃗ ⋅ k ⃗ ∣ v ⃗ ∣ ∣ k ⃗ ∣ k ⃗ ∣ k ⃗ ∣ = v ⃗ ⋅ k ⃗ ⋅ k ⃗ \vec{v}_{\parallel } = |\vec{v}|cos\left \langle \vec{v}, \vec{k} \right \rangle \frac{\vec{k}}{|\vec{k}|} = |\vec{v}| \frac{\vec{v} \cdot \vec{k}}{|\vec{v}||\vec{k}|}\frac{\vec{k}}{|\vec{k}|} = \vec{v} \cdot \vec{k} \cdot \vec{k} v =v cosv ,k k k =v v ∣∣k v k k k =v k k

  • 那么向量 v ⃗ \vec{v} v 在垂直方向分量为:
    v ⃗ ⊥ = v ⃗ − v ⃗ ∥ = v ⃗ − v ⃗ ⋅ k ⃗ ⋅ k ⃗ \vec{v}_{\perp } = \vec{v} - \vec{v}_{\parallel } = \vec{v} - \vec{v} \cdot \vec{k} \cdot \vec{k} v =v v =v v k k

  • v ⃗ ⊥ \vec{v}_{\perp } v 绕向量 k ⃗ \vec{k} k 旋转 θ \theta θ角度到向量 v ⃗ r o t ⊥ \vec{v}_{rot\perp } v rot等价于上面罗德里格斯公式的特殊情形,直接代入公式有:
    v ⃗ r o t ⊥ = c o s θ v ⃗ ⊥ + s i n θ ( k ⃗ × v ⃗ ⊥ ) = c o s θ ( v ⃗ − v ⃗ ⋅ k ⃗ ⋅ k ⃗ ) + s i n θ ( k ⃗ × v ⃗ ⊥ ) \vec{v}_{rot\perp } = cos\theta \vec{v}_{\perp } + sin\theta (\vec{k} \times \vec{v}_{\perp }) = cos\theta (\vec{v} - \vec{v} \cdot \vec{k} \cdot \vec{k}) + sin\theta (\vec{k} \times \vec{v}_{\perp }) v rot=cosθv +sinθ(k ×v )=cosθ(v v k k )+sinθ(k ×v )

  • 所以,旋转后向量 v ⃗ r o t \vec{v}_{rot} v rot为:
    v ⃗ r o t = v ⃗ ⋅ k ⃗ ⋅ k ⃗ + c o s θ ( v ⃗ − v ⃗ ⋅ k ⃗ ⋅ k ⃗ ) + s i n θ ( k ⃗ × v ⃗ ⊥ ) = c o s θ v ⃗ + ( 1 − c o s θ ) v ⃗ ⋅ k ⃗ ⋅ k ⃗ + s i n θ ( k ⃗ × v ⃗ ⊥ ) \vec{v}_{rot} = \vec{v} \cdot \vec{k} \cdot \vec{k} + cos\theta (\vec{v} - \vec{v} \cdot \vec{k} \cdot \vec{k}) + sin\theta (\vec{k} \times \vec{v}_{\perp }) \\ = cos\theta \vec{v} + (1 - cos\theta)\vec{v} \cdot \vec{k} \cdot \vec{k} + sin\theta(\vec{k} \times \vec{v}_{\perp }) v rot=v k k +cosθ(v v k k )+sinθ(k ×v )=cosθv +(1cosθ)v k k +sinθ(k ×v )

  • 由叉乘的几何意义可知, k ⃗ × v ⃗ ⊥ \vec{k} \times \vec{v}_{\perp } k ×v k ⃗ × v ⃗ \vec{k} \times \vec{v} k ×v 方向相同,都是向量 v ⃗ , k ⃗ \vec{v},\vec{k} v k 平面法向量方向,也即是图中Y轴方向,二者大小为:
    k ⃗ × v ⃗ ⊥ = ∣ k ⃗ ∣ ∗ ∣ v ⃗ ⊥ ∣ n ⃗ k ⃗ × v ⃗ = ∣ k ⃗ ∣ ∗ ( ∣ v ⃗ ∣ s i n ⟨ k ⃗ , v ⃗ ⟩ ) n ⃗ = ∣ k ⃗ ∣ ∗ ∣ v ⃗ ⊥ ∣ n ⃗ = k ⃗ × v ⃗ ⊥ \vec{k} \times \vec{v}_{\perp } = |\vec{k}|*|\vec{v}_{\perp }| \vec{n}\\ \vec{k} \times \vec{v} = |\vec{k}|*(|\vec{v}|sin\left \langle \vec{k}, \vec{v} \right \rangle) \vec{n} \\ = |\vec{k}|*|\vec{v}_{\perp }| \vec{n} \\ = \vec{k} \times \vec{v}_{\perp } k ×v =k v n k ×v =k (v sink ,v )n =k v n =k ×v

  • 因此,得到罗德里格斯公式的一般形式:
    v ⃗ r o t = c o s θ v ⃗ + ( 1 − c o s θ ) v ⃗ ⋅ k ⃗ ⋅ k ⃗ + s i n θ ( k ⃗ × v ⃗ ) \vec{v}_{rot} = cos\theta \vec{v} + (1 - cos\theta)\vec{v} \cdot \vec{k} \cdot \vec{k} + sin\theta(\vec{k} \times \vec{v}) v rot=cosθv +(1cosθ)v k k +sinθ(k ×v )


5.罗德里格斯公式的矩阵形式

  • 将旋转表示成一个矩阵 R R R的形式,即:
    v ⃗ r o t = R . v ⃗ \vec{v}_{rot} = R.\vec{v} v rot=R.v
    -(1) v ⃗ ⋅ k ⃗ ⋅ k ⃗ \vec{v} \cdot \vec{k} \cdot \vec{k} v k k
    v ⃗ ⋅ k ⃗ ⋅ k ⃗ = ( v ⃗ ⋅ k ⃗ ) ⋅ k ⃗ = k ⃗ ( v ⃗ ⋅ k ⃗ ) = k ⃗ ( k ⃗ T ⋅ v ⃗ ) = k ⃗ ( k ⃗ T ⋅ v ⃗ ) = ( k ⃗ k ⃗ T ) v ⃗ \vec{v} \cdot \vec{k} \cdot \vec{k} \\ = (\vec{v} \cdot \vec{k}) \cdot \vec{k} \\ = \vec{k}(\vec{v} \cdot \vec{k}) \\ = \vec{k}(\vec{k}^{T}\cdot \vec{v}) \\ = \vec{k}(\vec{k}^{T}\cdot \vec{v}) \\ = (\vec{k} \vec{k}^{T}) \vec{v} v k k =(v k )k =k (v k )=k (k Tv )=k (k Tv )=(k k T)v
  • (2) k ⃗ × v ⃗ \vec{k} \times \vec{v} k ×v
    k ⃗ × v ⃗ = k ⃗ ∧ v ⃗ \vec{k} \times \vec{v} = \vec{k}\wedge \vec{v} k ×v =k v
  • 代入得到:
    R = c o s θ I + ( 1 − c o s θ ) k ⃗ k ⃗ T + s i n θ k ⃗ ∧ R = cos\theta I + (1-cos\theta)\vec{k}\vec{k}^{T} + sin\theta\vec{k}\wedge R=cosθI+(1cosθ)k k T+sinθk
  • 由于 t r ( I ) = 3 , t r ( k ⃗ k ⃗ T ) = ∣ ∣ k ⃗ ∣ ∣ = 1 , t r ( k ⃗ ∧ ) = 0 tr(I) = 3,tr(\vec{k}\vec{k}^{T})=||\vec{k}|| = 1,tr({\vec{k}\wedge})=0 tr(I)=3tr(k k T)=∣∣k ∣∣=1,tr(k )=0,那么:
    t r ( R ) = 3 c o s θ + ( 1 − c o s θ ) = 2 c o s θ + 1 θ = a r c c o s ( t r ( R ) − 1 2 ) tr(R)=3cos\theta +(1-cos\theta) = 2cos\theta + 1 \\ \theta = arccos(\frac{tr(R)-1}{2}) tr(R)=3cosθ+(1cosθ)=2cosθ+1θ=arccos(2tr(R)1)

6.参考资料

  • [1] 罗德里格斯公式推导
  • [2] 向量点乘和叉乘的意义

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/116408.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

经典题记录 字符串相加/相乘

1. LeetCode 415 字符串相加 代码一:代码简短,但需要借助额外的一个string来保存结果,更占用内存。 class Solution { public:string addStrings(string num1, string num2) {string ans"";int size1num1.size();int size2num2.si…

[wsl2] wsl2上安装使用cmake+OpenGL教程

一、前提 系统为windows11,并且使用wsl2(ubuntu);ubuntu中安装了基本的g, cmake编译工具;在windows中使用X-Server作为wsl2的显示GUI; 二、安装OpenGL 安装opengl的基本步骤为:安装glfw->安装glad->修改OpenG…

如何看待Unity新的收费模式?

文章目录 背景Unity的论点开发者的担忧如何看待Unity新的收费模式?1. 理解Unity的立场2. 考虑小型开发者3. 探索替代方案4. 对市场变化保持敏感5. 提高游戏质量 结论 🎉 如何看待Unity新的收费模式? ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1…

194、SpringBoot -- 下载和安装 Erlang 、 RabbitMQ

本节要点: 一些命令: 小黑窗输入: rabbitmq-plugins enable rabbitmq_management 启动控制台插件 rabbitmq-server 启动rabbitMQ服务器 管理员启动小黑窗: rabbitmq-service install 添加rabbitMQ为本地服务 启动浏览器访问 ht…

Android 10.0 系统开启和关闭黑白模式主题功能实现

1. 概述 在10.0的rom系统开发定制化中,在系统SystemUI的下拉状态栏中,产品开发功能需求要求添加黑白模式功能开关的功能,就是打开黑白模式,系统颜色就会变成黑白颜色, 关闭黑白模式开关系统就会变成彩色模式,所以就需要了解下系统是怎么设置黑白模式和彩色模式的,然后添…

【【萌新的FPGA学习之初识ZYNQ】】

萌新的FPGA学习之初识ZYNQ 进入 21 世纪,FPGA 的发展进入了累积阶段。人们发现,FPGA 的发展此时遭遇了瓶颈,因此单纯的 提升 FPGA 的容量已经不能满足各类应用的需求。由于更多客户开始追求更高的性价比,FPGA 不得不从 单纯的可编…

【06】FISCOBCOS中的节点前置服务

WeBASE管理平台 微众银行开源的自研区块链中间件平台——WeBASE(WeBank Blockchain Application Software Extension) 是区块链应用和FISCO BCOS节点之间搭建的中间件平台。WeBASE屏蔽了区块链底层的复杂度,降低区块链使用的门槛,大幅提高区块链应用的开发效率,包含节点前置…

10.5 串联型稳压电路(1)

稳压管稳压电路输出电流较小,输出电压不可调,不能满足很多场合下的应用。串联型稳压电路以稳压管稳压电路为基础,利用晶体管的电流放大作用,增大负载电流;在电路中引入深度电压负反馈使输出电压稳定;并且&a…

【华为云云耀云服务器L实例评测|云原生】自定制轻量化表单Docker快速部署云耀云服务器

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…

力扣刷题-链表-设计链表

题意: 在链表类中实现这些功能: get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。 addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表的第一个节…

基于MUSIC算法的二维超声波成像matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、基本原理 4.2、数学公式 4.3、实现过程 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..........................................…

uniapp实现表格冻结

效果图如下: 思路: 1.由于APP项目需要,起初想去插件市场直接找现成的,结果找了很久没找到合适的(有的不支持vue2有的不能都支持APP和小程序) 2.后来,就只能去改uni-table源码了,因…