2011-12-17 13 views
6

Załóżmy na przykład, miałem ...Podłączanie końcowy i początkowy punkt prostej xy działki (kreślenie zamknięta krzywa/wielokąt)

x = [1 1 2 2]; 
y = [1 2 2 1]; 
plot(x, y, 'b-'); 

będę dostać działkę z linii łączących punkty (1,1), (1,2) i (2,2). Czy istnieje jakiś sposób, aby połączyć końcowy punkt z pierwszym, uzupełniając w ten sposób kwadrat na działce?

Wstawiam również linie tekstu z punktami, więc po prostu dodanie kolejnego punktu 1,1 nie jest opcją.

Odpowiedz

10

impoly mogą być przydatne, jednak stwarza modyfikowalna krzywą, która jest mniejsza niż powierzchni.

Można napisać prostą funkcję, która:

function plotc(x,y,varargin) 
    x = [x(:) ; x(1)]; 
    y = [y(:) ; y(1)]; 
    plot(x,y,varargin{:}) 
end 

Nawiasem mówiąc, operator (:) okrężnicy służy jako defensywnych środków programowych. W ten sposób, x i y mogą być wektorami wierszowymi lub kolumnowymi.

varargin pozwala na stosowanie dodatkowych parametrów, takich jak:

plotc(x,y,'Color','r'); 
plotc(x,y,'Parent',a,'LineWidth',2); 
+1

niesamowite! działało idealnie:] –

2

Jeśli twoje ostatnie i ostatnie punkty nie są takie same, plot nie będzie wiedział, że chcesz mieć zamkniętą krzywą. Więc dodaj dodatkowy punkt do listy, aby narysować lub spróbuj użyć, na przykład, rectangle.

Powiązane problemy