Processing:Справочник языка Processing/frustum(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
Строка 4: Строка 4:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


{{Черновик}}
 


= frustum() <ref>[https://processing.org/reference/frustum_.html processing.org - frustum()]</ref>=
= frustum() <ref>[https://processing.org/reference/frustum_.html processing.org - frustum()]</ref>=
Строка 10: Строка 10:
==Обозначение==
==Обозначение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
frustum()
frustum()
</syntaxhighlight>
</syntaxhighlight>
Строка 28: Строка 28:
==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
frustum(left, right, bottom, top, near, far)
frustum(left, right, bottom, top, near, far)
</syntaxhighlight>
</syntaxhighlight>
Строка 34: Строка 34:
==Параметры==
==Параметры==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
left  – координата для левой грани пирамиды. Тип данных – float
left  – координата для левой грани пирамиды. Тип данных – float
right  – координата для правой грани пирамиды. Тип данных – float
right  – координата для правой грани пирамиды. Тип данных – float
Строка 45: Строка 45:
==Возвращаемое значение==
==Возвращаемое значение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
void
void
</syntaxhighlight>
</syntaxhighlight>
Строка 54: Строка 54:




<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
size(100, 100, P3D);   
size(100, 100, P3D);   
noFill();
noFill();
Строка 84: Строка 84:
|Высота логотипа издателя для schemaNewsArticle=45
|Высота логотипа издателя для schemaNewsArticle=45
}}
}}
{{Навигационная таблица/Справочник языка Processing}}
{{Навигационная таблица/Портал/Processing}}

Версия от 12:09, 20 мая 2023


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



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

Пример


size(100, 100, P3D);  
noFill();
background(204);
frustum(-10, 0, 0, 10, 10, 200);
rotateY(PI/6);
box(45);

См.также

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