Понимание проекций представления

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

MATLAB® Graphics поддерживает и типы ортогональной и перспективной проекции для отображения 3-D графики. Тот, который вы выбираете, зависит от типа графики, которую вы отображаете:

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

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

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

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

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

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

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

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

 

Ортогональный

Перспектива

OpenGL®

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

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

Живописцы

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

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

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

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

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

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

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