Закрашенная фигура объект состоит из одного или нескольких многоугольников, которые могут быть соединены или не могут быть соединены. Закрашенные фигуры полезны для моделирования объектов реального мира, таких как самолеты или автомобили, и для рисования 2- или 3-D многоугольников произвольной формы.
Напротив, поверхностные объекты являются прямоугольными сетками четырёхугольников и лучше подходят для отображения плоских топографий, таких как значения математических функций двух переменных, контуры данных в прямоугольной плоскости или параметризованные поверхности, такие как сферы.
Ряд MATLAB® функции создают закрашенную фигуру объектов - fill
, fill3
, isosurface
, isocaps
, некоторые из contour
функций, и patch
. В этом разделе основное внимание уделяется использованию patch
функция.
Вы задаете закрашенную фигуру, задавая координаты его вершин и некоторую форму цветовых данных. Закрашенные фигуры поддерживают различные опции раскраски, которые полезны для визуализации данных, наложенных на геометрические формы.
Существует два способа задать закрашенную фигуру:
Путем определения координат вершин каждого многоугольника, которые соединяются, чтобы сформировать закрашенную фигуру
Путем определения координат каждой уникальной вершины и матрицы, которая задает, как соединить эти вершины с образованием граней
Второй метод предпочтителен для многогранных закрашенных фигур, поскольку он обычно требует меньшего количества данных для определения закрашенной фигуры; вершины, общие несколькими гранями, должны быть заданы только один раз. В этом разделе приведены примеры обоих методов.
Существует две формы patch
function - синтаксис высокого уровня и синтаксис низкого уровня. Поведение 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 как данные о цвете, а затем рисует 2-D закрашенную фигуру. Для примера,
patch(x,y,1:length(x))
рисует закрашенную фигуру со всеми вершинами в z = 0, окрашенный путем интерполяции цветов вершины (поскольку для каждой вершины существует по одному цвету), тогда как
patch(x,y,1:length(x),'y')
рисует закрашенную фигуру с вершинами при увеличении значений z, окрашенного в желтый цвет.
Как Patch Data соотносится с Палитрой предоставляет дополнительные сведения об опциях для окрашивания закрашенных фигур.
Многоугольник - это просто закрашенная фигура с одной гранью. Чтобы создать многоугольник, задайте координаты вершин и данные о цвете с помощью оператора формы
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')
Как Patch Data соотносится с Палитрой предоставляет дополнительные сведения об опциях для окрашивания закрашенных фигур.