Команда shading с соответствующими параметрами обеспечивает «затенение» поверхности: shading faceted(«фасеточное») – равномерная раскраска ячеек с черными гранями (по умолчанию); shading flat(«плоское») – раскраска ячеек и граней цветами, соответствующими цветам узлов; shading interp(«интерполяционное») – цвета ячеек и граней определяются в результате двухмерной линейной интерполяции цветов в узлах.
Сравните команды:
» shading flat
» shading interp
Восстановим исходное состояние объекта:
» shading faceted
Изменим цветовую палитру:
» colormap copper
Восстановление палитры по умолчанию: colormap default или colormap hsv.
В некоторых случаях может возникнуть необходимость в изменении яркости цветовой палитры, для чего используют функцию brighten(beta)с соответствующим значением аргумента: при увеличении яркости , при уменьшении – соответственно .
» surf(x,y,r), brighten(0.5)
Возврат в исходное состояние осуществляется по команде: brighten(-beta):
» brighten(-0.5)
Угол наблюдения, под которым виден пространственный объект, устанавливается с помощью команды view(az,el)или view([az,el]), где az– угол азимута (от англ. azimuth – поворот относительно оси z) и el – угол возвышения (от англ. elevation – поворот относительно оси х). Значения углов задают в градусах. По умолчанию , . Эти параметры устанавливаются командой view(3). Другой вариант ввода параметров – включение вектора углов поворота в графические функции: mesh(z,[az el]).
Пример. Вращение относительно оси х при фиксированном угле азимута:
» az=-37.5;
» for k=0:12, mesh(r,[az k*5]), grid, pause, end
Поворот осей внутри пространственного объекта на произвольные углы можно осуществлять с помощью мыши по команде rotate3d on – включение режима вращения: внутри фигуры появляется анимационный параллелепипед, изменяющий положение при движении мыши; в левом нижнем углу отображаются текущие значения углов азимута и возвышения. По команде rotate3d offотключается режим вращения.
Упражнение. Создать трехмерную фигуру и изменять ее положение с помощью команды rotate3d on. После выполнения упражнения отменить режим (rotate3d или rotate3d off).
Линии уровня, соответствующие сечению пространственного тела горизонтальными плоскостями на различной высоте, выводятся с помощью функции contour:
contour(z) – число линий уровня по умолчанию, без учета диапазона значений x и y;
contour(z,n)– то же, но с заданным числом линий уровня n;
contour(x,y,z), contour(x,y,z,n)– то же, с учетом диапазона значений x и y.
В предыдущих разделах вычисления проводились в соответствии с определенной последовательностью команд, обрабатываемых интерпретатором и немедленно выполняемых. Этот режим, удобный при проведении оперативных вычислений, тем не менее имеет недостатки:
– не всегда удается повторить предыдущие команды при изменении исходных данных без повторного набора операторов;
– отсутствует возможность сохранения последовательности вычислений и их модификации в случае необходимости.
Для проведения многократных расчетов по определенному алгоритму составляют программы. Пользователь может ввести собственные внешние процедуры и функции, которые автоматически подключаются к выполняемой программе. В этом проявляется свойство расширимости системы MATLAB. Создаваемые функции могут быть в дальнейшем включены в число встроенных функций. Помимо команд и функций, используемых в режиме прямых вычислений (входной язык MATLAB), при программировании используются и специфические возможности языка программирования, который относится к числу проблемно ориентированных языков весьма высокого уровня.
В связи с тем, что в системе MATLAB реализуется механизм интерпретации, исполняемые программы (.exe) не создаются, т.е. программы могут работать только в среде MATLAB. Однако для версий MATLAB 5.х разработаны компиляторы, транслирующие программы MATLAB в коды алгоритмических языков С и С++.
В системе MATLAB различают script-файлы («сценарии») и внешние функции; и те и другие хранятся на диске как m-файлы, т.е. файлы, имеющие расширение *.m. Использование внешних функций позволяет создавать структурированные программы, имеющие сходство с программами, написанными на языках Паскаль и Бейсик, без применения меток. Последовательность операторов – такая же, как при прямых вычислениях (интерпретатор MATLAB просматривает строки программы одну за другой, в естественном порядке).
Script-файлы по существу представляют собой основные (вызывающие) программы, поскольку они не используют входные данные как аргументы или параметры и не возвращают выходные данные, но могут обращаться к внешним функциям. Имена сценариев нельзя применять в качестве операндов и аргументов функций. М-функции используются как обычные встроенные функции MATLAB, и их имена можно применять в вычислительных операторах.
Структура script-файла:
<Script>
% Имя файла <и назначение программы>
<% Дополнительный (поясняющий) комментарий>
Тело файла
Символ % используется для обозначения комментариев. Комментарии, помещаемые в начале текста файла, выводятся на экран по команде help name. Остальные комментарии могут фигурировать в любом месте программы (при выполнении программы они интерпретатором игнорируются). В текстах комментариев допускается использование кириллицы.
Локальные функции (подфункции), применение которых разрешено в версиях MATLAB 5.х, могут быть расположены в любом порядке и вызываются первой (основной) функцией. Помимо локальных могут быть также объявлены и глобальные переменные (в script-файле). В списке они отделяются друг от друга пробелами:
global var1 var2 …
В дальнейшем будем предполагать, что создаваемые m-файлы будут сохраняться в пользовательской папке, например, D:\USER.