SpotLight Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Objeto de luz que projeta seu efeito em uma área em forma de cone ao longo de uma direção especificada.
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
- Herança
Exemplos
O exemplo a seguir mostra como criar um SpotLight em uma cena 3D.
<!-- 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>
O código a seguir mostra todo o exemplo.
<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>
Comentários
SpotLight é uma espécie de PointLight, pois tem uma posição, um intervalo e uma atenuação. No entanto, SpotLight também permite controlar a direção, a forma e outras propriedades do cone do efeito da luz.
Especifique valores para OuterConeAngle (além dos quais nada é iluminado) e InnerConeAngle (dentro dos quais tudo está totalmente iluminado) para alterar o efeito de destaque.
A iluminação entre o lado de fora do cone interno e o cone externo cai linearmente.
Construtores
SpotLight() |
Inicializa uma nova instância da classe SpotLight. |
SpotLight(Color, Point3D, Vector3D, Double, Double) |
Inicializa uma nova instância da classe SpotLight usando a cor, a posição, a direção e os ângulos de cone especificados. |
Campos
DirectionProperty |
Identifica a propriedade de dependência Direction. |
InnerConeAngleProperty |
Identifica a propriedade de dependência InnerConeAngle. |
OuterConeAngleProperty |
Identifica a propriedade de dependência OuterConeAngle. |
Propriedades
Bounds |
Obtém um Rect3D que especifica a caixa delimitadora alinhada por eixo desse Model3D. (Herdado de Model3D) |
CanFreeze |
Obtém um valor que indica se o objeto pode se tornar não modificável. (Herdado de Freezable) |
Color |
Obtém ou define a cor da luz. (Herdado de Light) |
ConstantAttenuation |
Obtém ou define um valor constante pelo qual a intensidade da luz diminui com a distância. (Herdado de PointLightBase) |
DependencyObjectType |
Obtém o DependencyObjectType que encapsula o tipo CLR dessa instância. (Herdado de DependencyObject) |
Direction |
Obtém ou define um Vector3D que especifica a direção na qual o SpotLight projeta sua luz. |
Dispatcher |
Obtém o Dispatcher ao qual este DispatcherObject está associado. (Herdado de DispatcherObject) |
HasAnimatedProperties |
Obtém um valor que indica se um ou mais objetos AnimationClock está associado a qualquer uma das propriedades de dependência do objeto. (Herdado de Animatable) |
InnerConeAngle |
Obtém ou define um ângulo que especifica a proporção da projeção em forma de cone de um SpotLight na qual a luz ilumina totalmente objetos presentes na cena. |
IsFrozen |
Obtém um valor que indica se o objeto pode ser modificado no momento. (Herdado de Freezable) |
IsSealed |
Obtém um valor que indica se essa instância está validada no momento (somente leitura). (Herdado de DependencyObject) |
LinearAttenuation |
Obtém ou define um valor que especifica a diminuição linear da intensidade da luz com a distância. (Herdado de PointLightBase) |
OuterConeAngle |
Obtém ou define um ângulo que especifica a proporção da projeção em forma de cone de um SpotLight fora da qual a luz não ilumina objetos presentes na cena. |
Position |
Obtém ou define um Point3D que especifica a posição da luz no espaço de mundo. (Herdado de PointLightBase) |
QuadraticAttenuation |
Obtém ou define um valor que especifica a diminuição do efeito de luz com a distância, calculado por uma operação quadrática. (Herdado de PointLightBase) |
Range |
Obtém ou define a distância após a qual a luz não terá efeito. (Herdado de PointLightBase) |
Transform |
Obtém ou define a Transform3D definida no modelo. (Herdado de Model3D) |
Métodos
ApplyAnimationClock(DependencyProperty, AnimationClock) |
Aplica um AnimationClock ao DependencyProperty especificado. Se a propriedade já tiver sido animada, o comportamento de entrega de SnapshotAndReplace será usado. (Herdado de Animatable) |
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Aplica um AnimationClock ao DependencyProperty especificado. Se a propriedade já for animada, o HandoffBehavior especificado será usado. (Herdado de Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline) |
Aplica uma animação ao DependencyProperty especificado. A animação é iniciada quando o próximo quadro for renderizado. Se a propriedade especificada já tiver sido animada, o comportamento de entrega de SnapshotAndReplace será usado. (Herdado de Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Aplica uma animação ao DependencyProperty especificado. A animação é iniciada quando o próximo quadro for renderizado. Se a propriedade especifica já for animada, o HandoffBehavior especificado será usado. (Herdado de Animatable) |
CheckAccess() |
Determina se o thread de chamada tem acesso a este DispatcherObject. (Herdado de DispatcherObject) |
ClearValue(DependencyProperty) |
Limpa o valor local de uma propriedade. A propriedade a ser limpa é especificada por um identificador DependencyProperty. (Herdado de DependencyObject) |
ClearValue(DependencyPropertyKey) |
Limpa o valor local de uma propriedade somente leitura. A propriedade a ser limpa é especificada por um DependencyPropertyKey. (Herdado de DependencyObject) |
Clone() |
Cria um clone modificável desse SpotLight, fazendo cópias em profundidade dos valores do objeto. Ao copiar as propriedades de dependência, esse método copia associações de dados e referências de recurso (mas eles não podem mais resolver), mas não animações ou seus valores atuais. |
CloneCore(Freezable) |
Faz com que a instância seja um clone (cópia em profundidade) do Freezable especificado usando valores de propriedade base (não animados). (Herdado de Freezable) |
CloneCurrentValue() |
Cria um clone modificável desse objeto SpotLight, fazendo cópias em profundidade dos valores do objeto atual. Referências a recursos, vinculações de dados e animações não são copiadas, mas seus valores atuais são. |
CloneCurrentValueCore(Freezable) |
Torna a instância um clone modificável (cópia em profundidade) do Freezable especificado usando os valores de propriedade atuais. (Herdado de Freezable) |
CoerceValue(DependencyProperty) |
Converte o valor da propriedade de dependência especificada. Isso é feito invocando qualquer função CoerceValueCallback especificada nos metadados de propriedade para a propriedade de dependência, visto que ela existe na chamada a DependencyObject. (Herdado de DependencyObject) |
CreateInstance() |
Inicializa uma nova instância da classe Freezable. (Herdado de Freezable) |
CreateInstanceCore() |
Quando implementado em uma classe derivada, cria uma nova instância da classe derivada Freezable. (Herdado de Freezable) |
Equals(Object) |
Determina se um DependencyObject fornecido é equivalente ao DependencyObject atual. (Herdado de DependencyObject) |
Freeze() |
Torna o objeto atual não modificável e define sua propriedade IsFrozen para |
FreezeCore(Boolean) |
Faz com que este objeto Animatable não seja modificável ou determina se ele pode se tornar não modificável. (Herdado de Animatable) |
GetAnimationBaseValue(DependencyProperty) |
Retorna o valor não animado do DependencyProperty especificado. (Herdado de Animatable) |
GetAsFrozen() |
Cria uma cópia congelada o Freezable usando valores de propriedade base (não animadas). Já que a cópia está congelada, quaisquer subobjetos congelados são copiados por referência. (Herdado de Freezable) |
GetAsFrozenCore(Freezable) |
Torna a instância um clone congelado do Freezable especificado usando valores de propriedade base (não animados). (Herdado de Freezable) |
GetCurrentValueAsFrozen() |
Cria uma cópia congelada do Freezable usando valores de propriedade atuais. Já que a cópia está congelada, quaisquer subobjetos congelados são copiados por referência. (Herdado de Freezable) |
GetCurrentValueAsFrozenCore(Freezable) |
Torna a instância atual um clone congelado do Freezable especificado. Se o objeto tiver propriedades de dependência animadas, seus valores animados atuais serão copiados. (Herdado de Freezable) |
GetHashCode() |
Obtém o código hash para esse DependencyObject. (Herdado de DependencyObject) |
GetLocalValueEnumerator() |
Cria um enumerador especializado para determinar quais propriedades de dependência têm valores definidos localmente nessa DependencyObject. (Herdado de DependencyObject) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
GetValue(DependencyProperty) |
Retorna o valor efetivo atual de uma propriedade de dependência nessa instância de um DependencyObject. (Herdado de DependencyObject) |
InvalidateProperty(DependencyProperty) |
Reavalia o valor efetivo para a propriedade de dependência especificada. (Herdado de DependencyObject) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
OnChanged() |
Chamado quando o objeto Freezable atual é modificado. (Herdado de Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Garante que os ponteiros de contexto apropriados sejam estabelecidos para um membro de dados DependencyObjectType que foi recém-definido. (Herdado de Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Esse membro dá suporte à infraestrutura de Windows Presentation Foundation (WPF) e não se destina a ser usado diretamente do seu código. (Herdado de Freezable) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Substitui a implementação DependencyObject de OnPropertyChanged(DependencyPropertyChangedEventArgs) para também invocar quaisquer manipuladores Changed em resposta à alteração de uma propriedade de dependência do tipo Freezable. (Herdado de Freezable) |
ReadLocalValue(DependencyProperty) |
Retorna o valor local de uma propriedade de dependência, local, se houver. (Herdado de DependencyObject) |
ReadPreamble() |
Garante que o Freezable esteja sendo acessado de um thread válido. Herdeiros do Freezable devem chamar esse método no início de qualquer API que lê membros de dados que não são propriedades de dependência. (Herdado de Freezable) |
SetCurrentValue(DependencyProperty, Object) |
Define o valor da propriedade de dependência sem alterar a origem do valor. (Herdado de DependencyObject) |
SetValue(DependencyProperty, Object) |
Define o valor local de uma propriedade de dependência, especificada pelo identificador da propriedade de dependência. (Herdado de DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
Define o valor de uma propriedade de dependência somente leitura, especificada pelo identificador DependencyPropertyKey da propriedade de dependência. (Herdado de DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
Retorna um valor que indica se os processos de serialização devem serializar o valor da propriedade de dependência fornecida. (Herdado de DependencyObject) |
ToString() |
Cria uma representação de cadeia de caracteres de Model3D. (Herdado de Model3D) |
ToString(IFormatProvider) |
Cria uma representação de cadeia de caracteres de Model3D. (Herdado de Model3D) |
VerifyAccess() |
Impõe que o thread de chamada tenha acesso a este DispatcherObject. (Herdado de DispatcherObject) |
WritePostscript() |
Aciona o evento Changed para o Freezable e invoca o respectivo método OnChanged(). Classes que derivam de Freezable devem chamar este método no final de qualquer API que modifica os membros de classe que não são armazenados como propriedades de dependência. (Herdado de Freezable) |
WritePreamble() |
Verifica se o Freezable não está congelado e está sendo acessado de um contexto de threading válido. Herdeiros do Freezable devem chamar esse método no início de qualquer API que grava em membros de dados que não são propriedades de dependência. (Herdado de Freezable) |
Eventos
Changed |
Ocorre quando o Freezable ou um objeto nele contido é modificado. (Herdado de Freezable) |
Implantações explícitas de interface
IFormattable.ToString(String, IFormatProvider) |
Formata o valor da instância atual usando o formato especificado. (Herdado de Model3D) |