manbetx手机版登录空间坐标系中的一个局部坐标系xyz中有一个向量a(2

当前位置:manbetx官网手机版 > manbetx手机版登录 > manbetx手机版登录空间坐标系中的一个局部坐标系xyz中有一个向量a(2
作者: manbetx官网手机版|来源: http://www.sihmiaomu.com|栏目:manbetx手机版登录

文章关键词:manbetx官网手机版,轴向量

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  上一篇讨论3-D空间旋转的时候说到有一个高档的方法做3-D空间任意轴旋转,现在我们的知识储备已经足够理解这个方法了(Quake引擎使用的就是这个方法)。

  如上所示,空间坐标系中的一个局部坐标系xyz中有一个向量a(2,5,3)和一个点p(8,4,2)现在我要让p点围绕a向量旋转60度,得到p’点,该如何做呢?从目前掌握的旋转知识来看,我们有两个理论基础:

  1)在一个坐标系中的一个点,如果要它围绕该坐标系中一个坐标轴旋转,就给它的坐标值乘相应的旋转矩阵,如

  2)我们已经学习了局部坐标系的理论了,知道空间中一个点在不同的坐标系中的坐标不同。利用这一点,我们可以很方便的让一个点或者向量在不同的坐标系之间转换。

  2 把p的坐标变换到abc中,得到p’,用旋转公式让p’围绕已经成为坐标轴的a旋转,得到p’’。

  3把p’’再变换回坐标系xyz,得到p’’’,则p’’’就是p围绕a旋转后的点。

  首先我们构造abc,manbetx手机版登录我们有无数种方法构造,因为只要保证b、c之间以及他们和a之间都正交就可以了,但我们只要一个。根据上图,我们首先产生一个和a正交的b。这可以通过向量的叉乘来完成:我们取另一个向量v(显然,这个向量是不能和a共线的任何非零向量),让它和a决定一个平面x,然后让v叉乘a得到一个垂直于x的向量b,因为b垂直于x,而a在平面x上,因此b一定垂直于a,然后用a叉乘b得到c,最后单位化a、b、c,这样就得到了局部坐标系abc。

  然后我们把p点变换到abc坐标系中,得到p’,即p’就是p在abc中的坐标:

  注意这里a b c^-1即矩阵a b c的逆矩阵,因为a、manbetx手机版登录b、c是三个正交向量,并且是单位向量,因此a b c是一个正交矩阵,正交矩阵的转置和逆相等,这是它的一个特性,因此上面的公式就可以写成:

  这个时候p’就是p在abc坐标系下的坐标了。此时a已经是一个坐标轴了,我们可以用旋转矩阵来做。

网友评论

我的2016年度评论盘点
还没有评论,快来抢沙发吧!