下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、根据旋转前后的向量值求旋转矩阵如果已知旋转前后的一向量的变化,那么该如何求这个旋转矩阵呢?本篇结合Rodrigues' rotation formula ,介绍一下该旋转矩阵的求法。1 .旋转角度已知旋转前向量为P,旋转后变为Q。由点积定义可知:P,Q - |P| |Q|。6g可推出p, q之间的夹角为:IQ"2 .旋转轴由1中可知,旋转角所在的平面为有P和Q所构成的平面,那么旋转轴必垂直该平面。假定旋转前向量为a(a1, a2, a3),旋转后向量为b (b1, b2, b3)。由叉乘定义得:. Ia x b +值也k+ 的%( -j) 4-1瓦(-k)十 叱%。+由+ 的
2、瓦j + 潜必-i)十为九修 sb)i + (aj&)- aih)j + (。山上-的瓦)k*3 .罗德里格旋转公式(Rodrigues' rotation formula)3.1 公式已知单位向量3 =,将它旋转。角。由罗德里格旋转公式,可知对应的旋转矩阵%电:R>=/声 I + 由sin。+而'(1 -8$ fl + w; (1 -co« fl) 口二3.1 - coe 例-w士号in a4in 9 +3, 口 - wk 例3; sin & + g 3, (1 cos 即 cos + o? (I - os 一城上 sin 日 + s, u:(
3、】-c« 町 -3、sin 0 tiz(1 - cos fl) 3、sini? + 5 (1 - cos S)cos 5 + u? (1 - cos &)其中I是3x3的单位矩阵,由是叉乘中的反对称矩阵 r:0 -吗啊娟明 03.2 公式证明假设在坐标系(x, y, z)中,向量v=ax+by+cz , v绕z轴逆时针旋转。角后得到新的向量 v',根据2维(x,y)面上的旋转公式可得:= cos fl x + sill 0 y i三一 sin 0*4 coos & y *推出:- - cos3 弟t - W - sin0 6x) - e .已知:v I v -
4、 z z = v = t(x + iy .zxv=c(Zxx) + e xy)+七xz) = ay f 将上式带入的公式:V-8M(V工口十也将cz替换掉,可得:v' = v - sin8 z X V 十(cos 1 1 v 1 v - z1 z)将上式中的叉乘表示为反对称矩阵得:另外:I(v (v = 一"X byz x (fly - hx =z x (z x (jx 4- 6y + czl)=A2 v,最终可以推出:yj Jy - sinSr*Jv * (1 - cosfl) V上式即为罗德里格旋转公式。4.求旋转矩阵根据旋转前后的两个向量值,使用上面的方法,先求出旋转角
5、度和旋转轴,然后用罗德里格旋转公式即可 求出对应的旋转矩阵。C#的实现代码如下:7void Calculation( double vectorBefore, double 口 vectorAfter)double rotationAxis;double rotationAngle;double , rotationMatrix;rotationAxis = CrossProduct(vectorBefore, vectorAfter);rotationAngle = Math.Acos(DotProduct(vectorBefore, vectorAfter) / Normalize(vec
6、torBefore) / Normalize(vectorAfter);rotationMatrix = RotationMatrix(rotationAngle, rotationAxis);double CrossProduct( double a, double b)double c =c0= a1* bc1= a2* bc2= a0* breturn c;new double3;2 -a2*b10 -a0*b21 -a1*b0double DotProduct( double a, double b)double result;result = a 0 * b 0 + a 1 * b
7、1 + a 2 * b 2; return result;double Normalize( double v)double result;result = Math.Sqrt(v 0 * v 0 + v 1 * v 1 + v return result;double , RotationMatrix( double angle, double u)2 * v2);double norm = Normalize(u);double , rotatinMatrix =new double 3, 3;u0= u0 /norm;u1= u1 /norm;u2= u2 /norm;rotatinMa
8、trix rotatinMatrix rotatinMatrix rotatinMatrix rotatinMatrix rotatinMatrix rotatinMatrix rotatinMatrix rotatinMatrix0, 0 = Math.Cos(angle) + u0, 0 = u 0 * u 1 * (0, 0 = u 1 * Math.Sin(angle) + u0, 0 = u 2 * Math.Sin(angle) + u0, 0 = Math.Cos(angle) + u 1 * u0, 0 = -u0 * Math.Sin(angle) + u0, 0 = -u1 * Math.Sin(angle) + u0, 0 = u 0 * Math.Sin(angle) + u0, 0 = Math.Cos(angle) + u 2 * u0 * u 0 * ( 1 - Math.Cos(angle);1 - Math.Cos(angle) - u 2 * Math.Sin(angle);0 * u2 * ( 1 - Math.Cos(angle);0 * u1 * ( 1 - Math.Cos(angle);1 * ( 1 - Math.Cos(angle)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版(PEP)小学英语六年级上册-Unit-3写作提升课件
- 高中语文-第六单元第22课庄暴见孟子课件-人教版第五册
- 江苏省南京市六校联合体2024-2025学年高三上学期学情调研测试 数学试题
- 云南省昆明市(2024年-2025年小学四年级语文)统编版随堂测试(上学期)试卷及答案
- 云南省文山壮族苗族自治州(2024年-2025年小学四年级语文)人教版阶段练习(上学期)试卷及答案
- 湖南省怀化市(2024年-2025年小学四年级语文)人教版开学考试(下学期)试卷及答案
- 割腕伤患者急救护理
- 《 我国无固定期限劳动合同制度完善研究》范文
- 砖瓦行业环保政策与废弃物利用技术考核试卷
- 涂料行业国际标准与国内法规比对解析考核试卷
- 《陆上风电场工程概算定额》(NB-T 31010-2019)
- 华为交换机检测报告
- 【海天味业公司人才激励机制现状、问题及优化建议(含问卷)15000字(论文)】
- 大数据时代薪酬管理新变研究
- 农业机械操作的培训课程
- 腹高压的护理
- 备品备件消耗分析报告
- 倡导医学人文素质教育的价值观
- 2023巧克力行业分析
- 2024普通高中物理课程标准解读
- 《系统恶意程序》课件
评论
0/150
提交评论