如何解决绕任意轴旋转和平移
| 我试图从一些示例问题中找出如何在任意坐标系中平移/移动。它让我头疼.. 好的,所以我在Q点有一个坦克,它坐在法向N平面上。我想旋转它(到位),说是向右偏离30度,并向前移动K个单位。我有点想出了任意旋转的工作原理,但是我不确定我是否正确地做到了。 用3x3 M矩阵定义坦克位置。 因此,要在任意空间中旋转,我将执行以下操作: M =(Q ^ -1)(Rx ^ -1)(Ry ^ -1)(Rz)(Ry)(Rx)(Q) 其中Rz =绕z轴旋转-30度 这是正确的吗? 但是现在我也想将其沿新方向移动K个单位。因此,我必须在该位置添加转换矩阵。我认为应该在Rz之前(不确定) M =(Q ^ -1)(Rx ^ -1)(Ry ^ -1)(Tk)(Rz)(Ry)(Rx)(Q) 这是正确的吗?还是我弄错了?那里有数学天才吗? 谢谢 :)解决方法
您的编程语言是什么?我认为您可以找到一个可以轻松实现的库。例如在c ++中的openCL。已经存在许多3D库,这是使用它们的宝贵时间。
, 如果您想要新的油箱位置,我可以提供帮助。我一直在做类似的事情,我也有一段时间在做。如果要在3d中执行此操作,则可以将其应用于坦克的每个坐标。
首先,您需要假设战车是世界的中心,即当地坐标。
然后您需要将其向前移动K个单位,所以它位于(0,K)
然后,您需要使用矩阵将点旋转θ(以弧度为单位)并产生:
newX = (x*math.cos(θ))-(y*math.sin(θ))
newY = (x*math.sin(θ))+(y*math.cos(θ))
(根据我自己使用的代码,所以我知道它可以工作)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。