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);

См.также

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