camzoom(p) – значение входного аргумента р, большее единицы, приводит к увеличению угла обзора, если р меньше единицы, но больше нуля, то угол обзора уменьшается. Свойство cameraviewAngleModeпринимает значение 'manual', а значение cameraviewAngle изменияется соответствующим образом. Пример применения camzoom приведен в листинге 5.
Листинг 5. Изменение угла обзора объекта
sphere for i = 10:–1:3 pause(0.05) camzoom(1/l0) end for i = 3:10 pause(0.05) camzoom(10) end Изменение угла обзора камерой объекта, расположенного на осях с указателем Нах производится при помоши обращения camzoom (Нах,р). □ daspect – изменение или получение масштаба осей.
▪ d = daspect – возвращает вектор d,определяющий масштаб текущих осей.
▪ daspect([x у z]) – установка соотношения масштабов текущих осей, важна пропорция элементов вектора, например: daspect([1 2 1]) и daspect([10 20 10]) приводят к одинаковым результатам. Свойство DataAspectRatio Принимает значение [х у z], a DаtaAspectRatioMode – 'manual'. При отображении реальных геометрических объектов для сохранения соотношения геометрических размеров следует устанааиивать [1,1,1], например:
>> sphere >> daspect([1 1 1]) ▪ darmode = daspect('mode') – выходной аргумент является строковой переменной и содержит значение ('auto' или 'manual') свойства DataAspectRatioMode.
▪ daspect (mode) – устанавливает режим выбора масштаба осей, т.е.свойство DаtaAspectRatioMode принимает значение mode ('auto' или 'manual').
▪ daspect(Hax,...) – изменение или получение масштаба осей с указателем Hax.
□ pbaspect – установка или определение соотношения длин осей.
▪ v = pbaspect – в вектор v записывается соотношение длин текущих осей.
▪ pbaspect([x у z]) – установка соотношения длин текущих осей, важна пропорция элементов вектора, например: pbaspect([1 1 1]) и pbaspect([10 10 10]) приводят к одинаковым результатам. Свойство PlotBoxAspectRatio принимает значение [х у z], а PlotBoxAspectRatioMode – 'manual'.
▪ pbarmode = pbaspect('mode') – выходной аргумент pbarmode является строковой переменной и содержит значение ('auto' или 'manual') свойства plotBoxAspeсtRatioMode.
▪ pbaspect (mode) – устанавливает режим выбора соотношения длин осей, т. е. свойство PlotBoxAspectRatioMode принимает значение mode ('auto' или 'manual').
▪ pbaspect (Hax,...) – изменение или получение соотношения длин осей с указателем нах.
□ view – установка или определение точки обзора.
▪ view(az,el) или view([az,el]) – задание положения точки обзора при помощи азимута и угла склонения, выраженных в градусах.
▪ view(2) – задание двумерных осей с Az = 0, EL = 90 (наблюдатель смотрит на оси сверху, вдоль оси z).
▪ view(3) – изменение вида осей с азимутом и углом склонения, выбираемыми по умолчанию: AZ = –37.5, EL = 30.
▪ [az,el] = view – получение текущих значений азимута и угла склонения.
▪ view(t) – установка точки обзора при помоши матрицы преобразования T, size(T) = [4 4] (см. viewmtx).
▪ T = view – получение текушей матрицы преобразования значений азимута и угла склонения.
□ viewmtx – вычисление матрицы преобразования.
▪ T = viewratx(az,el) – возврзщает матрицу ортогонального проектирования для отображения трехмерных объектов на плоскости (экране монитора) в соответствии с точкой обзора, определяемой азимутом и углом склонения (см. view). Сама точка обзора на текущих осях не изменяется. Для получения матрицы проектирования, соответствующей текущему положению точки обзора, следует использовать обращение T = view. ▪ T = viewmtx(az,el,phi) – возвращает матрицу проектирования, обеспечивающую перспективное изображение, Третий входной аргумент phi определяет величину перспективы, значение phi = 0 соответствует ортогональной проекции.
Матрица т преобразует векторы длины четыре [х у z 1]' к векторам, первых два компонента которых, поделенные на четвертую, являются искомыми проекциями на плоскость экрана. Листинг 6 содержит пример изображения куба с различной перспективой.
Листинг 6. Изменение перспективы изображения