Размещение текста на трехмерных графиках

При выводе текста на трехмерные графики следует в первых трех входных аргументах функции text указывать три координаты текстового объекта. Построим, например график поверхности, задаваемой функцией peaks, которая используется во многих примерах справочной системы MATLAB, и рядом с точкой максимума поверхности разместим текст "Maximum". Соответственно, подпишем точку минимума "Minimum".

Функция peaks возвращает массив (квадратную матрицу), размеры которой совпадают со значением ее входного аргумента. Запишем этот массив в переменную Z и найдем максимальное M и минимальное m значения в нем при помощи функций max и min, соответственно. Напомним, что для поиска максимума в двумерном массиве следует два раза вызвать функцию max, поскольку результатом функции max является строка, содержащая максимальные элементы в каждом столбце (аналогично и для функции min). Далее используем функцию find для определения строчных и столбцевых индексов максимального и минимального элементов. Строчный и столбцевой индексы максимального элемента запишем в iM и jM, а минимального - в im и jm. Затем построим поверхность, обратившись к функции mesh. Если в функции mesh указан единственный входной аргумент - двумерный массив, то она строит поверхность, определяемую его значениями, при этом на оси абсцисс откладывается значение столбцевого индекса этого массива, а на оси ординат - значение строчного индекса. Останется вызвать функцию text для создания первого текстового объекта с надписью "Maximum" в точке с координатами (jM, iM, M+1) и второго, с надписью "Minimum", в точке с координатами (jm, im, m-1). Здесь в качестве третьей координаты взято M+1 и m-1 для того, чтобы текстовый объект находился на небольшом отдалении от поверхности. Соответствующие команды и результат приведены ниже.

figureaxesZ = peaks(30);M = max(max(Z))[iM, jM] = find(Z == M)m = min(min(Z))[im, jm] = find(Z == m)mesh(Z)hTM = text(jM, iM, M+1, 'Maximum')hTm = text(jm, im, m-1, 'Minimum')


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: