Кубик задан восемью вершинами, которые образуют шесть сторон. Этот рисунок показывает координаты x -, y - и z вершин, определяющие кубик, в котором стороны являются одним модулем в длину.
Если вы задаете в качестве векторов аргументы x -, y - и z - координаты, они отображаются как один многоугольник с точками, соединенными последовательно. Если аргументы матрицы, MATLAB® рисует по одному многоугольнику на столбец, получая одну закрашенную фигуру с несколькими гранями. Эти грани не должны быть соединены и могут быть самопересекающимися.
Кроме того, можно задать координаты каждой уникальной вершины и порядок их соединения для формирования граней. Примеры в этом разделе иллюстрируют оба методов.

Каждая из шести граней имеет четыре вершины. Поскольку вам не нужно закрывать каждый многоугольник (т.е. первая и последняя вершины не должны быть одинаковыми), можно задать этот кубик с помощью матрицы 4 на 6 для каждой из координат x -, y - и z.

Каждый столбец матриц задает разную грань. Хотя вершин всего восемь, необходимо задать 24 вершины, чтобы задать все шесть граней. Поскольку каждая грань разделяет вершины с четырьмя другими гранями, можно более эффективно задать закрашенную фигуру, задав каждую вершину только один раз и затем задав порядок, в котором можно соединить эти вершины для формирования каждой грани. Область закрашенной фигуры Vertices и Faces свойства определяют закрашенные фигуры именно таким образом.
Эти матрицы задают кубик используя
Vertices и Faces.

Использование метода вершин/граней может сэкономить значительное количество памяти компьютера, когда закрашенные фигуры содержат большое количество граней. Этот метод требует формального patch синтаксис функции, который влечет за собой присвоение значений Vertices и Faces свойства явно. Для примера,
patch('Vertices',vertex_matrix,'Faces',faces_matrix)
Поскольку синтаксис высокого уровня не присваивает автоматически цвета граней или ребер, необходимо задать соответствующие свойства, чтобы получить закрашенные фигуры с цветами, отличными от цвета белого лица по умолчанию и цвета чёрного ребра.
Цвет плоской грани является результатом определения одного цвета на грань. Для примера используйте метод вершин/граней и FaceVertexCData свойство для определения цвета, этот оператор задает один цвет на лицо и устанавливает FaceColor свойство к flat.
vert = [0 0 0;1 0 0;1 1 0;0 1 0;0 0 1;1 0 1;1 1 1;0 1 1];
fac = [1 2 6 5;2 3 7 6;3 4 8 7;4 1 5 8;1 2 3 4;5 6 7 8];
patch('Vertices',vert,'Faces',fac,...
'FaceVertexCData',hsv(6),'FaceColor','flat')
Отрегулируйте оси:
view(3) axis vis3d
Потому что truecolor задан как FaceVertexCData свойство имеет тот же формат, что и палитра MATLAB (т.е. массив значений RGB n на 3), этот пример использует hsv палитра, чтобы сгенерировать шесть цветов, необходимых для плоского затенения.

Чтобы сопоставить цвета граней с текущей палитрой, присвойте массив n на 1 FaceVertexCData свойство:
patch('Vertices',vert,'Faces',fac,...
'FaceVertexCData',(1:6)','FaceColor','flat')Отрегулируйте оси:
view(3) axis vis3d

Интерполированный цвет грани означает, что вершинные цвета каждой грани определяют переход цвета от одной вершины к следующей. Чтобы интерполировать цвета между вершинами, необходимо задать цвет для каждой вершины и задать FaceColor свойство к interp.
patch('Vertices',vert,'Faces',fac,...
'FaceVertexCData',hsv(8),'FaceColor','interp')
Отрегулируйте оси:
view(3) axis vis3d
создает кубик с каждой окрашенной гранью путем интерполяции вершинных цветов.

Чтобы определить ту же окраску, используя x, y, z, c метод, c должен быть массивом m на n на 3, где размерности x, y, и z составляют m на n.
Эта схема показывает соответствие между FaceVertexCData и CData свойства.

Как Закрашенная фигура Данных относится к Палитре обсуждает раскраски методов более подробно.