3d 绕任意轴旋转和平移

3d 绕任意轴旋转和平移,3d,3d,我试图从一些示例问题中找出如何在任意坐标系中平移/移动。它让我头痛 好的,我在点Q有一个坦克,它位于一个平面上,法线为N。我想旋转它(在适当的位置),向右旋转30度,然后向前移动K个单位。我大致了解了任意旋转是如何工作的,但我不太确定我是否得到了正确的答案 假设储罐位置由3x3 M矩阵定义 要在任意空间中旋转,我会这样做: M=(Q^-1)(Rx^-1)(Ry^-1)(Rz)(Ry)(Rx)(Q) 其中Rz=绕z轴旋转-30度 是这样吗 但现在我还想把它沿着新的方向移动K个单位。。所以我必须在那

我试图从一些示例问题中找出如何在任意坐标系中平移/移动。它让我头痛

好的,我在点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库,使用它们是一个非常有用的时间收获。

如果你想要新的坦克位置,我可以帮助你。我也做过类似的事情,我也做过类似的事情。如果在三维中执行此操作,则可以将其应用于油箱的每个坐标

首先,你需要假设坦克是世界的中心,即局部坐标。 然后需要将其向前移动K个单位,使其处于(0,K)

然后需要使用矩阵将点旋转θ(弧度),并生成:

newX = (x*math.cos(θ))-(y*math.sin(θ))
newY = (x*math.sin(θ))+(y*math.cos(θ))

(根据我自己使用的代码,所以我知道它是有效的)

我试图理解这背后的数学原理对不起,我帮不了你数学你最终找到解决方案了吗?你将用什么程序,语言,用查找旋转矩阵写出表达式。或者,如果您的语言支持复数,请学习如何乘以模1的向量。