2011-12-14 17 views
6

Pracuję w oktawie, potrzebuję wywołać plot3 dwa lub więcej razy, aby wygenerować jeden wykres. Ale to tylko wywołuje ostatnie wywołanie z plot3. Potrzebuję pomocy.Wiele wywołań działek w oktawie

To jest mój kod: To tylko działki linię 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

Myślę, że twój skrypt będzie działał dobrze. Spróbuj trochę podświetlić punkty za pomocą 'plot3 (p (:, 1), p (:, 2), p (:, 3), 'r *'," markersize ", 20);' i zobacz czy to działa . – Woltan

Odpowiedz

5

Kod kreślenia jest w porządku. Spróbuj zwiększyć zakres działki za pomocą funkcji axis. Poniższa zmiana:

% ... 

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

% ... 

Wyniki w poniższym wykresie: enter image description here

Idealnie byłoby dokonać wartości zakresów w axis stosunku do minimalnej i maksymalnej wartości współrzędnych w p i tras.

+0

Dzięki !!!!! Naprawdę doceniam twoją odpowiedź, doprowadzało mnie to do szału – Herman

Powiązane problemy