计算几何之向量的旋转.doc_第1页
计算几何之向量的旋转.doc_第2页
计算几何之向量的旋转.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算几何之向量的旋转momodi posted Tue, 02 Feb 2010 01:53:55 +0000 in IAlgorithm with tags Computational Geometry , 187 readers 矩阵真的好优美,好多在数学中那些乘乘加加的操作,其本质都是矩阵。这些操作,往往都是把事物进行分解,对每一个基量进行操作,最后再把这些操作整合起来。向量旋转,这个几何中的基本操作,可以相当优美的用矩阵来操作。究其原因,也是因为向量是多维的。用矩阵来操作,正是把向量分解开来,分别旋转,最后再进行整合。看下面的矩阵这个是二维向量的旋转矩阵,它可以将一个向量逆时针旋转一个角度。将其变形,变会得到二维向量的顺时针旋转的形式:这里要注意一种特殊的情况,就是当角度为90度的时候,sin和cos的结果只有1, 0, -1三种可能性。所以这个矩阵可以改写成特殊的形式,其意义在于用这样的旋转操作,不会产生精度问题。sin和cos的运算的精度是比较低的,能少用则尽量少用。在计算几何中的向量旋转操作,大部分都可以通过变形,只用到旋转90度,从而避免精度问题。再来说一点就是,这些旋转矩阵都有一些特点,最明显的莫过于他们的行列式的值都是1。所以在验证正确性的时候,可以用这个操作。也正因为有这一个性质,所以向量才只会进行旋转,不会进行缩放。三维向量的旋转矩阵:上面三个公式的旋转方向可以看成按右手定则。来看第三个公式,这个公式是围绕Z轴,把X轴往Y轴方向移动。我们把拇指向上(表示Z轴),手指指向X轴,然后手指自然弯曲方向便是旋转方向。其它两个公式也是类似。其实第三个公式,去掉Z轴,就是开头讲的逆时针旋转的公式。在其它方向上的旋转都可以由这三个矩阵组合而来。围绕轴u = (ux, uy, uz)来旋转的矩阵代码如下:?12345double a33 = SQR(ux) + (1 - SQR(ux) * c, ux * uy * (1 - c) - uz * s, ux * uz * (1 - c) + uy * s, ux * uy * (1 - c) + uz * s, SQR(uy) + (1 - SQR(uy) * c, uy * uz * (1 - c) - ux * s, ux * uz * (1 - c) - uy * s, uy * uz * (1 - c) + ux * s, SQR(uz) + (1 - SQR(uz) * c ;要注意这个ux * ux + uy * uy + uz * uz = 1有一个比较有意思的问题就是,知道旋转矩阵之后,怎么来确定向量u呢?我们做如下变形之后,可以得到:Ru = Iu (R I)u = 0也就是说我们要找

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论