закрашенная фигура

Создайте один или несколько заполненных полигонов

Синтаксис

patch(X,Y,C)
patch(X,Y,Z,C)
patch('XData',X,'YData',Y)
patch('XData',X,'YData',Y,'ZData',Z)
patch('Faces',F,'Vertices',V)
patch(S)
patch(___,Name,Value)
patch(ax,___)
p = patch(___)

Описание

пример

patch(X,Y,C) создает один или несколько заполненных полигонов с помощью элементов X и Y как координаты для каждой вершины. patch соединяет вершины в порядке, что вы задаете их. Чтобы создать один полигон, задайте X и Y как векторы. Чтобы создать несколько полигонов, задайте X и Y как матрицы, где каждый столбец соответствует полигону. C определяет цвета полигона.

patch(X,Y,Z,C) создает полигоны в 3-D координатах с помощью X, Y и Z. Чтобы просмотреть полигоны в 3-D представлении, используйте команду view(3). C определяет цвета полигона.

patch('XData',X,'YData',Y) подобен patch(X,Y,C), за исключением того, что вы не должны задавать цветные данные для 2D координат.

patch('XData',X,'YData',Y,'ZData',Z) подобен patch(X,Y,Z,C), за исключением того, что вы не должны задавать цветные данные для 3-D координат.

пример

patch('Faces',F,'Vertices',V) создает один или несколько полигонов, где V задает значения вершины, и F задает который вершины соединиться. Определение только уникальных вершин и их матрицы связи может уменьшить размер данных, когда существует много полигонов. Задайте одну вершину на строку в V. Чтобы создать один полигон, задайте F как вектор. Чтобы создать несколько полигонов, задайте F как матрицу с одной строкой на полигон. Каждая поверхность не должна иметь того же количества вершин. Чтобы задать различные количества вершин, заполните F значениями NaN.

пример

patch(S) создает один или несколько полигонов с помощью структуры S. Поля структуры соответствуют именам свойства исправления и значениям полей, соответствующим значениям свойств. Например, S может содержать поля Faces и Vertices.

пример

patch(___,Name,Value) создает полигоны и задает одно или несколько свойств исправления с помощью аргументов в виде пар "имя-значение". Закрашенная фигура является объектом, который содержит данные для всех созданных полигонов. Можно задать свойства исправления с любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, 'LineWidth',2 устанавливает ширину контура для всех полигонов к 2 точкам.

patch(ax,___) создает закрашенную фигуру в осях, заданных ax вместо в текущей системе координат (gca). Опция ax может предшествовать любой комбинации входных аргументов в предыдущих синтаксисах.

p = patch(___) возвращает объект закрашенной фигуры, который содержит данные для всех полигонов. Используйте p, чтобы запросить и изменить свойства объекта закрашенной фигуры после того, как это будет создано. Для списка свойств и описаний, смотрите Свойства исправления.

Примеры

свернуть все

Создайте единственный полигон путем определения (x, y) координаты каждой вершины. Затем добавьте еще два полигона к фигуре.

Создайте красный квадрат с вершинами в (0,0), (1,0), (1,1) и (0,1). Задайте x как x-координаты вершин и y как y-координаты. patch автоматически соединяет последнее (x, y) координата с первым (x, y) координата.

x = [0 1 1 0];
y = [0 0 1 1];
patch(x,y,'red')

Создайте два полигона путем определения x и y как матрицы двух-столбца. Каждый столбец задает координаты для одного из полигонов. patch добавляет полигоны к текущей системе координат, не очищая оси.

x2 = [2 5; 2 5; 8 8];
y2 = [4 0; 8 2; 4 0];
patch(x2,y2,'green')

Создайте единственный полигон путем определения координат каждой уникальной вершины и матрицы, которая задает, как соединить их. Затем добавьте еще два полигона к фигуре.

Создайте красный квадрат с углами в (0,0), (1,0), (1,1) и (0,1). Задайте v так, чтобы каждая строка задала (x, y) координаты для одной вершины. Затем задайте f как вершины, чтобы соединиться. Выберите цвет путем определения свойства FaceColor.

v = [0 0; 1 0; 1 1; 0 1];
f = [1 2 3 4];
patch('Faces',f,'Vertices',v,'FaceColor','red')

Создайте два полигона путем определения f как матрицы двух-строки. Каждая строка задает поверхность для одной закрашенной фигуры.

v2 = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0];
f2 = [1 2 3; 
    4 5 6];
patch('Faces',f2,'Vertices',v2,'FaceColor','green')

Создайте два полигона и используйте различный цвет для каждой поверхности полигона. Используйте шкалу палитры, чтобы показать, как цвета сопоставляют в палитру.

Создайте полигоны с помощью матриц x и y. Задайте c как вектор - столбец с двумя элементами, поскольку существует две поверхности полигона и добавляют шкалу палитры.

x = [2 5; 2 5; 8 8];
y = [4 0; 8 2; 4 0];
c = [0; 1];
figure
patch(x,y,c)
colorbar

Также можно получить тот же результат при использовании f и v вместо этого. Когда вы создаете полигоны, устанавливаете FaceVertexCData на вектор - столбец с двумя элементами, поскольку существует две поверхности полигона. Установите FaceColor на 'flat'.

v = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0];
f = [1 2 3; 4 5 6];
col = [0; 1];
figure
patch('Faces',f,'Vertices',v,'FaceVertexCData',col,'FaceColor','flat');
colorbar

Интерполируйте цвета через поверхности полигона путем определения цвета в каждой вершине полигона и используйте шкалу палитры, чтобы показать, как цвета сопоставляют в палитру.

Создайте полигоны с помощью матриц x и y. Задайте c как матрицу тот же размер как x и y, задающий один цвет на вершину, и добавьте шкалу палитры.

x = [2 5; 2 5; 8 8];
y = [4 0; 8 2; 4 0];
c = [0 3; 6 4; 4 6];
figure
patch(x,y,c)
colorbar

Также можно получить тот же результат с помощью f и v вместо этого. Когда вы создаете полигоны, устанавливаете FaceVertexCData на вектор - столбец с одним значением на вершину и устанавливаете FaceColor на 'interp'.

v = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0];
f = [1 2 3; 4 5 6];
col = [0; 6; 4; 3; 4; 6];
figure
patch('Faces',f,'Vertices',v,'FaceVertexCData',col,'FaceColor','interp');
colorbar

Создайте полигон с зелеными краями и не отображайте поверхность. Затем создайте второй полигон с различным цветом для каждого края.

v = [0 0; 1 0; 1 1];
f = [1 2 3];
figure
patch('Faces',f,'Vertices',v,...
    'EdgeColor','green','FaceColor','none','LineWidth',2);

Используйте различный цвет для каждого края путем определения цвета для каждой вершины и установки EdgeColor к 'flat'.

v = [2 0; 3 0; 3 1];
f = [1 2 3];
c = [1 0 0; % red
    0 1 0; % green
    0 0 1]; % blue
patch('Faces',f,'Vertices',v,'FaceVertexCData',c,...
    'EdgeColor','flat','FaceColor','none','LineWidth',2);

Используйте структуру, чтобы создать два полигона. Во-первых, создайте структуру с полевыми именами то свойство исправления соответствия имена. Затем используйте структуру, чтобы создать полигоны.

clear S
S.Vertices = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0];
S.Faces = [1 2 3; 4 5 6];
S.FaceVertexCData = [0; 1];
S.FaceColor = 'flat';
S.EdgeColor = 'red';
S.LineWidth = 2;
figure
patch(S)

Создайте два полупрозрачных полигона путем установки свойства FaceAlpha на значение между 0 и 1.

v1 = [2 4; 2 8; 8 4];
f1 = [1 2 3];
figure
patch('Faces',f1,'Vertices',v1,'FaceColor','red','FaceAlpha',.3);

v2 = [2 4; 2 8; 8 8];
f2 = [1 2 3];
patch('Faces',f2,'Vertices',v2,'FaceColor','blue','FaceAlpha',.5);

Создайте разноцветную строку с маркерами в каждой вершине. Интерполируйте цвета и используйте шкалу палитры, чтобы показать, как значения сопоставляют с палитрой.

Создайте данные. Установите последнюю запись y к NaN так, чтобы patch создал строку вместо закрытого полигона. Задайте цвет для каждой вершины с помощью значений y. Значения в c сопоставляют с, раскрашивает палитру.

x = linspace(1,10,15);
y = sin(x);
y(end) = NaN;
c = y;

Создайте строку. Покажите маркеры в каждой вершине и установите EdgeColor на 'interp' интерполировать цвета между вершинами. Добавьте шкалу палитры.

figure
patch(x,y,c,'EdgeColor','interp','Marker','o','MarkerFaceColor','flat');
colorbar;

Входные параметры

свернуть все

x-координаты для вершин, заданных в одной из следующих форм:

  • Вектор — Создает один полигон.

  • Матрица — Создает полигоны n с вершинами m каждый, где [m,n] = size(X). Каждый столбец в матрице соответствует одному полигону.

Если данные не задают закрытые полигоны, то patch закрывает полигоны. Если края отдельного полигона пересекают себя, получившиеся полигоны могут быть частично заполнены. В этом случае лучше разделить объект закрашенной фигуры на меньшие полигоны.

Когда вы задаете X, функция patch устанавливает свойство XData для объекта закрашенной фигуры к тому же значению. Объект закрашенной фигуры автоматически вычисляет поверхность и данные вершины и устанавливает свойства Faces и Vertices на соответствующие значения.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

y-координаты для вершин, заданных в одной из следующих форм:

  • Вектор — Создает один полигон.

  • Матрица — Создает полигоны n с вершинами m каждый, где [m,n] = size(Y). Каждый столбец в матрице соответствует одному полигону.

Если данные не задают закрытые полигоны, то patch закрывает полигоны. Если края отдельного полигона пересекают себя, получившиеся полигоны могут быть частично заполнены. В этом случае лучше разделить объект закрашенной фигуры на меньшие полигоны.

Когда вы задаете Y, функция patch устанавливает свойство YData для объекта закрашенной фигуры к тому же значению. Объект закрашенной фигуры автоматически вычисляет поверхность и данные вершины и устанавливает свойства Faces и Vertices на соответствующие значения.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

z-координаты для вершин, заданных в одной из следующих форм:

  • Вектор — Создает один полигон.

  • Матрица — Создает полигоны m с вершинами n каждый, где [m,n] = size(Z). Каждый столбец в матрице соответствует одному полигону.

Когда вы задаете Z, функция patch устанавливает свойство ZData для объекта закрашенной фигуры к тому же значению. Объект закрашенной фигуры автоматически вычисляет поверхность и данные вершины и устанавливает свойства Faces и Vertices на соответствующие значения.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Цвета полигона, заданные как скаляр, вектор, матрица или название цвета. Формат входного параметра определяет, имеют ли все полигоны тот же цвет, один цвет на поверхность или интерполированные цвета поверхности.

Желаемый эффектИспользуйте один из этих форматовРезультаты
Единственный цвет для всех поверхностей

  • Название цвета, например, 'r' для красного.

  • Триплет RGB, например, [0 .5 .5].

  • Скалярное значение, например, 2. Свойство CDataMapping определяет как карты ценности в палитру.

Для примера смотрите Координаты Определения.

  • Устанавливает свойство FaceColor на заданный цвет.

Один цвет на поверхность

  • n-by-1 вектор цветов палитры, где n является количеством поверхностей. Свойство CDataMapping определяет, как значения сопоставляют в палитру.

  • n-by-1-by-3 массив значений RGB. Первая страница массива задает красные компоненты цветов, вторая страница задает синий, и третья страница задает зеленый.

Для примера смотрите Различные Цвета Поверхности Полигона.

  • Устанавливает свойство FaceColor на 'flat'.

  • Устанавливает свойства CData и FaceVertexCData с помощью заданных значений цвета.

Интерполированные цвета поверхности

  • m-by-n матрица значений палитры, где [m,n] = size(X). Задайте один цвет на вершину.

  • m-by-n-by-3 массив значений RGB.

Для примера смотрите Интерполированные Цвета Поверхности Полигона.

  • Устанавливает свойство FaceColor на 'interp'.

  • Устанавливает свойства CData и FaceVertexCData с помощью заданных значений цвета.

Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7]. Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены варианты длинного и краткого наименований цветов и их эквивалентные значения RGB.

ОпцияОписаниеЭквивалентный триплет RGB
'красный' или 'r'Красный[1 0 0]
'green' или 'g'Зеленый[0 1 0]
'blue' или 'b'Синий[0 0 1]
'yellow' или 'y'Желтый[1 1 0]
'пурпурный' или 'm'Пурпурный[1 0 1]
'голубой' или 'c'Голубой[0 1 1]
'white' или 'w'Белый[1 1 1]
'black' или 'k'Черный[0 0 0]

Вершины полигона, заданные в одной из следующих форм:

  • Матрица двух-столбца — Каждая строка содержит (x, y) координаты для вершины.

  • Матрица с тремя столбцами — Каждая строка содержит (x, y, Z) координаты для вершины.

Задайте только уникальные вершины. Можно обратиться к вершине несколько раз при определении определений поверхности в F.

Когда вы задаете V, функция patch устанавливает свойство Vertices для объекта закрашенной фигуры к тому же значению. Объект закрашенной фигуры автоматически вычисляет координатные данные и устанавливает XData, YData и ZData к соответствующим значениям.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Столкнитесь с определениями, заданными в одной из следующих форм:

  • Вектор - строка — Создает единственный полигон.

  • Матрица — Создает несколько полигонов, где каждая строка соответствует полигону.

Например, этот код задает три вершины в V и создает один полигон путем соединения вершины 1 - 2, 2 - 3, и от 3 до 1.

V = [1 1; 2 1; 2 2];
F = [1 2 3 1];
patch('Faces',F,'Vertices',V)

Когда вы задаете F, функция patch устанавливает свойство Faces для объекта закрашенной фигуры к тому же значению. Объект закрашенной фигуры автоматически вычисляет координатные данные и устанавливает XData, YData и ZData к соответствующим значениям.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Исправьте определение, заданное как структура с полями, которые соответствуют имена свойства исправления и значения полей, которые соответствуют значениям свойства исправления.

Объект осей. Если вы не задаете объект осей, то исправляете, использует текущую систему координат.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Имя должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: закрашенная фигура (x, y, c, 'FaceAlpha'.5, 'LineStyle'': '), создает полупрозрачные полигоны с точечными краями.

Свойства, перечисленные здесь, являются только подмножеством свойств исправления. Для полного списка смотрите Свойства исправления.

Цвет поверхности, заданный как 'flat', 'interp', триплет RGB или один из перечисленных в таблице параметров цвета.

  • 'flat' — Универсальные цвета поверхности. Во-первых, задайте CData или FaceVertexCData как массив, содержащий один цвет на поверхность или один цвет на вершину. Если вы задаете цвет для каждой вершины, то цвет первой заданной вершины определяет цвет поверхности.

  • 'interp' — Интерполируйте цвет через каждую поверхность. Во-первых, задайте CData или FaceVertexCData как массив, содержащий одно значение на вершину. Определите цвета поверхности путем интерполяции значений в каждой вершине.

Для единственного цвета для всех поверхностей задайте триплет RGB или один из перечисленных в таблице параметров цвета. An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range [0,1]; for example, [0.4 0.6 0.7]. Alternatively, you can specify some common colors by name. This table lists the long and short color name options and the equivalent RGB triplet values.

ОпцияОписаниеЭквивалентный триплет RGB
'красный' или 'r'Красный[1 0 0]
'green' или 'g'Зеленый[0 1 0]
'blue' или 'b'Синий[0 0 1]
'yellow' или 'y'Желтый[1 1 0]
'пурпурный' или 'm'Пурпурный[1 0 1]
'голубой' или 'c'Голубой[0 1 1]
'white' или 'w'Белый[1 1 1]
'black' или 'k'Черный[0 0 0]
'none'Нет цветаНе применяется

Столкнитесь с прозрачностью, заданной как одно из этих значений:

  • Скаляр в области значений [0,1] — универсальная прозрачность Использования через все поверхности. Значение 1 полностью непрозрачно, и 0 абсолютно прозрачен. Эта опция не использует значения прозрачности в свойстве FaceVertexAlphaData.

  • 'flat' — Используйте различную прозрачность для каждой поверхности на основе значений в свойстве FaceVertexAlphaData. Сначала необходимо задать свойство FaceVertexAlphaData как вектор, содержащий одно значение прозрачности на поверхность или вершину. Значение прозрачности в первой вершине определяет прозрачность для целой поверхности.

  • 'interp' — Используйте интерполированную прозрачность для каждой поверхности на основе значений в свойстве FaceVertexAlphaData. Сначала необходимо задать свойство FaceVertexAlphaData как вектор, содержащий одно значение прозрачности на вершину. Прозрачность отличается через каждую поверхность путем интерполяции значений в вершинах.

Цвета обводки, заданные как одно из значений в этой таблице. Цвет обводки по умолчанию является черным со значением триплета RGB [0 0 0]. Если несколько полигонов совместно используют край, то первый полигон чертившие средства управления отображенный цвет обводки.

ЗначениеОписаниеРезультат

Триплет RGB или название цвета

Единственный цвет для всех краев. Дополнительную информацию см. в следующей таблице.

'flat'

Различный цвет для каждого края. Используйте цвета вершины, чтобы выбрать цвет края, который следует за ним. Необходимо сначала задать CData или FaceVertexCData как массив, содержащий один цвет на вершину. Цвет обводки зависит от порядка, в котором вы задаете вершины.

'interp'

Интерполированный цвет обводки. Необходимо сначала задать CData или FaceVertexCData как массив, содержащий один цвет на вершину. Определите цвет обводки путем линейной интерполяции значений в двух вершинах ограничения.

'none'Никакие края не отображены.

Никакие края не отображены.

Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7]. Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены варианты длинного и краткого наименований цветов и их эквивалентные значения RGB.

ОпцияОписаниеЭквивалентный триплет RGB
'красный' или 'r'Красный[1 0 0]
'green' или 'g'Зеленый[0 1 0]
'blue' или 'b'Синий[0 0 1]
'yellow' или 'y'Желтый[1 1 0]
'пурпурный' или 'm'Пурпурный[1 0 1]
'голубой' или 'c'Голубой[0 1 1]
'white' или 'w'Белый[1 1 1]
'black' или 'k'Черный[0 0 0]

Стиль линии, заданный как одна из опций, перечислен в этой таблице.

Стиль линииОписаниеПолучившаяся строка
'-'Сплошная линия

'--'Пунктирная линия

':'Пунктирная линия

'-.'Штрих-пунктирная линия

'none'Никакая строкаНикакая строка

Выходные аргументы

свернуть все

Объект закрашенной фигуры, возвращенный как скаляр. Каждый объект закрашенной фигуры может состоять из одного или нескольких полигонов. Используйте p, чтобы запросить или изменить свойства объекта закрашенной фигуры после того, как это будет создано.

Расширенные возможности

Представлено до R2006a

Была ли эта тема полезной?