plot::SpotLightТочечный свет
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
plot::SpotLight([px, py, pz], [tx, ty, tz], angle, <intensity>, <a = amin .. amax>, options)
plot::SpotLight([px, py, pz], [tx, ty, tz], angle, intensity) генерирует точечный свет в положении px, py, pz, нацеленный на точку tx, ty, tz. Вводный угол светового конуса дан angle.
Каждая 3D сцена освещается несколькими источниками света, которые устанавливает автоматически и не может управлять пользователь. См. страница справки Lighting.
Если специальные световые эффекты желаемы, пользователь может создать альтернативные источники света различных типов, такие как plot::AmbientLight, plot::DistantLight, plot::PointLight, и plot::SpotLight.
Если по крайней мере один определяемый пользователем источник света вставляется в сцену (например, путем простой передачи световых объектов как входных параметров к plot команда), автоматические световые сигналы выключены, и определяемые пользователем световые сигналы используются, чтобы осветить сцену.
plot::SpotLight([px, py, pz], [tx, ty, tz], angle) создает точечный источник света в точке [px, py, pz] испускание светового конуса к точке [tx, tytz ]. В отличие от реальной жизни, легкий поток точечного света не уменьшается с расстоянием до источника света.
По умолчанию белый свет создается. Другие цвета могут быть выбраны атрибутом LightColor.
При использовании атрибута CameraCoordinates = TRUE, источник света фиксируется к камере. Это перемещается автоматически, когда камера перемещена.
Направленный свет, такой как plot::SpotLight создайте эффекты затенения, которые добавляют глубину в изображение.
Обычно, вы будете использовать точечные световые сигналы, чтобы подсветить специальные детали сцены. Для освещения целой сцены вам обычно будет нужен дополнительный неориентированный рассеянный свет типа plot::AmbientLight, также.
Обратите внимание на то, что все источники света создают гомогенный эффект подсветки для 3D треугольника. Таким образом реалистические эффекты затенения могут только быть достигнуты для поверхностей с достаточно прекрасной триангуляцией. Для функциональных графиков (plot::Function3d) и параметризованные поверхности (plot::Surface), прекрасная триангуляция создается достаточно высокими значениями XMesh, YMesh или UMesh, VMesh, соответственно.
| Атрибут | Цель | Значение по умолчанию |
|---|---|---|
CameraCoordinates | положение источников света относительно камеры? | FALSE |
Frames | количество систем координат в анимации | 50 |
LightColor | цвет света | RGB::White |
LightIntensity | интенсивность света | 1.0 |
Name | имя объекта графика (для браузера и легенды) | |
ParameterEnd | закончите значение параметра анимации | |
ParameterName | имя параметра анимации | |
ParameterBegin | начальное значение параметра анимации | |
ParameterRange | область значений параметра анимации | |
Position | положения камер, световых сигналов и текстовых объектов | |
PositionX | x-положения камер, световых сигналов и текстовых объектов | |
PositionY | y-положения камер, световых сигналов и текстовых объектов | |
PositionZ | z-положения камер, световых сигналов и текстовых объектов | |
SpotAngle | вводный угол светового конуса точечного света | |
Target | целевая точка света | |
TargetX | целевая точка света, x компонент | |
TargetY | целевая точка света, y компонент | |
TargetZ | целевая точка света, z компонент | |
TimeEnd | время окончания анимации | 10.0 |
TimeBegin | время начала анимации | 0.0 |
TimeRange | оперативный промежуток анимации | 0.0.. 10.0 |
Visible | видимость | TRUE |
Мы создаем три белых поверхности и освещаем их двумя анимированными белыми точечными световыми сигналами и некоторым рассеянным светом. Точечные световые сигналы обозначаются небольшими конусами:
s1 := plot::Surface([1, y, z], y = 0..1, z = 0..1):
s2 := plot::Surface([x, 1, z], x = 0..1, z = 0..1,
Submesh = [2, 2]):
s3 := plot::Surface([x, y, 0], x = 0..1, y = 0..1,
Submesh = [2, 2]):
ambientlight:= plot::AmbientLight(0.4):
spotlight1 := plot::SpotLight([1/3, a, 1/3], [1/3, 1, 1/3],
PI/5, a = 0..0.8):
c1 := plot::Cone(0, [1/3, a, 1/3],
0.2*tan(PI/10), [1/3, a + 0.2, 1/3],
a = 0..0.8, Color = RGB::Orange.[0.5]):
spotlight2 := plot::SpotLight([2/3, a, 2/3], [2/3, a, 0],
PI/4, a = 0.15..0.95):
c2 := plot::Cone(0, [2/3, a, 2/3],
0.2*tan(PI/8), [2/3, a, 2/3 - 0.2],
a = 0.15..0.95, Color = RGB::Orange.[0.5]):
plot(s1, s2, s3, FillColor = RGB::White,
FillColorType = Flat,
ambientlight, c1, spotlight1,
c2, spotlight2, Axes = Frame):
delete s1, s2, s3, c1, c2, ambientlight,
spotlight1, spotlight2:
|
Координаты положения: численные значения или арифметические выражения параметра анимации
|
|
Координаты точки свет сияют к: численные значения или арифметические выражения параметра анимации
|
|
Вводный угол светового конуса в радианах: численное значение между 0 и π или арифметическое выражение параметра анимации
|
|
Интенсивность света: численное значение между 0 и 1 или арифметическое выражение параметра анимации
|
|
Параметр анимации, заданный как |