exponenta event banner

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

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

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

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

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

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

На этих рисунках показан чертеж самосвала (создан с помощью patch) и график поверхности математической функции с использованием ортогональной проекции.

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

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

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

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

 

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

Перспектива

OpenGL ®

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

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

Живописцы

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

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

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

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

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

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

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