2011-12-14 9 views
6

私はオクターブで作業していますが、plot3に2回以上呼び出してグラフを作成する必要があります。しかしそれはplot3の最後の呼び出しをプロットするだけです。助けが必要です。複数のプロットコール(オクターブ単位)

は、これは私のコードです: はそれだけplot3(tras(1), tras(2), tras(3), 'bo');

p = [ 0.0, 0.0, 0.0 
      500.0, 0.0, 0.0 
      500.0, -500.0, 0.0 
      0.0, -500.0, 0.0 
      0.0, 0.0, 0.0]; 
    mano = [119.818542 -43.371277 50.230591 1]; 

Tinv = [ 
0.998891 -0.001007 0.047065 64.223625 
0.000000 0.999771 0.021382 -291.750854 
-0.047076 -0.021359 0.998663 -1871.334229 
0.000000 0.000000 0.000000 1.000000 
] 

tras = Tinv*mano' 

hold("on"); 
xlabel("X"); 
ylabel("Y"); 
zlabel("Z"); 

plot3(p(:,1), p(:,2), p(:,3), 'r*-'); 
plot3(tras(1), tras(2), tras(3), 'bo'); 

hold("off"); 
pause; 
+0

あなたのスクリプトはうまくいくと思います。 'plot3(p(:、1)、p(:、2)、p(:、3)、 'r *'、 'markersize'、20);でポイントをもう少し強調して、 。 – Woltan

答えて

5

あなたのプロットコードが細かいラインをプロットします。 axis関数を使用してプロットエクステントを大きくしてみてください。次の変更:以下のプロットで

% ... 

% Usage of axis: axis([xmin xmax ymin ymax zmin zmax]) 
axis([-100 600 -600 100 -2100 100]); 
plot3(p(:,1), p(:,2), p(:,3), 'r*-'); 
plot3(tras(1), tras(2), tras(3), 'bo');  

% ... 

結果: enter image description here

理想的には、あなたは、エクステントの最小にaxis相対の値と最大値がptrasにおける座標値になるだろう。

+0

ありがとう!!!!!私は本当にあなたの答えを感謝し、それは私を夢中にさせていた – Herman

関連する問題