Matlab中矩阵的三维变换

Matlab中矩阵的三维变换,matlab,matrix,3d,rotation,Matlab,Matrix,3d,Rotation,我想要一个矩阵的3D变换/旋转的Matlab解决方案,该矩阵旋转给定向量,使初始点改变为某个角度,但最终点相同。我有一个P向量来操作这个场景。 有什么建议可以将该矩阵转换为进一步的版本?从一个母弹丸到更多的弹丸,例如它改变了弹丸的起始方向,并具有恒定的最终位置来击中目标。!我在二维图中的精确度不是很高,但我想在三维图中使用相同的概念,这里的目标是投射物的最终位置,在整个场景中使用相同的位置,但起点是假设从母体投射物转换到某个角度/方向。我希望我正在结清我的案子。 p向量: 要定义适当的旋转矩阵

我想要一个矩阵的3D变换/旋转的Matlab解决方案,该矩阵旋转给定向量,使初始点改变为某个角度,但最终点相同。我有一个P向量来操作这个场景。 有什么建议可以将该矩阵转换为进一步的版本?从一个母弹丸到更多的弹丸,例如它改变了弹丸的起始方向,并具有恒定的最终位置来击中目标。!我在二维图中的精确度不是很高,但我想在三维图中使用相同的概念,这里的目标是投射物的最终位置,在整个场景中使用相同的位置,但起点是假设从母体投射物转换到某个角度/方向。我希望我正在结清我的案子。

p向量:


要定义适当的旋转矩阵R,请使用函数rotx等或在维基百科上查找公式

%typically a point is a column vector. To match common definitions, transpose P
P=P'
%get center of rotation
C=P(:,end)
%translate
P=bsxfun(@minus,P,C)
%Rotate
P=R*P
%invert translation
P=bsxfun(@plus,P,C)

我不确定你的问题是否正确,你是否要求P中的所有点围绕中心Pend旋转:?是的,旋转所有点以改变投射物的方向RotX10旋转10度。我不理解你的问题,我回答的代码是旋转P。如果你不知道旋转矩阵是如何工作的,请阅读维基百科的文章。我颠倒了翻译,而不是旋转。旋转矩阵只能围绕0,0,0旋转。如果你想围绕C旋转,有必要将坐标系移动C。你能重新看一下整个场景吗,因为我只想变换第一个点,这样目标在一组点上相遇,比如[0 0],我不明白。如果围绕端点旋转,它们仍应在此相交。
%typically a point is a column vector. To match common definitions, transpose P
P=P'
%get center of rotation
C=P(:,end)
%translate
P=bsxfun(@minus,P,C)
%Rotate
P=R*P
%invert translation
P=bsxfun(@plus,P,C)