如何绘制GPS轨迹的三维表示

时间:2011-05-22 07:57:47

标签: matlab gps

我有3个向量,xyz。三个不同的向量元素表示空间中点的位置(例如x(1)y(1)z(1)包含有关第一个点位置的信息。)

现在我需要实现整个点集的3D表示,它应该如下所示:

enter image description here

有人能帮助我吗?什么功能有用?

2 个答案:

答案 0 :(得分:4)

您可以使用以下功能:

  • PLOT3 - 绘制3D线。
  • STEM3 - 将线条绘制到XY投影。我可能不会使用所有的数据点,而是每隔5,10号等,这取决于点密度。
  • 您可以选择使用来自FileExchange(thisthis)的CLINE而不是PLOT3来按行高标记该行。

不要忘记设置hold onhold off

以下是一个例子:

%# Generate random data
x = sin(0:0.01:2*pi);
y = cos(0:0.01:2*pi);
n = numel(x);
z = x + rand(1,n)*0.05 + 1;
%# Plot track line
plot3(x,y,z,'LineWidth',2)
%# Plot lines to XY projection for every 5th point
hold on
stem3(x(1:5:end),y(1:5:end),z(1:5:end),'Marker','none','color','c')
hold off
%# Set axes invisible
set(gca,'Visible','off')

example track plot

答案 1 :(得分:1)

您需要创建从3D世界(x,y,z)到图像(X,Y)的投影变换。这可以是平面投影或透视投影。

完成投影后,您可以执行以下操作:

  1. 找到距离你最远的点。
  2. 从最远点开始执行左侧和右侧分支的序列。
  3. 对于每个分支,从四个点中的每个点创建一个多边形:

    T(x [n],y [n],z [n])

    T(X [n]的,Y [N],0)

    T(X [N + 1],Y [N + 1],0)

    T(X [N + 1],Y [N + 1],Z [N + 1])

  4. 通过更改z的渐变为多边形着色以获得上述效果。

  5. 从T(x [n],y [n],z [n]),T(x [n + 1],y [n + 1],z [n + 1])<添加蓝线/ LI>
  6. 重做n以增加n,直到达到“最接近”你的位置。
  7. 希望这会让你开始。