2011-12-14 11 views
6

Sto lavorando in ottava, ho bisogno di chiamare plot3 due o più volte per produrre un grafico. Ma traccia solo l'ultima chiamata di plot3. Ho bisogno di aiuto.Chiamate di plot multiple in ottava

Questo è il mio codice: Esso traccia soltanto la linea 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

Penso che il tuo script funzionerà bene. Prova a evidenziare i punti un po 'di più con 'plot3 (p (:, 1), p (:, 2), p (:, 3),' r * '," markersize ", 20);' e vedi se funziona . – Woltan

risposta

5

Il codice tracciato va bene. Prova a rendere le estensioni della trama più grandi con la funzione axis. La seguente modifica:

% ... 

% 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');  

% ... 

risultati nella trama seguente: enter image description here

Idealmente, si renderebbe i valori extent in axis rispetto al minimo e il massimo valori delle coordinate in p e tras.

+0

Grazie !!!!! apprezzo molto la tua risposta, mi stava facendo impazzire – Herman