Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Processing:Справочник языка Processing/frustum()

Материал из Онлайн справочника
Перейти к: навигация, поиск


Перевод: Максим Кузьмин (Cubewriter)
Перевел 2253 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


frustum() [1]

Обозначение

frustum()

Описание

Задает матрицу перспективы.

Слово «frustum» переводится как «пирамида с усеченным конусом». В результате «глаз» пользователя находится как бы в верхней части этой пирамиды (т.е. в месте, где у нее усечен конус) и смотрит внутрь нее, а шесть граней пирамиды выступают плоскостями для 3D-сцены, которую нужно отрендерить. В результате все, что будет находиться в пределах этих 6 граней, будет видимо и отрендерено, а все, что за их пределами – видимо не будет.

Метод frustrum() позволяет менять перспективу в отрендериваемой сцене. Впрочем, в большинстве случаев ее легче поменять при помощи метода perspective().

Имейте в виду, что значение near должно быть выше нуля (потому что ближняя плоскость пирамиды не может находиться за «глазом» пользователя). Аналогично значение far должно быть больше значения near (потому что дальняя – т.е. far – плоскость должна находиться дальше от «глаза» пользователя, чем ближняя – т.е. near – плоскость).

Метод frustum() работает аналогично методу glFrustum() в OpenGL, но за исключением того, что он удаляет текущую матрицу перспективы, а не умножает себя на нее.

Синтаксис

frustum(left, right, bottom, top, near, far)

Параметры

left   – координата для левой грани пирамиды. Тип данных – float
right  – координата для правой грани пирамиды. Тип данных – float
bottom – координата для нижней грани пирамиды. Тип данных – float
top    – координата для верхней грани пирамиды. Тип данных – float
near   – координата для ближней грани пирамиды (должна быть больше «0»). Тип данных – float
far    – координата для дальней грани пирамиды (должна быть больше, чем значение в параметре near). Тип данных – float

Возвращаемое значение

void

Пример

Processing frustum 0.png


  1. size(100, 100, P3D);  
  2. noFill();
  3. background(204);
  4. frustum(-10, 0, 0, 10, 10, 200);
  5. rotateY(PI/6);
  6. box(45);

См.также

Внешние ссылки

  1. processing.org - frustum()