PerspectiveCamera 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í.
Representa una cámara de proyección de perspectiva.
public ref class PerspectiveCamera sealed : System::Windows::Media::Media3D::ProjectionCamera
public sealed class PerspectiveCamera : System.Windows.Media.Media3D.ProjectionCamera
type PerspectiveCamera = class
inherit ProjectionCamera
Public NotInheritable Class PerspectiveCamera
Inherits ProjectionCamera
- Herencia
-
PerspectiveCamera
Ejemplos
<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>
<!-- This ModelVisual3D defines the light cast in the scene. Without light, the 3D
object cannot be seen. Also, the direction of the lights affect shadowing. If desired,
you can create multiple lights with different colors that shine from different directions. -->
<ModelVisual3D>
<ModelVisual3D.Content>
<DirectionalLight Color="#FFFFFF" Direction="-0.612372,-0.5,-0.612372" />
</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 tiled drawing
covers the surface of the 3D object.-->
<GeometryModel3D.Material>
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<DrawingBrush Viewport="0,0,0.1,0.1" TileMode="Tile">
<DrawingBrush.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing Geometry="M0,0.1 L0.1,0 1,0.9, 0.9,1z"
Brush="Gray" />
<GeometryDrawing Geometry="M0.9,0 L1,0.1 0.1,1 0,0.9z"
Brush="Gray" />
<GeometryDrawing Geometry="M0.25,0.25 L0.5,0.125 0.75,0.25 0.5,0.5z"
Brush="#FFFF00" />
<GeometryDrawing Geometry="M0.25,0.75 L0.5,0.875 0.75,0.75 0.5,0.5z"
Brush="Black" />
<GeometryDrawing Geometry="M0.25,0.75 L0.125,0.5 0.25,0.25 0.5,0.5z"
Brush="#FF0000" />
<GeometryDrawing Geometry="M0.75,0.25 L0.875,0.5 0.75,0.75 0.5,0.5z"
Brush="MediumBlue" />
</DrawingGroup.Children>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</GeometryModel3D.Material>
<!-- Apply a transform to the object. In this sample, a rotation transform is applied, rendering the
3D object rotated. -->
<GeometryModel3D.Transform>
<RotateTransform3D>
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Axis="0,3,0" Angle="40" />
</RotateTransform3D.Rotation>
</RotateTransform3D>
</GeometryModel3D.Transform>
</GeometryModel3D>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D.Children>
</Viewport3D>
</Canvas>
</Viewbox>
</DockPanel>
</Page>
Comentarios
PerspectiveCamera especifica una proyección de un modelo 3D en una superficie visual 2D. Esta proyección incluye la perspectiva de la ahortención. En otras palabras, describe PerspectiveCamera un frustrum cuyos lados convergen hacia un punto en el horizonte. Los objetos más cercanos a la cámara aparecen más grandes y los objetos más alejados de la cámara aparecen más pequeños.
En el diagrama siguiente se muestra la diferencia entre las proyecciones de cámara ortográficas y de perspectiva.
Constructores
| Nombre | Description |
|---|---|
| PerspectiveCamera() |
Inicializa una nueva instancia de la clase PerspectiveCamera. |
| PerspectiveCamera(Point3D, Vector3D, Vector3D, Double) |
Inicializa una nueva instancia de la PerspectiveCamera clase utilizando la posición, la dirección y el campo de vista especificados. |
Campos
| Nombre | Description |
|---|---|
| FieldOfViewProperty |
Identifica la FieldOfView propiedad de dependencia. |
Propiedades
| Nombre | Description |
|---|---|
| CanFreeze |
Obtiene un valor que indica si el objeto se puede hacer no modificable. (Heredado de Freezable) |
| DependencyObjectType |
Obtiene el DependencyObjectType objeto que encapsula el tipo CLR de esta instancia. (Heredado de DependencyObject) |
| Dispatcher |
Obtiene el objeto al que DispatcherDispatcherObject está asociado. (Heredado de DispatcherObject) |
| FarPlaneDistance |
Obtiene o establece un valor que especifica la distancia desde la cámara del plano de clip lejano de la cámara. (Heredado de ProjectionCamera) |
| FieldOfView |
Obtiene o establece un valor que representa el campo horizontal de vista de la cámara. |
| HasAnimatedProperties |
Obtiene un valor que indica si uno o varios AnimationClock objetos están asociados a cualquiera de las propiedades de dependencia de este objeto. (Heredado de Animatable) |
| 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 (solo lectura). (Heredado de DependencyObject) |
| LookDirection |
Obtiene o establece un Vector3D objeto que define la dirección en la que la cámara está mirando en coordenadas del mundo. (Heredado de ProjectionCamera) |
| NearPlaneDistance |
Obtiene o establece un valor que especifica la distancia desde la cámara del plano de recorte cercano de la cámara. (Heredado de ProjectionCamera) |
| Position |
Obtiene o establece la posición de la cámara en coordenadas del mundo. (Heredado de ProjectionCamera) |
| Transform |
Obtiene o establece el objeto Transform3D aplicado a la cámara. (Heredado de Camera) |
| UpDirection |
Obtiene o establece un objeto Vector3D que define la dirección ascendente de la cámara. (Heredado de ProjectionCamera) |
Métodos
| Nombre | Description |
|---|---|
| ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Aplica un AnimationClock objeto al especificado DependencyProperty. Si la propiedad ya está animada, se usa el especificado HandoffBehavior . (Heredado de Animatable) |
| ApplyAnimationClock(DependencyProperty, AnimationClock) |
Aplica un AnimationClock objeto al especificado DependencyProperty. Si la propiedad ya está animada, se usa el comportamiento de entrega SnapshotAndReplace . (Heredado de Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Aplica una animación al especificado DependencyProperty. La animación se inicia cuando se representa el siguiente fotograma. Si la propiedad especificada ya está animada, se usa el especificado HandoffBehavior . (Heredado de Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline) |
Aplica una animación al especificado DependencyProperty. La animación se inicia cuando se representa el siguiente fotograma. Si la propiedad especificada ya está animada, se usa el comportamiento de entrega SnapshotAndReplace . (Heredado de Animatable) |
| CheckAccess() |
Determina si el subproceso que llama tiene acceso a este DispatcherObject. (Heredado de DispatcherObject) |
| ClearValue(DependencyProperty) |
Borra el valor local de una propiedad. Un identificador especifica DependencyProperty la propiedad que se va a borrar. (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 .DependencyPropertyKey (Heredado de DependencyObject) |
| Clone() |
Crea un clon modificable de este PerspectiveCameraobjeto , haciendo copias profundas de los valores de este objeto. Al copiar propiedades de dependencia, este método copia las referencias de recursos y los enlaces de datos (pero es posible que ya no se resuelvan), pero no animaciones ni sus valores actuales. |
| CloneCore(Freezable) |
Convierte la instancia en un clon (copia profunda) del especificado Freezable mediante valores de propiedad base (no animados). (Heredado de Freezable) |
| CloneCurrentValue() |
Crea un clon modificable de este PerspectiveCamera objeto, haciendo copias profundas de los valores actuales de este objeto. Las referencias de recursos, los enlaces de datos y las animaciones no se copian, pero sus valores actuales son. |
| CloneCurrentValueCore(Freezable) |
Convierte la instancia en un clon modificable (copia profunda) del especificado Freezable mediante los valores de propiedad actuales. (Heredado de Freezable) |
| CoerceValue(DependencyProperty) |
Coerce el valor de la propiedad de dependencia especificada. Esto se logra invocando cualquier CoerceValueCallback función especificada en metadatos de propiedad para la propiedad de dependencia tal como existe en la llamada DependencyObjecta . (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 Freezable clase derivada. (Heredado de Freezable) |
| Equals(Object) |
Determina si un proporcionado DependencyObject es equivalente al objeto actual DependencyObject. (Heredado de DependencyObject) |
| Freeze() |
Hace que el objeto actual no se pueda modificar y establezca su IsFrozen propiedad |
| FreezeCore(Boolean) |
Hace que este Animatable objeto no se pueda modificar o determina si se puede hacer no modificable. (Heredado de Animatable) |
| GetAnimationBaseValue(DependencyProperty) |
Devuelve el valor no animado del especificado DependencyProperty. (Heredado de Animatable) |
| GetAsFrozen() |
Crea una copia inmovilizada de , Freezablemediante valores de propiedad base (no animados). Dado que la copia está inmovilizada, los sub-objetos congelados se copian por referencia. (Heredado de Freezable) |
| GetAsFrozenCore(Freezable) |
Convierte la instancia en un clon inmovilizado del especificado Freezable mediante valores de propiedad base (no animados). (Heredado de Freezable) |
| GetCurrentValueAsFrozen() |
Crea una copia inmovilizada de mediante los valores de Freezable propiedad actuales. Dado que la copia está inmovilizada, los sub-objetos congelados se copian por referencia. (Heredado de Freezable) |
| GetCurrentValueAsFrozenCore(Freezable) |
Convierte la instancia actual en un clon inmovilizado del especificado Freezable. Si el objeto tiene propiedades de dependencia animadas, se copian sus valores animados actuales. (Heredado de Freezable) |
| GetHashCode() |
Obtiene un código hash para este DependencyObjectobjeto . (Heredado de DependencyObject) |
| GetLocalValueEnumerator() |
Crea un enumerador especializado para determinar qué propiedades de dependencia tienen valores establecidos localmente en este 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 .DependencyObject (Heredado de DependencyObject) |
| InvalidateProperty(DependencyProperty) |
Vuelve a evaluar el valor efectivo de la propiedad de dependencia especificada. (Heredado de DependencyObject) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| OnChanged() |
Se llama cuando se modifica el objeto actual Freezable . (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) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Garantiza que los punteros de contexto adecuados se establecen para un DependencyObjectType miembro de datos que se acaba de establecer. (Heredado de Freezable) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Invalida la DependencyObject implementación de OnPropertyChanged(DependencyPropertyChangedEventArgs) para invocar también los Changed controladores 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() |
Garantiza que Freezable se accede a desde un subproceso válido. Los heredadores de Freezable deben llamar a este método al principio de cualquier API que lea miembros de datos que no sean propiedades de dependencia. (Heredado de Freezable) |
| SetCurrentValue(DependencyProperty, Object) |
Establece el valor de una propiedad de dependencia sin cambiar su origen de valor. (Heredado de DependencyObject) |
| SetValue(DependencyProperty, Object) |
Establece el valor local de una propiedad de dependencia, especificado por su identificador de propiedad de dependencia. (Heredado de DependencyObject) |
| SetValue(DependencyPropertyKey, Object) |
Establece el valor local de una propiedad de dependencia de solo lectura, especificada por el DependencyPropertyKey identificador 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 proporcionada. (Heredado de DependencyObject) |
| ToString() |
Crea una representación de cadena de este objeto en función de la configuración de referencia cultural actual. (Heredado de Camera) |
| ToString(IFormatProvider) |
Crea una representación de cadena de la cámara. (Heredado de Camera) |
| VerifyAccess() |
Exige que el subproceso de llamada tenga acceso a este DispatcherObject. (Heredado de DispatcherObject) |
| WritePostscript() |
Genera el Changed evento para e Freezable invoca su OnChanged() método . Las clases que derivan de Freezable deben llamar a este método al final de cualquier API que modifique los miembros de clase que no se almacenan como propiedades de dependencia. (Heredado de Freezable) |
| WritePreamble() |
Comprueba que Freezable no está inmovilizado y que se accede a él desde un contexto de subproceso válido. Freezable Los heredares deben llamar a este método al principio de cualquier API que escriba en miembros de datos que no sean propiedades de dependencia. (Heredado de Freezable) |
Eventos
| Nombre | Description |
|---|---|
| Changed |
Se produce cuando se modifica o Freezable un objeto que contiene. (Heredado de Freezable) |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Da formato al valor de la instancia actual mediante el formato especificado. (Heredado de Camera) |