Lenguaje

QuaternionRotation3D Clase

Definición

Representa una transformación de rotación definida como cuaternión.

public ref class QuaternionRotation3D sealed : System::Windows::Media::Media3D::Rotation3D
public sealed class QuaternionRotation3D : System.Windows.Media.Media3D.Rotation3D
type QuaternionRotation3D = class
    inherit Rotation3D
Public NotInheritable Class QuaternionRotation3D
Inherits Rotation3D
Herencia

Ejemplos

//Read new settings
try
{
    Double WValue = System.Convert.ToDouble(QuaternionWText.Text);
    Double XValue = System.Convert.ToDouble(QuaternionXText.Text);
    Double YValue = System.Convert.ToDouble(QuaternionYText.Text);
    Double ZValue = System.Convert.ToDouble(QuaternionZText.Text);

    endQuaternion = new Quaternion(XValue, YValue, ZValue, WValue);
}
catch
{
    MessageBox.Show("Set non-null values for the quaternion.");
}

myQuaternionRotation3D = new QuaternionRotation3D(endQuaternion);
myRotateTransform3D.Rotation = myQuaternionRotation3D;

//update matrix display
qrotationMatrix3D = myRotateTransform3D.Value;
'Read new settings
Try
    Dim WValue As Double = Convert.ToDouble(QuaternionWText.Text)
    Dim XValue As Double = Convert.ToDouble(QuaternionXText.Text)
    Dim YValue As Double = Convert.ToDouble(QuaternionYText.Text)
    Dim ZValue As Double = Convert.ToDouble(QuaternionZText.Text)

    endQuaternion = New Quaternion(XValue, YValue, ZValue, WValue)
Catch
    MessageBox.Show("Set non-null values for the quaternion.")
End Try

myQuaternionRotation3D = New QuaternionRotation3D(endQuaternion)
myRotateTransform3D.Rotation = myQuaternionRotation3D

'update matrix display
qrotationMatrix3D = myRotateTransform3D.Value
<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 Name="MyAnimatedObject"
          ClipToBounds="True" Width="150" Height="150"
          Canvas.Left="0" Canvas.Top="10">

          <!-- Defines the camera used to view the 3D object. -->
          <Viewport3D.Camera>
            <PerspectiveCamera x:Name="myPerspectiveCamera" 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 lights cast in the scene. Without light, the
                 3D object cannot be seen. Also, the direction of the lights affect shadowing. -->
            <ModelVisual3D>
              <ModelVisual3D.Content>
                <DirectionalLight Color="#FFFFFF" Direction="-0.612372,-0.5,-0.612372" />
              </ModelVisual3D.Content>
            </ModelVisual3D>
            <ModelVisual3D>
              <ModelVisual3D.Content>
                <GeometryModel3D>

                  <!-- The geometry specifes the shape of the 3D plane. In this case, 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 plane. In this case it is a linear gradient.-->
                  <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>
                  <!-- The Transform specifies how to transform the 3D object. The rotation
                       is animated using the Storyboard below. -->
                  <GeometryModel3D.Transform>
                    <RotateTransform3D>
                      <RotateTransform3D.Rotation>
                        <QuaternionRotation3D x:Name="myQuaternionRotation3D" />
                      </RotateTransform3D.Rotation>
                    </RotateTransform3D>
                  </GeometryModel3D.Transform>
                </GeometryModel3D>
              </ModelVisual3D.Content>
            </ModelVisual3D>
          </Viewport3D.Children>
          <!-- Trigger the rotation animation when the 3D object loads. -->
          <Viewport3D.Triggers>
            <EventTrigger RoutedEvent="Viewport3D.Loaded">
              <BeginStoryboard>
                <Storyboard>

                  <!-- This animation animates the Rotation property of the RotateTransform3D
                       causing the 3D shape to rotate. -->
                  <QuaternionAnimation
                   Storyboard.TargetName="myQuaternionRotation3D"
                   Storyboard.TargetProperty="Quaternion" From="0,0,1,0" To="0.3, 0.3, 1, 0" 
                   Duration="0:0:2" />

                </Storyboard>
              </BeginStoryboard>
            </EventTrigger>
          </Viewport3D.Triggers>
        </Viewport3D>
      </Canvas>
    </Viewbox>
  </DockPanel>
</Page>

Constructores

Nombre Description
QuaternionRotation3D()

Inicializa una nueva instancia de la clase QuaternionRotation3D.

QuaternionRotation3D(Quaternion)

Inicializa una nueva instancia de la QuaternionRotation3D clase utilizando el especificado Quaternion.

Campos

Nombre Description
QuaternionProperty

Identifica la Quaternion 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)
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)
Quaternion

Obtiene o establece el Quaternion objeto que define la rotación de destino.

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 QuaternionRotation3Dobjeto , 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 QuaternionRotation3D 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 trueen .

(Heredado de Freezable)
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()

Devuelve una cadena que representa el objeto actual.

(Heredado de Rotation3D)
ToString(IFormatProvider)

Devuelve un String utilizando un formato especificado que representa el objeto actual Object.

(Heredado de Rotation3D)
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 Rotation3D)

Se aplica a