SpotLight Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Objeto Light que proyecta su efecto en un área cónica y en una dirección 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
- Herencia
Ejemplos
En el ejemplo siguiente se muestra cómo crear un SpotLight en una escena 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>
En el código siguiente se muestra el ejemplo completo.
<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>
Comentarios
SpotLight es un tipo de PointLight, ya que tiene una posición, un intervalo y una atenuación. Sin embargo, SpotLight también permite controlar la dirección, la forma y otras propiedades del cono del efecto de la luz.
Especifique valores para OuterConeAngle (más allá del cual no se ilumina nada) y InnerConeAngle (en el que todo está completamente iluminado) para cambiar el efecto de iluminación.
La iluminación entre el exterior del cono interno y el cono exterior cae linealmente.
Constructores
SpotLight() |
Inicializa una nueva instancia de la clase SpotLight. |
SpotLight(Color, Point3D, Vector3D, Double, Double) |
Inicializa una nueva instancia de la clase SpotLight con el color, la posición, la dirección y los ángulos del cono especificados. |
Campos
DirectionProperty |
Identifica la propiedad de dependencia Direction. |
InnerConeAngleProperty |
Identifica la propiedad de dependencia InnerConeAngle. |
OuterConeAngleProperty |
Identifica la propiedad de dependencia OuterConeAngle. |
Propiedades
Bounds |
Obtiene una estructura Rect3D que especifica el rectángulo de selección alineado con el eje de Model3D. (Heredado de Model3D) |
CanFreeze |
Obtiene un valor que indica si el objeto se puede convertir en no modificable. (Heredado de Freezable) |
Color |
Obtiene o establece el color de la luz. (Heredado de Light) |
ConstantAttenuation |
Obtiene o establece un valor constante por el que disminuye la intensidad de la luz con la distancia. (Heredado de PointLightBase) |
DependencyObjectType |
Obtiene el DependencyObjectType objeto que encapsula el tipo CLR de esta instancia. (Heredado de DependencyObject) |
Direction |
Obtiene o establece un objeto Vector3D que especifica la dirección en que el objeto SpotLight proyecta su luz. |
Dispatcher |
Obtiene el objeto Dispatcher al que está asociado DispatcherObject. (Heredado de DispatcherObject) |
HasAnimatedProperties |
Obtiene un valor que indica si uno o más objetos AnimationClock se asocian a cualquiera de las propiedades de dependencia de este objeto. (Heredado de Animatable) |
InnerConeAngle |
Obtiene o establece un ángulo que especifica la proporción de la proyección de forma cónica de SpotLight en la que la luz ilumina totalmente los objetos de la escena. |
IsFrozen |
Obtiene un valor que indica si el objeto se puede modificar actualmente. (Heredado de Freezable) |
IsSealed |
Obtiene un valor que indica si esta instancia está actualmente sellada (es de solo lectura). (Heredado de DependencyObject) |
LinearAttenuation |
Obtiene o establece un valor que especifica la disminución lineal de la intensidad de la luz con la distancia. (Heredado de PointLightBase) |
OuterConeAngle |
Obtiene o establece un ángulo que especifica la proporción de la proyección de forma cónica exterior de SpotLight en la que la luz no ilumina los objetos de la escena. |
Position |
Obtiene o establece Point3D que especifica la posición de la luz en el espacio universal. (Heredado de PointLightBase) |
QuadraticAttenuation |
Obtiene o establece un valor que especifica la disminución del efecto de la luz con la distancia, calculado mediante una ecuación de segundo grado. (Heredado de PointLightBase) |
Range |
Obtiene o establece la distancia a partir de la cual la luz no tiene ningún efecto. (Heredado de PointLightBase) |
Transform |
Obtiene o establece el elemento Transform3D establecido en el modelo. (Heredado de Model3D) |
Métodos
ApplyAnimationClock(DependencyProperty, AnimationClock) |
Se aplica AnimationClock al valor de DependencyProperty especificado. Si la propiedad ya está animada, se usa el comportamiento de entrega SnapshotAndReplace. (Heredado de Animatable) |
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Se aplica AnimationClock al valor de DependencyProperty especificado. Si la propiedad ya está animada, se usa el objeto HandoffBehavior especificado. (Heredado de Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline) |
Aplica una animación a la DependencyProperty especificada. La animación se inicia al representar el siguiente fotograma. Si la propiedad especificada ya está animada, se usa el comportamiento de entrega SnapshotAndReplace. (Heredado de Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Aplica una animación a la DependencyProperty especificada. La animación se inicia al representar el siguiente fotograma. Si la propiedad especificada ya está animada, se usa el objeto HandoffBehavior especificado. (Heredado de Animatable) |
CheckAccess() |
Determina si el subproceso de la llamada tiene acceso a DispatcherObject. (Heredado de DispatcherObject) |
ClearValue(DependencyProperty) |
Borra el valor local de una propiedad. La propiedad que se va a borrar se especifica mediante un identificador DependencyProperty. (Heredado de DependencyObject) |
ClearValue(DependencyPropertyKey) |
Borra el valor local de una propiedad de solo lectura. La propiedad que se va a borrar se especifica mediante un DependencyPropertyKey. (Heredado de DependencyObject) |
Clone() |
Crea un clon modificable de este SpotLight y hace copias en profundidad de los valores de este objeto. Cuando se copian propiedades de dependencia, este método copia las referencias de recursos y enlaces de datos (aunque podrían no resolverse), pero no copia las animaciones ni sus valores actuales. |
CloneCore(Freezable) |
Convierte la instancia en un clon (copia en profundidad) de la clase Freezable especificada con valores de propiedad base (no animadas). (Heredado de Freezable) |
CloneCurrentValue() |
Crea un clon modificable de este objeto SpotLight y hace copias en profundidad de sus valores actuales. Las referencias de recursos, los enlaces de datos y las animaciones no se copian, pero sí sus valores actuales. |
CloneCurrentValueCore(Freezable) |
Convierte esta instancia en un clon modificable (copia en profundidad) del Freezable especificado mediante los valores de propiedad actuales. (Heredado de Freezable) |
CoerceValue(DependencyProperty) |
Convierte el valor de la propiedad de dependencia especificada. Esto se logra invocando cualquier función CoerceValueCallback especificada en los metadatos de la propiedad de dependencia tal como existe en la clase DependencyObject que llama. (Heredado de DependencyObject) |
CreateInstance() |
Inicializa una nueva instancia de la clase Freezable. (Heredado de Freezable) |
CreateInstanceCore() |
Cuando se implementa en una clase derivada, crea una nueva instancia de la clase Freezable derivada. (Heredado de Freezable) |
Equals(Object) |
Determina si un objeto DependencyObject proporcionado es equivalente al objeto DependencyObject actual. (Heredado de DependencyObject) |
Freeze() |
Convierte el objeto actual en no modificable y establece su propiedad IsFrozen en |
FreezeCore(Boolean) |
Convierte este objeto Animatable en no modificable o determina si se puede convertir en no modificable. (Heredado de Animatable) |
GetAnimationBaseValue(DependencyProperty) |
Devuelve el valor no animado del objeto DependencyProperty especificado. (Heredado de Animatable) |
GetAsFrozen() |
Crea una copia inmovilizada de Freezable, con los valores de propiedades base (no animadas). Puesto que se inmoviliza la copia, se copia cualquier subobjeto inmovilizado por referencia. (Heredado de Freezable) |
GetAsFrozenCore(Freezable) |
Convierte la instancia en un clon inmovilizado de la clase Freezable especificada con los valores de propiedades base (no animadas). (Heredado de Freezable) |
GetCurrentValueAsFrozen() |
Crea una copia inmovilizada de Freezable con los valores de propiedad actuales. Puesto que se inmoviliza la copia, se copia cualquier subobjeto inmovilizado por referencia. (Heredado de Freezable) |
GetCurrentValueAsFrozenCore(Freezable) |
Convierte la instancia actual en un clon inmovilizado del valor de Freezable especificado. Si el objeto tiene propiedades de dependencia animadas, se copian sus valores animados actuales. (Heredado de Freezable) |
GetHashCode() |
Obtiene un código hash de este objeto DependencyObject. (Heredado de DependencyObject) |
GetLocalValueEnumerator() |
Crea un enumerador especializado para determinar qué propiedades de dependencia han establecido localmente los valores en DependencyObject. (Heredado de DependencyObject) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
GetValue(DependencyProperty) |
Devuelve el valor efectivo actual de una propiedad de dependencia en esta instancia de un DependencyObject. (Heredado de DependencyObject) |
InvalidateProperty(DependencyProperty) |
Vuelve a evaluar el valor efectivo para la propiedad de dependencia especificada. (Heredado de DependencyObject) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
OnChanged() |
Se le llama cuando el objeto Freezable actual se modifica. (Heredado de Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Se asegura de que se establecen los punteros contextuales adecuados para un miembro de datos DependencyObjectType que se acaba de establecer. (Heredado de Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Este miembro admite la infraestructura de Windows Presentation Foundation (WPF) y no está pensada para usarse directamente desde el código. (Heredado de Freezable) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Reemplaza la implementación DependencyObject de OnPropertyChanged(DependencyPropertyChangedEventArgs) para invocar también cualquier controlador Changed en respuesta a una propiedad de dependencia cambiante de tipo Freezable. (Heredado de Freezable) |
ReadLocalValue(DependencyProperty) |
Devuelve el valor local de una propiedad de dependencia, si existe. (Heredado de DependencyObject) |
ReadPreamble() |
Se asegura de que se tiene acceso a Freezable desde un subproceso válido. Los herederos de Freezable deben llamar a este método al inicio de las API que leen miembros de datos que no son propiedades de dependencia. (Heredado de Freezable) |
SetCurrentValue(DependencyProperty, Object) |
Establece el valor de una propiedad de dependencia sin cambiar el origen del valor. (Heredado de DependencyObject) |
SetValue(DependencyProperty, Object) |
Establece el valor local de una propiedad de dependencia, especificado mediante el identificador de la propiedad de dependencia. (Heredado de DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
Establece el valor local de una propiedad de dependencia de solo lectura, especificado por el identificador DependencyPropertyKey de la propiedad de dependencia. (Heredado de DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
Devuelve un valor que indica si los procesos de serialización deben serializar el valor de la propiedad de dependencia especificada. (Heredado de DependencyObject) |
ToString() |
Crea una representación de cadena de Model3D. (Heredado de Model3D) |
ToString(IFormatProvider) |
Crea una representación de cadena de Model3D. (Heredado de Model3D) |
VerifyAccess() |
Exige que el subproceso de la llamada tenga acceso a DispatcherObject. (Heredado de DispatcherObject) |
WritePostscript() |
Genera el evento Changed para Freezable e invoca su método OnChanged(). Las clases que derivan de Freezable deben llamar a este método al final de cualquier API que modifique miembros de clase que no estén almacenados como propiedades de dependencia. (Heredado de Freezable) |
WritePreamble() |
Comprueba que no se inmovilice Freezable y que se tiene acceso desde un contexto de subproceso válido. Los herederos de Freezable deben llamar a este método al inicio de las API que escriben en miembros de datos que no son propiedades de dependencia. (Heredado de Freezable) |
Eventos
Changed |
Se produce cuando se modifican la clase Freezable o un objeto que la contiene. (Heredado de Freezable) |
Implementaciones de interfaz explícitas
IFormattable.ToString(String, IFormatProvider) |
Da formato al valor de la instancia actual usando el formato especificado. (Heredado de Model3D) |