Соединение конечной и начальной точек на простом X-y графике (построение замкнутой кривой / многоугольника)
скажем, например, у меня было ...
x = [1 1 2 2];
y = [1 2 2 1];
plot(x, y, 'b-');
Я получу график с линиями, соединяющими точки (1,1), (1,2) и (2,2). Есть ли способ связать конечную точку с первой, тем самым завершив квадрат на участке?
Я также вытягиваю строки текста с точками, поэтому простое добавление другой точки 1,1 не является опцией.
3 ответов
impoly
может быть полезно, однако, он создает изменяемую кривую, которая медленнее, чем график.
вы можете написать простую функцию для этого:
function plotc(x,y,varargin)
x = [x(:) ; x(1)];
y = [y(:) ; y(1)];
plot(x,y,varargin{:})
end
кстати,(:)
оператор двоеточия используется в качестве средства оборонительного программирования. Таким образом, x
и y
могут быть векторами строк или столбцов.
на varargin
позволяет использовать дополнительные параметры, такие как:
plotc(x,y,'Color','r');
plotc(x,y,'Parent',a,'LineWidth',2);
Если ваши окончательные и последние точки не совпадают, то plot
не будет знать, что вы хотите замкнутую кривую. Поэтому либо добавьте дополнительную точку в свой список для построения, либо попробуйте использовать, например,rectangle
.
У вас есть панель инструментов обработки изображений? Если да,
impoly(hparent, position, 'Closed')
может быть вам полезно.