график::

Точечный свет

Блокноты 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 сцена освещается несколькими источниками света, которые устанавливает автоматически и не может управлять пользователь. Cf. страница справки 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положения камер, световых сигналов и текстовых объектов 
PositionXx-положения камер, световых сигналов и текстовых объектов 
PositionYy-положения камер, световых сигналов и текстовых объектов 
PositionZz-положения камер, световых сигналов и текстовых объектов 
SpotAngleвводный угол светового конуса точечного света 
Targetцелевая точка света 
TargetXцелевая точка света, x компонент 
TargetYцелевая точка света, y компонент 
TargetZцелевая точка света, z компонент 
TimeEndвремя окончания анимации10.0
TimeBeginвремя начала анимации0.0
TimeRangeоперативный промежуток анимации0.0 .. 10.0
VisibleвидимостьTRUE

Примеры

Пример 1

Мы создаем три белых поверхности и освещаем их двумя анимированными белыми точечными световыми сигналами и некоторым рассеянным светом. Точечные световые сигналы обозначаются небольшими конусами:

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:

Параметры

px, py, pz

Координаты положения: численные значения или арифметические выражения параметра анимации a.

px, py, pz эквивалентен атрибутам Position, PositionX, PositionY, PositionZ.

tx, ty, tz

Координаты точки свет сияют к: численные значения или арифметические выражения параметра анимации a.

tx, ty, tz эквивалентен атрибутам Target, TargetX, TargetY, TargetZ.

angle

Вводный угол светового конуса в радианах: численное значение между 0 и π или арифметическое выражение параметра анимации a.

angle эквивалентен атрибуту SpotAngle.

intensity

Интенсивность света: численное значение между 0 и 1 или арифметическое выражение параметра анимации a.

intensity эквивалентен атрибуту LightIntensity.

a

Параметр анимации, заданный как a = amin..amax, где amin является начальным значением параметров и amax, является итоговым значением параметров.

Смотрите также

Функции MuPAD

MuPAD графические примитивы

Для просмотра документации необходимо авторизоваться на сайте