Python 打印点云并移动摄影机

Python 打印点云并移动摄影机,python,matplotlib,gnuplot,visualization,Python,Matplotlib,Gnuplot,Visualization,我有一个点列表,由它们的x,y,z坐标给出。我想在电脑上画出这些点。我分别使用gnuplot和python库matplotlib实现了这一点。然而,对于这两种解决方案,似乎很难更改“观察点”,或将3D点云投影到2D屏幕的点 1) 有没有简单的方法,最好是在gnuplot(splot命令)或matplotlib(plot命令)中连续移动观察点 2) 对于其他哪些库,这是一项简单的任务 编辑:我想移动观察点(比如说第一人称射击游戏中的玩家),而不是改变观察角度。当你改变观察角度时,就像在一个等距的壳

我有一个点列表,由它们的x,y,z坐标给出。我想在电脑上画出这些点。我分别使用gnuplot和python库matplotlib实现了这一点。然而,对于这两种解决方案,似乎很难更改“观察点”,或将3D点云投影到2D屏幕的点

1) 有没有简单的方法,最好是在gnuplot(splot命令)或matplotlib(plot命令)中连续移动观察点

2) 对于其他哪些库,这是一项简单的任务


编辑:我想移动观察点(比如说第一人称射击游戏中的玩家),而不是改变观察角度。

当你改变观察角度时,就像在一个等距的壳上移动你的头,不断看到图像/屏幕/对象的中心

你说的是在x-y平面上移动你的头,凝视前方,这样内容(屏幕/对象)就会从你的视线中移开。在
Gnuplot
中使用
set origin
很容易

set origin -0.25,0
splot exp(-x**2)*exp(-y**2)*sin(x)**2 with pm3d notitle

只需移动相机即可

你的意思(我想)是对你的玩家向左(或向右或跳跃或…)一步,但这不仅改变了观看点,还改变了观看内容。您可以使用
xrange
yrange
实现它:

splot [-5:15] exp(-x**2)*exp(-y**2)*sin(x)**2 with pm3d notitle

当然,x/y范围的变化取决于当前视角,您必须在
Gnuplot

之外计算什么?不,Gnuplot不能真正移动观察点,因为观察点是无限大的:您所能做的就是设置角度和放大率(使用
设置视图
)以及查看窗口内的偏移量(使用
设置原点
)。这意味着,可以无限远地移动球体上的观察点,但不能在正在绘制的点之间移动


(作为软件建议,问题2与主题无关,但您正在寻找诸如paraview之类的渲染软件)

您应该能够使用matplot3d完成此任务。。示例表单站点:。运行plt.show()后,您可以拖动透视图,然后保存。@ryanmc:当我在这些绘图中拖动时,我只更改观察角度,而不是观察点的位置。我已编辑以澄清我想要后者。还是我遗漏了什么?根据你的编辑;我不明白“移动观察点”和“改变观察角度”之间的区别。或者你的意思是包括例如放大数据吗?@Bart:如果我们认为电脑屏幕就是相机的屏幕,我指的是分别移动或关闭相机。谢谢你的离题建议!(当然,答案也是如此)对我来说非常有用。