我有以下资料:
我想在Matplotlib中把它绘制成3D的向量。我在Matplotlib中看到了许多关于绘制3D向量的(例子问题)问题。例如,我知道我可以在Matplotlib中绘制出两个点,一个开始(x,y,z)和一个结束(x,y,z),如下所示。
start = [2 3 5];
end = [4 5 5];
quiver3(start(1), start(2), start(3), end(1), end(2), end(3));我的问题是:我怎样才能把我的位置和四元数转换成一个起点和终点,这样我就可以把它画成一个向量,或者如何直接绘制我的位置和四元数?
注意:,我有绘制我在3D中位置的代码,我只是不知道如何获得方向:
ax.set_title("Pos: (" + str(x) + ", " + str(y) + ", " + str(z) + ")")
ax.set_xlim([-5, 5])
ax.set_ylim([-5, 5])
ax.set_zlim([0, 5])
ax.set_xlabel("X Axis")
ax.set_ylabel("Y Axis")
ax.set_zlabel("Z Axis")
ax.scatter(x, y, z)

发布于 2020-02-27 17:18:39
我找到了一个使用罗斯的部分解决方案。在罗斯中,有一种方法可以使用以下方法将四元数转换为欧拉角:
from tf.transformations import euler_from_quaternion
quaternion = (w,i,j,k)
euler = euler_from_quaternion(quaternion) 使用此方法,我可以使用以下方法绘制偏航图:
yaw = euler[2]
new_x = sin(yaw)
new_y = cos(yaw)
self.ax.quiver(x, y, z, new_x, new_y, 0, color='b')我认为应该有一种在纯Python中实现这一目标的方法,并且应该有一种方法来获得所有的角度,但是我决定将其作为一个部分解决方案,以防任何人遇到相同的问题,而这里没有其他人回答。
https://stackoverflow.com/questions/60420607
复制相似问题