SpotLight Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Светлый объект, который проектирует его эффект в конусообразной области вдоль указанного направления.
public ref class SpotLight sealed : System::Windows::Media::Media3D::PointLightBase
public sealed class SpotLight : System.Windows.Media.Media3D.PointLightBase
type SpotLight = class
inherit PointLightBase
Public NotInheritable Class SpotLight
Inherits PointLightBase
- Наследование
Примеры
В следующем примере показано, как создать SpotLight в трехмерной сцене.
<!-- A SpotLight is used to light the scene. The InnerConeAngle and OuterConeAngle are used
to control the size of the light cone created by the SpotLight. The Direction and Position
properties determine where the SpotLight is pointing in the scene. In this example, the Position
of the SpotLight is set so that the SpotLight is only illuminating the upper right-hand corner
of the 3D object. -->
<ModelVisual3D>
<ModelVisual3D.Content>
<SpotLight x:Name="mySpotLight" InnerConeAngle="20" OuterConeAngle="20" Color="#FFFFFF" Direction="0,0,-1"
Position="1,1,6" Range="20"/>
</ModelVisual3D.Content>
</ModelVisual3D>
В следующем коде показан весь пример.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<DockPanel>
<Viewbox>
<Canvas Width="321" Height="201">
<!-- The Viewport3D provides a rendering surface for 3-D visual content. -->
<Viewport3D ClipToBounds="True" Width="150" Height="150" Canvas.Left="0" Canvas.Top="10">
<!-- Defines the camera used to view the 3D object. -->
<Viewport3D.Camera>
<PerspectiveCamera Position="0,0,2" LookDirection="0,0,-1" FieldOfView="60" />
</Viewport3D.Camera>
<!-- The ModelVisual3D children contain the 3D models -->
<Viewport3D.Children>
<!-- A SpotLight is used to light the scene. The InnerConeAngle and OuterConeAngle are used
to control the size of the light cone created by the SpotLight. The Direction and Position
properties determine where the SpotLight is pointing in the scene. In this example, the Position
of the SpotLight is set so that the SpotLight is only illuminating the upper right-hand corner
of the 3D object. -->
<ModelVisual3D>
<ModelVisual3D.Content>
<SpotLight x:Name="mySpotLight" InnerConeAngle="20" OuterConeAngle="20" Color="#FFFFFF" Direction="0,0,-1"
Position="1,1,6" Range="20"/>
</ModelVisual3D.Content>
</ModelVisual3D>
<ModelVisual3D>
<ModelVisual3D.Content>
<GeometryModel3D>
<!-- The geometry specifies the shape of the 3D plane. In this sample, a flat sheet is created. -->
<GeometryModel3D.Geometry>
<MeshGeometry3D
TriangleIndices="0,1,2 3,4,5 "
Normals="0,0,1 0,0,1 0,0,1 0,0,1 0,0,1 0,0,1 "
TextureCoordinates="0,0 1,0 1,1 1,1 0,1 0,0 "
Positions="-0.5,-0.5,0.5 0.5,-0.5,0.5 0.5,0.5,0.5 0.5,0.5,0.5 -0.5,0.5,0.5 -0.5,-0.5,0.5 " />
</GeometryModel3D.Geometry>
<!-- The material specifies the material applied to the 3D object. In this sample a linear gradient
covers the surface of the 3D object.-->
<GeometryModel3D.Material>
<MaterialGroup>
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
<LinearGradientBrush.GradientStops>
<GradientStop Color="Yellow" Offset="0" />
<GradientStop Color="Red" Offset="0.25" />
<GradientStop Color="Blue" Offset="0.75" />
<GradientStop Color="LimeGreen" Offset="1" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</MaterialGroup>
</GeometryModel3D.Material>
</GeometryModel3D>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D.Children>
</Viewport3D>
</Canvas>
</Viewbox>
</DockPanel>
</Page>
Комментарии
SpotLight является своего рода PointLight, так как он имеет позицию, диапазон и аттенуацию. Однако SpotLight также позволяет управлять направлением, фигурой и другими свойствами конуса эффекта света.
Укажите значения для OuterConeAngle (за пределами которого ничего не освещается) и InnerConeAngle (в пределах которых все полностью освещено), чтобы изменить эффект внимания.
Освещение между внешней конусом и внешним конусом выпадает линейно.
Конструкторы
SpotLight() |
Инициализирует новый экземпляр класса SpotLight. |
SpotLight(Color, Point3D, Vector3D, Double, Double) |
Инициализирует новый экземпляр класса SpotLight с помощью указанного цвета, положения, направления и конуса. |
Поля
DirectionProperty |
Определяет свойство зависимостей Direction. |
InnerConeAngleProperty |
Определяет свойство зависимостей InnerConeAngle. |
OuterConeAngleProperty |
Определяет свойство зависимостей OuterConeAngle. |
Свойства
Bounds |
Возвращает Rect3D, указывающий ограничивающий прямоугольник, выровненный по оси для этого Model3D. (Унаследовано от Model3D) |
CanFreeze |
Возвращает значение, указывающее, можно ли изменить объект. (Унаследовано от Freezable) |
Color |
Получает или задает цвет света. (Унаследовано от Light) |
ConstantAttenuation |
Получает или задает константное значение, по которому интенсивность света уменьшается на расстоянии. (Унаследовано от PointLightBase) |
DependencyObjectType |
Возвращает DependencyObjectType, который упаковывает тип СРЕДЫ CLR этого экземпляра. (Унаследовано от DependencyObject) |
Direction |
Возвращает или задает Vector3D, указывающий направление, в котором SpotLight проектирует свет. |
Dispatcher |
Возвращает Dispatcher, с которым связан этот DispatcherObject. (Унаследовано от DispatcherObject) |
HasAnimatedProperties |
Возвращает значение, указывающее, связан ли один или несколько объектов AnimationClock с любым из свойств зависимостей этого объекта. (Унаследовано от Animatable) |
InnerConeAngle |
Возвращает или задает угол, указывающий пропорцию конусообразной проекции SpotLight, в которой свет полностью освещает объекты в сцене. |
IsFrozen |
Возвращает значение, указывающее, является ли объект изменяемым в настоящее время. (Унаследовано от Freezable) |
IsSealed |
Возвращает значение, указывающее, запечатан ли этот экземпляр (только для чтения). (Унаследовано от DependencyObject) |
LinearAttenuation |
Возвращает или задает значение, указывающее линейное изменение интенсивности света на расстоянии. (Унаследовано от PointLightBase) |
OuterConeAngle |
Получает или задает угол, указывающий пропорцию конусообразной проекции SpotLight, за пределами которой свет не освещает объекты в сцене. |
Position |
Получает или задает Point3D, указывающий положение света в мировом пространстве. (Унаследовано от PointLightBase) |
QuadraticAttenuation |
Возвращает или задает значение, указывающее кратность эффекта света на расстоянии, вычисляемое квадратной операцией. (Унаследовано от PointLightBase) |
Range |
Получает или задает расстояние, за пределами которого свет не влияет. (Унаследовано от PointLightBase) |
Transform |
Возвращает или задает набор Transform3D в модели. (Унаследовано от Model3D) |
Методы
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Применяет AnimationClock к указанному DependencyProperty. Если свойство уже анимировано, используется указанный HandoffBehavior. (Унаследовано от Animatable) |
ApplyAnimationClock(DependencyProperty, AnimationClock) |
Применяет AnimationClock к указанному DependencyProperty. Если свойство уже анимировано, используется SnapshotAndReplace поведение передачи. (Унаследовано от Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Применяет анимацию к указанному DependencyProperty. Анимация запускается при отрисовки следующего кадра. Если указанное свойство уже анимировано, используется указанный HandoffBehavior. (Унаследовано от Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline) |
Применяет анимацию к указанному DependencyProperty. Анимация запускается при отрисовки следующего кадра. Если указанное свойство уже анимировано, используется поведение SnapshotAndReplace передачи. (Унаследовано от Animatable) |
CheckAccess() |
Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject. (Унаследовано от DispatcherObject) |
ClearValue(DependencyProperty) |
Очищает локальное значение свойства. Свойство для очистки указывается идентификатором DependencyProperty. (Унаследовано от DependencyObject) |
ClearValue(DependencyPropertyKey) |
Очищает локальное значение свойства только для чтения. Свойство для очистки указывается DependencyPropertyKey. (Унаследовано от DependencyObject) |
Clone() |
Создает модификируемый клон этого SpotLight, делая глубокие копии значений этого объекта. При копировании свойств зависимостей этот метод копирует ссылки на ресурсы и привязки данных (но они больше не могут разрешаться), но не анимации или их текущие значения. |
CloneCore(Freezable) |
Делает экземпляр клоном (глубокой копией) указанного Freezable с использованием базовых (не анимированных) значений свойств. (Унаследовано от Freezable) |
CloneCurrentValue() |
Создает модификаторный клон этого объекта SpotLight, делая глубокие копии текущих значений этого объекта. Ссылки на ресурсы, привязки данных и анимации не копируются, но их текущие значения. |
CloneCurrentValueCore(Freezable) |
Делает экземпляр модификируемым клоном (глубокой копией) указанного Freezable с использованием текущих значений свойств. (Унаследовано от Freezable) |
CoerceValue(DependencyProperty) |
Принуждает значение указанного свойства зависимостей. Это достигается путем вызова любой функции CoerceValueCallback, указанной в метаданных свойства для свойства зависимостей, так как он существует в вызывающей DependencyObject. (Унаследовано от DependencyObject) |
CreateInstance() |
Инициализирует новый экземпляр класса Freezable. (Унаследовано от Freezable) |
CreateInstanceCore() |
При реализации в производном классе создает новый экземпляр производного класса Freezable. (Унаследовано от Freezable) |
Equals(Object) |
Определяет, эквивалентен ли предоставленный DependencyObject текущему DependencyObject. (Унаследовано от DependencyObject) |
Freeze() |
Делает текущий объект неизменяемым и задает для свойства IsFrozen значение |
FreezeCore(Boolean) |
Делает этот объект Animatable неизменимым или определяет, может ли он быть изменен. (Унаследовано от Animatable) |
GetAnimationBaseValue(DependencyProperty) |
Возвращает неанимированное значение указанного DependencyProperty. (Унаследовано от Animatable) |
GetAsFrozen() |
Создает замороженную копию Freezable, используя базовые (не анимированные) значения свойств. Так как копия заморожена, все замороженные вложенные объекты копируются по ссылке. (Унаследовано от Freezable) |
GetAsFrozenCore(Freezable) |
Делает экземпляр замороженным клоном указанного Freezable с использованием базовых (не анимированных) значений свойств. (Унаследовано от Freezable) |
GetCurrentValueAsFrozen() |
Создает замороженную копию Freezable с использованием текущих значений свойств. Так как копия заморожена, все замороженные вложенные объекты копируются по ссылке. (Унаследовано от Freezable) |
GetCurrentValueAsFrozenCore(Freezable) |
Делает текущий экземпляр замороженным клоном указанного Freezable. Если объект имеет анимированные свойства зависимостей, их текущие анимированные значения копируются. (Унаследовано от Freezable) |
GetHashCode() |
Возвращает хэш-код для этого DependencyObject. (Унаследовано от DependencyObject) |
GetLocalValueEnumerator() |
Создает специализированный перечислитель для определения того, какие свойства зависимостей имеют локальные значения для этого DependencyObject. (Унаследовано от DependencyObject) |
GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
GetValue(DependencyProperty) |
Возвращает текущее эффективное значение свойства зависимостей для этого экземпляра DependencyObject. (Унаследовано от DependencyObject) |
InvalidateProperty(DependencyProperty) |
Повторно вычисляет эффективное значение для указанного свойства зависимостей. (Унаследовано от DependencyObject) |
MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
OnChanged() |
Вызывается при изменении текущего объекта Freezable. (Унаследовано от Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Этот член поддерживает инфраструктуру Windows Presentation Foundation (WPF) и не предназначен для использования непосредственно из кода. (Унаследовано от Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Убедитесь, что для элемента данных DependencyObjectType только что заданы соответствующие указатели контекста. (Унаследовано от Freezable) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Переопределяет реализацию DependencyObjectOnPropertyChanged(DependencyPropertyChangedEventArgs) для вызова всех обработчиков Changed в ответ на изменение свойства зависимостей типа Freezable. (Унаследовано от Freezable) |
ReadLocalValue(DependencyProperty) |
Возвращает локальное значение свойства зависимостей, если оно существует. (Унаследовано от DependencyObject) |
ReadPreamble() |
Гарантирует, что доступ к Freezable осуществляется из допустимого потока. Наследующие Freezable должны вызывать этот метод в начале любого API, который считывает элементы данных, которые не являются свойствами зависимостей. (Унаследовано от Freezable) |
SetCurrentValue(DependencyProperty, Object) |
Задает значение свойства зависимостей, не изменяя его источник значений. (Унаследовано от DependencyObject) |
SetValue(DependencyProperty, Object) |
Задает локальное значение свойства зависимостей, указанное его идентификатором свойства зависимостей. (Унаследовано от DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
Задает локальное значение свойства зависимостей только для чтения, указанное идентификатором DependencyPropertyKey свойства зависимостей. (Унаследовано от DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
Возвращает значение, указывающее, должны ли процессы сериализации сериализовать значение для указанного свойства зависимостей. (Унаследовано от DependencyObject) |
ToString() |
Создает строковое представление модели3D. (Унаследовано от Model3D) |
ToString(IFormatProvider) |
Создает строковое представление модели3D. (Унаследовано от Model3D) |
VerifyAccess() |
Принудительно применяет доступ к этому DispatcherObjectвызываемого потока. (Унаследовано от DispatcherObject) |
WritePostscript() |
Вызывает событие Changed для Freezable и вызывает его метод OnChanged(). Классы, производные от Freezable, должны вызывать этот метод в конце любого API, который изменяет элементы класса, которые не хранятся в качестве свойств зависимостей. (Унаследовано от Freezable) |
WritePreamble() |
Проверяет, что Freezable не заморожен и к которому осуществляется доступ из допустимого контекста потоков. Freezable наследующие должны вызывать этот метод в начале любого API, записывающего элементы данных, которые не являются свойствами зависимостей. (Унаследовано от Freezable) |
События
Changed |
Происходит при изменении Freezable или объекта, содержащего его. (Унаследовано от Freezable) |
Явные реализации интерфейса
IFormattable.ToString(String, IFormatProvider) |
Форматирует значение текущего экземпляра с помощью указанного формата. (Унаследовано от Model3D) |