首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用位置和四元数绘制Matplotlib中的三维矢量

用位置和四元数绘制Matplotlib中的三维矢量
EN

Stack Overflow用户
提问于 2020-02-26 18:49:27
回答 1查看 3.8K关注 0票数 2

我有以下资料:

  • 位置点(x,y,z)
  • 四元数取向(w,i,j,k)

我想在Matplotlib中把它绘制成3D的向量。我在Matplotlib中看到了许多关于绘制3D向量的(例子问题)问题。例如,我知道我可以在Matplotlib中绘制出两个点,一个开始(x,y,z)和一个结束(x,y,z),如下所示。

代码语言:javascript
复制
start = [2 3 5];
end = [4 5 5]; 
quiver3(start(1), start(2), start(3), end(1), end(2), end(3));

我的问题是:我怎样才能把我的位置和四元数转换成一个起点和终点,这样我就可以把它画成一个向量,或者如何直接绘制我的位置和四元数?

注意:,我有绘制我在3D中位置的代码,我只是不知道如何获得方向:

代码语言:javascript
复制
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)

EN

回答 1

Stack Overflow用户

发布于 2020-02-27 17:18:39

我找到了一个使用罗斯的部分解决方案。在罗斯中,有一种方法可以使用以下方法将四元数转换为欧拉角:

代码语言:javascript
复制
from tf.transformations import euler_from_quaternion
quaternion = (w,i,j,k)
euler = euler_from_quaternion(quaternion) 

使用此方法,我可以使用以下方法绘制偏航图:

代码语言:javascript
复制
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中实现这一目标的方法,并且应该有一种方法来获得所有的角度,但是我决定将其作为一个部分解决方案,以防任何人遇到相同的问题,而这里没有其他人回答。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60420607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档