8

3D デカルト ポイント (x、y、z) とタイム スタンプを含む一連のデータがあります。

このデータを、タイム スタンプの値に基づいて線の色が変化する 3 次元空間の接続線としてプロットしたいと思います。

事実上、時間差をカラーバーに表示したいと考えています。

これを行う方法を知っている人はいますか?

4

1 に答える 1

14

らせん状のパスに沿って時間をかけて移動する 3D ポイントの次の例を考えてみましょう。

%# data
t = linspace(0,8*pi,200);
x = 20*t; y = cos(t); z = sin(t);

%# plot 3D line
plot3(x,y,z)
axis tight, grid on, view(35,40)

多色の線を描画したい場合、単純な解決策は for ループを記述し、それぞれの小さなセグメントを別々の線として描画し、それぞれが異なる色を持つことです。これは、1 つの線オブジェクトが 1 つの色しか持てないためです。

より良いアプローチは、サーフェス グラフィックス オブジェクトを使用することです。

c = 1:numel(t);      %# colors
h = surface([x(:), x(:)], [y(:), y(:)], [z(:), z(:)], ...
    [c(:), c(:)], 'EdgeColor','flat', 'FaceColor','none');
colormap( jet(numel(t)) )

結果:

スクリーンショット

于 2012-08-07T23:13:53.410 に答える