绘制点云并移动相机

时间:2016-06-15 20:33:25

标签: python matplotlib gnuplot visualization

我有一个由x,y,z坐标给出的点列表。我想在计算机上绘制这些点。我已经设法用gnuplot和python库matplotlib分别完成了这个。然而,对于这两种解决方案,似乎很难改变观察点,或者完成3D点云投影到2D屏幕的点。

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

2)有哪些其他库可以轻松完成这项任务?

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

2 个答案:

答案 0 :(得分:1)

当你改变视角时,它就像把头移到一个等距的外壳上,连续看到图像/屏幕/物体的中心。

你所说的是在x-y平面上移动你的头部固定前方,以便内容(屏幕/物体)从你的视线中移出。 Gnuplot set origin喜欢

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

enter image description here

只需移动相机即可。

enter image description here

你所拥有的意味着(我认为)与你的播放器一起向左(或向右或跳跃或......),但这不仅会改变观察点,还会改变观看的内容。您可以使用xrangeyrange

来实现这一目标
splot [-5:15] exp(-x**2)*exp(-y**2)*sin(x)**2 with pm3d notitle

enter image description here

当然,x / y范围的变化取决于您在Gnuplot之外计算的当前视角。

答案 1 :(得分:0)

不,gnuplot不能真正移动观察点,因为观察点处于无限远的原因:您可以做的就是设置角度和放大率(使用set view)和观察窗口内的偏移量(set origin)。这意味着,您可以在无限远的球体上移动观察点,但不能在您正在绘制的点之间移动。

(问题2是一个偏离主题的软件建议,但你正在寻找一个渲染软件,如paraview)