Графический объект закрашенной фигуры состоит из одного или нескольких многоугольников, которые могут или не могут быть соединены. Закрашенные фигуры полезны для моделирования реальных объектов, таких как самолеты или автомобили, и для многоугольников рисунка 2-или 3-D произвольной формы.
В отличие от этого объекты подложки являются прямоугольными сетками четырехугольников и лучше подходят для отображения плоских топографий, таких как значения математических функций двух переменных, контуров данных в прямоугольной плоскости или параметрированных поверхностей, таких как сферы.
Много MATLAB® функции создают объекты закрашенной фигуры — fill
, fill3
, isosurface
, isocaps
, часть из contour
функции, и patch
. Этот раздел концентрируется на использовании patch
функция.
Вы задаете закрашенную фигуру путем определения координат ее вершин и некоторой формы цветных данных. Закрашенные фигуры поддерживают разнообразие окраски опций, которые полезны для визуализации данных, наложенных на геометрические фигуры.
Существует два способа задать закрашенную фигуру:
Путем определения координат вершин каждого многоугольника, которые соединяются, чтобы сформировать закрашенную фигуру
Путем определения координат каждой уникальной вершины и матрицы, которая задает, как соединить эти вершины, чтобы сформировать поверхности
Второй метод предпочтен для многоаспектных закрашенных фигур, потому что он обычно требует, чтобы меньше данных задало закрашенную фигуру; вершины, совместно использованные больше чем одной поверхностью, должны быть заданными только однажды. Этот раздел обеспечивает примеры обоих методов.
Существует две формы patch
функция - высокоуровневый синтаксис и низкоуровневый синтаксис. Поведение patch
функция отличается несколько, в зависимости от которого синтаксиса вы используете.
Когда вы используете высокоуровневый синтаксис, MATLAB автоматически определяет, как окрасить каждую поверхность на основе цветных данных, которые вы задаете. Высокоуровневый синтаксис позволяет вам не использовать имена свойства x-, y-, и z-координаты и цветные данные, пока вы задаете эти аргументы в правильном порядке.
patch(x-coordinates,y-coordinates,z-coordinates,colordata)
Однако необходимо задать цветные данные, таким образом, MATLAB может определить какой окраска, чтобы использовать. Если вы не задаете цветные данные, MATLAB возвращает ошибку.
x = [0 1 1 0];
y = [0 0 1 1];
patch(x,y)
Error using patch
Not enough input arguments.
Низкоуровневый синтаксис принимает только имя свойства / пары значения свойства в качестве аргументов и автоматически не окрашивает поверхности, если вы также не изменяете значение FaceColor
свойство. Например, оператор
patch('XData',x,'YData',y)
чертит закрашенную фигуру с черным цветом поверхности потому что значение заводской настройки для FaceColor
свойство является черным цветом.
get(groot,'FactoryPatchFaceColor') ans = 0 0 0
См. список Свойств исправления в Ссылке функции MATLAB и get
команда для получения информации о том, как получить фабрику и пользовательские значения по умолчанию для свойств.
Когда вы используете высокоуровневый синтаксис, MATLAB интерпретирует третье (или четвертый, если существуют z-координаты), аргумент как цветные данные. Если вы намереваетесь задать закрашенную фигуру с x-, y-, и z-координаты, но не учесть цвет, MATLAB интерпретирует z-координаты как цветные данные, и затем чертит 2D закрашенную фигуру. Например,
patch(x,y,1:length(x))
чертит закрашенную фигуру со всеми вершинами в z = 0, окрашенный путем интерполяции цветов вершины (поскольку существует один цвет для каждой вершины), тогда как
patch(x,y,1:length(x),'y')
чертит закрашенную фигуру с вершинами при увеличении значений z, окрашенного в желтый.
То, как Данные о Закрашенной фигуре Относятся к Палитре, предоставляет больше информации об опциях для окраски закрашенных фигур.
Многоугольник является просто закрашенной фигурой с одной поверхностью. Чтобы создать многоугольник, задайте координаты вершин и цветных данных с оператором формы
patch(x-coordinates,y-coordinates,[z-coordinates],colordata)
Например, эти операторы отображают 10-сторонний многоугольник с желтой поверхностью, заключенной черным ребром. axis
equal
команда производит правильно распределяемый многоугольник.
t = 0:pi/5:2*pi; figure patch(sin(t),cos(t),'y') axis equal
Первые и последние вершины не должны совпадать; MATLAB автоматически закрывает каждую многоугольную поверхность закрашенной фигуры. На самом деле обычно лучше задать каждую вершину только однажды, особенно если вы используете интерполированную окраску поверхности.
Можно управлять многими аспектами окраски закрашенной фигуры. Например, вместо того, чтобы задать один цвет, предоставьте спектр численных значений, которые сопоставляют цвет в каждой вершине к цвету в палитре фигуры.
a = t(1:length(t)-1); %remove redundant vertex definition figure patch(sin(a),cos(a),1:length(a),'FaceColor','interp') axis equal
MATLAB теперь интерполирует цвета через поверхность закрашенной фигуры. Можно окрасить ребра закрашенной фигуры тем же путем, установив цвета обводки быть интерполированными. Команда
patch(sin(a),cos(a),1:length(a),'EdgeColor','interp')
То, как Данные о Закрашенной фигуре Относятся к Палитре, предоставляет больше информации об опциях для окраски закрашенных фигур.