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
, ty
tz
]. В отличие от реальной жизни, легкий поток точечного света не уменьшается с расстоянием до источника света.
По умолчанию белый свет создается. Другие цвета могут быть выбраны атрибутом 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 или арифметическое выражение параметра анимации
|
|
Параметр анимации, заданный как |