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

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


Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Cat poo.png Черновик


spotLight() [1]

Обозначение

spotLight()

Описание

Добавляет прожекторное освещение. Метод spotLight() должен находиться внутри draw(), чтобы функционировать в течение всего времени работы зацикленной программы. Если поместить его в блок setup(), он будет работать только в течение первой итерации зацикленной программы. Параметры v1, v2 и v3 интерпретируются либо как значения RGB, либо как значения HSB – в зависимости от текущего цветового режима. Параметры x, y и z задают позицию источника света, а nx, ny и nz – направление света. Параметр angle задает угол конуса прожектора, а concentration – интенсивность света в центре этого конуса.

Синтаксис

spotLight(v1, v2, v3, x, y, z, nx, ny, nz, angle, concentration)

Параметры

v1             красный цвет или цветовой тон (зависит от текущего цветового режима). Тип данных  float
v2             зеленый цвет или насыщенность (зависит от текущего цветового режима). Тип данных  float
v3             синий цвет или яркость (зависит от текущего цветового режима). Тип данных  float
x              координата X источника света. Тип данных  float
y              координата Y источника света. Тип данных  float
z              координата Z источника света. Тип данных  float
nx             направление света по оси X. Тип данных  float
ny             направление света по оси Y. Тип данных  float
nz             направление света по оси Z. Тип данных  float
angle          угол прожекторного конуса. Тип данных  float
concentration  значение, задающее интенсивность света в центре конуса. Тип данных  float

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

void

Пример

№1

Processing spotLight 0.png


size(100, 100, P3D);
background(0);
noStroke();
spotLight(51, 102, 126, 80, 20, 40, -1, 0, 0, PI/2, 2);
translate(20, 50, 0);
sphere(30);

№2

Processing spotLight 1.png


size(100, 100, P3D); 
int concentration = 600;  // Try 1 -> 10000
background(0); 
noStroke(); 
spotLight(51, 102, 126, 50, 50, 400, 
          0, 0, -1, PI/16, concentration); 
translate(80, 50, 0); 
sphere(30);

См.также

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