"Вычисления, визуализация и программирование в среде MATLAB 5.x" - читать интересную книгу автора (Мартынов Н. Н., Иванов А. П.)

colormap( hsv ); axis([-3 3-3 3 -10 5]);
приводит к следующему изображению (см. рис. 2.26):
Функция с именем peaks (является некоторой масштабированной комбинацией стандартных гауссовых функций) часто употребляется в примерах к системе MATLAB для наглядной иллюстрации графических функций.
Наконец, для трехмерных графиков существует возможность изменять свойства условной камеры, фиксирующей сцену с графиком: можно менять положение этой камеры, расстояние от сцены, а также свойства ее объектива. Это мощный способ влиять на детали изображения. Изменять свойства такой камеры можно с помощью дескрипторного метода. Как мы знаем, графическим объектом, соответствующим поверхности трехмерного графика функции, является* объект типа surface. Дескриптор (описатель) такого объекта возвращается функциями mesh, surf и surf 1. Объект surface всегда принадлежит объекту
MATLAB 5.x. Вычисления, визуализация, программирование
75
axes. Получить описатель объекта axes можно, вызвав функцию дса, которая и возвращает описатель текущего объекта axes (если имеется несколько таких объектов, то перед вызовом функции нужно щелкнуть мышью на требуемом объекте axes). Получив описатель, можно функцией set изменить свойства объекта axes, в частности свойства, связанные с камерой, фиксирующей сцену с расположенным на ней трехмерным графиком. Приведем список свойств объекта axes, имеющих отношение к этому вопросу:
get( hA )
CameraPosition
CameraPositionMode
CameraTarget
CameraTargetMode
CameraUpVector
CameraUpVectorMode
CameraViewAngle
CameraViewAngleMode
1 Figure No. 1
Die Edit iVindow Help
. Рисунок 2.26
Более простым по сравнению с изменением свойств условной камеры наблюдения является метод изменения точки обзора (viewpoint). В частности, для точки обзора нет понятия расстояния до сцены и, тем более, свойств объектива. Для нее можно менять только углы, задающие ориентацию этой точки в пространст-
76
Глава 2. Визуализация результатов вычислений
ве: угол азимута (часто обозначают как az) нугол возвышения (часто обозначают el). Изменение первого угла означает вращение плоскости хОу вокруг оси Oz против часовой стрелки. Угол возвышения есть угол между направлением на точку обзора и плоскостью хОу.
Когда выполняются высокоуровневые графические функции mesh, surf или ' surf 1, то по умолчанию устанавливаются значения az = -37.5°, el = 30°. Эти значения в любой момент времени можно изменить специальной функцией
el 1 )
view i
az
где названия аргументов говорят сами за себя. В частности, если после построения показанного выше графика с пьедесталом для функции
X
-Х.Л2 - У.Л2
ехр выполнить команду
view( [ -15 , 20 ] )
то график изменит свой вид, поскольку мы уменьшили угол возвышения с 30 до 20° градусов, а угол азимута изменили с «умолчательного значения» в -37.5 градуса на значение, равное -15 градусам. В итоге мы теперь глядим на график больше сбоку, а не сверху, и преимущественно вдоль одной из независимых координат (см. рис. 2.27).
'* Figure No. I
File Edit': Window;; Help
0.5 ч
Рисунок 2.27
Подводя итоги, заметим, что система MATLAB обладает огромными, трудно поддающимися обзору возможностями по оформлению графиков функций. Все рассмотренные до сих пор возможности основаны на так называемой векторной графике, когда изображаемый объект задан своими координатами (числовыми
MATLAB 5.x. Вычисления, визуализация, программирование 77
данными, накопленными в массивах), которые сама система MATLAB в момент отображения переводит в значения (цвет) пикселов дисплея. Векторная графика прекрасно поддается масштабированию.
Однако существуют графические объекты реального мира, заданные в растровой форме, например сосканированные для ввода в компьютер фотографии. Система MATLAB обладает также развитыми средствами работы с растровой графикой. Ей посвящен следующий подраздел данной главы.
Растровые изображения и тип данных uint8
Любое изображение на дисплее компьютера (в том числе и графики функций, полученные в результате работы векторной графической подсистемы пакета MATLAB) представляет собой массив пикселов, каждый из которых характеризуется своим цветом.
Чтобы сохранить полученные графики функций как растровые изобралсения в фатах на диске компьютера, нужно выполнить следующую команду:
print -options FileName
где имя файла выбирается произвольно, но если не указать полный путь к файлу, то запись произойдет только в текущий каталог системы MATLAB.
Параметр options определяет формат графического файла. Например, dbitmap задает стандартный растровый формат операционной системы Windows; значение dmeta создает так называемый метафайл (в строгом смысле это не формат растровой графики, так как в файл записываются команды, а не пикселы); значение dill соответствует графическому формату известного пакета иллюстративной графики Adobe Illustrator. В последнем случае сохраненный файл можно будет открывать в этом пакете и подвергать его содержимое дальнейшей обработке средствами пакета Illustrator.
Сохраненные в файлах на диске компьютера изображения, полученные ранее средствами пакета MATLAB, можно вставить в текст документа редактора Microsoft Word в том случае, если вместе с этим текстовым редактором были инсталлированы конвертеры файлов данного графического формата.
Еще проще передать изображение из системы MATLAB в текстовый редактор Microsoft Word посредством буфера обмена операционной системы Windows. Чтобы поместить изображение из графического окна системы MATLAB в буфер обмена, нужно выполнить команды __. i-
print -dbitmap или print -dmeta ¦ ;*