Общие сведения о проекциях представления

Два типа проекций

MATLAB® Графика поддерживает ортогональные и перспективные типы проекций для отображения 3-D графики. Выбранная графика зависит от типа отображаемой графики:

  • orthographic проектирует объем просмотра как прямоугольный параллелепипед (т.е. прямоугольник, противоположные стороны которого параллельны). Относительное расстояние от камеры не влияет на размер объектов. Этот тип проекции полезен, когда важно сохранять фактический размер объектов и углы между объектами.

  • перспектива проецирует объем просмотра как усечение пирамиды (пирамиды, вершина которой была срезана параллельно основе). Расстояние вызывает предвидение; объекты, расположенные дальше от камеры, выглядят меньше. Этот тип проекции полезен, когда вы хотите отобразить реалистичные представления реальных объектов.

По умолчанию MATLAB отображает объекты с помощью ортогональной проекции. Вы можете задать тип проекции, используя camproj команда.

Эти фотографии показывают чертеж самосвала (созданный с patch) и объемная поверхностная диаграмма математической функции, оба с использованием ортогональной проекции.

Если вы измеряете ширину передней и задней граней коробки, ограждающей самосвал, вы увидите, что они имеют одинаковый размер. Эта картина выглядит неестественной, потому что ей не хватает видимой перспективы, которую вы видите при взгляде на реальные объекты с глубиной. С другой стороны, объемная поверхностная диаграмма точно указывает значения функции в прямоугольном пространстве.

Теперь посмотрите на те же графические объекты с добавленной перспективой. Самосвал выглядит более естественным, потому что фрагменты грузовика, которые находятся дальше от средства просмотра, выглядят меньше. Эта проекция имитирует работу человеческого зрения. С другой стороны, объемная поверхностная диаграмма выглядит искаженным.

Типы проекций и расположение камеры

По умолчанию MATLAB настраивает CameraPosition, CameraTarget, и CameraViewAngle свойства для указания камеры в центре сцены и включения всех графических объектов в оси. Если вы расположите камеру так, чтобы за камерой были графические объекты, отображаемая сцена может быть затронута обеими осями Projection свойство и рисунок Renderer свойство. Ниже результирующие взаимодействия между типом проекции и методом визуализации.

 

Орфографический

Перспектива

OpenGL®

CameraViewAngle определяет степень сцены в CameraTarget.

CameraViewAngle определяет степень сцены из CameraPosition к бесконечности.

Живописцы

Все объекты отображаются независимо от CameraPosition.

Не рекомендуемый, если графические объекты находятся за CameraPosition.

Эта схема иллюстрирует, что вы видите (серая область) при использовании ортогональной проекции и OpenGL. Все перед камерой видно.

В перспективной проекции вы видите только то, что видно в конусе угла поля зрения камеры.

Метод визуализации живописцев менее подходит для перемещения камеры в трехмерном пространстве, потому что MATLAB не зажимается вдоль оси просмотра. Метод ортогональной проекции в живописцах приводит к тому, что все объекты, содержащиеся в сцене, становятся видимыми независимо от положения камеры.

Печать 3-D сценах

Те же эффекты, которые описаны в предыдущем разделе, происходят в hardcopy output. Вы должны задать печать opengl явно, чтобы получить результаты, отображенные на экране (используйте - opengl опция со print команда).