Quaternion Quaternion Quaternion Quaternion Struct

Definición

Estructura que representa un giro en tres dimensiones.Structure that represents a rotation in three dimensions.

public value class Quaternion : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))]
[System.Serializable]
public struct Quaternion : IFormattable
type Quaternion = struct
    interface IFormattable
Public Structure Quaternion
Implements IFormattable
Herencia
QuaternionQuaternionQuaternionQuaternion
Atributos
Implementaciones

Ejemplos

<!-- 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>
//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

Comentarios

Los cuaterniones permiten interpolar entre transformaciones de giro que se aplica a un objeto, facilitando más animaciones uniformes de rotaciones de proceso.Quaternions allow you to interpolate between rotation transformations applied to an object, thereby making it easier to compute smooth animations of rotations. Un cuaternión representa un eje de rotación y un giro alrededor de ese eje.A quaternion represents an axis of rotation and a rotation around that axis. Es posible definir individualmente el eje y ángulo de giro de las posiciones inicial y finales de un objeto girado, pero las posiciones intermedias de ese objeto durante una animación no están seguro de cálculo.It's possible to individually define the axis and angle of rotation of the starting and ending positions of a rotated object ,but the intermediate positions of that object during an animation are computationally uncertain. Mediante la determinación de un cuaternión que representa la orientación de un objeto 3D y otro que representa la orientación del destino original, puede interpolar fácilmente entre las orientaciones.By determining a quaternion that represents the original orientation of a 3-D object and one that represents its destination orientation, you can smoothly interpolate between those orientations.

En XAML, el delimitador entre los valores de un Quaternion puede ser una coma o un espacio.In XAML, the delimiter between the values of a Quaternion can be either a comma or a space.

Algunas referencias culturales podrían utilizar el carácter de coma como delimitador decimal en lugar del punto.Some cultures might use the comma character as the decimal delimiter instead of the period character. XAML de procesamiento para la referencia cultural de todos el valor predeterminado es en-US, en la mayoría de las implementaciones de procesadores XAML y espera que el punto como delimitador decimal.XAML processing for invariant culture defaults to en-US in most XAML processor implementations, and expects the period to be the decimal delimiter. Debe evitar utilizando la coma como delimitador decimal si especifica un Quaternion en XAML, ya que entren en conflicto con la conversión de tipos de cadena de un Quaternion valor del atributo en sus componentes.You should avoid using the comma character as the decimal delimiter if specifying a Quaternion in XAML, because that will clash with the string type conversion of a Quaternion attribute value into its components.

Uso de atributos XAMLXAML Attribute Usage

<object property="x,y,z,w"/>  
-or-  
<object property="x y z w"/>  

Valores XAMLXAML Values

xx
Componente X de esta estructura Quaternion.The X component of this Quaternion structure.

yy
Componente Y de esta estructura Quaternion.The Y component of this Quaternion structure.

zz
Componente Z de esta estructura Quaternion.The Z component of this Quaternion structure.

ww
Componente W de esta estructura Quaternion.The W component of this Quaternion structure.

Constructores

Quaternion(Vector3D, Double) Quaternion(Vector3D, Double) Quaternion(Vector3D, Double) Quaternion(Vector3D, Double)

Inicializa una nueva instancia de la estructura Quaternion.Initializes a new instance of the Quaternion structure.

Quaternion(Double, Double, Double, Double) Quaternion(Double, Double, Double, Double) Quaternion(Double, Double, Double, Double) Quaternion(Double, Double, Double, Double)

Inicializa una nueva instancia de la estructura Quaternion.Initializes a new instance of the Quaternion structure.

Propiedades

Angle Angle Angle Angle

Obtiene el ángulo del cuaternión, en grados.Gets the quaternion's angle, in degrees.

Axis Axis Axis Axis

Obtiene el eje del cuaternión.Gets the quaternion's axis.

Identity Identity Identity Identity

Obtiene el cuaternión de identidadGets the Identity quaternion

IsIdentity IsIdentity IsIdentity IsIdentity

Obtiene un valor que indica si el cuaternión especificado es un Identity cuaternión.Gets a value that indicates whether the specified quaternion is an Identity quaternion.

IsNormalized IsNormalized IsNormalized IsNormalized

Obtiene un valor que indica si el cuaternión está normalizado.Gets a value that indicates whether the quaternion is normalized.

W W W W

Obtiene el componente W del cuaternión.Gets the W component of the quaternion.

X X X X

Obtiene el componente X del cuaternión.Gets the X component of the quaternion.

Y Y Y Y

Obtiene el componente Y del cuaternión.Gets the Y component of the quaternion.

Z Z Z Z

Obtiene el componente Z del cuaternión.Gets the Z component of the quaternion.

Métodos

Add(Quaternion, Quaternion) Add(Quaternion, Quaternion) Add(Quaternion, Quaternion) Add(Quaternion, Quaternion)

Suma los cuaterniones especificados.Adds the specified quaternions.

Conjugate() Conjugate() Conjugate() Conjugate()

Reemplaza un cuaternión por su conjugado.Replaces a quaternion with its conjugate.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Compara dos instancias de Quaternion para determinar si sus valores son iguales.Compares two Quaternion instances for equality.

Equals(Quaternion) Equals(Quaternion) Equals(Quaternion) Equals(Quaternion)

Compara dos instancias de Quaternion para determinar si sus valores son iguales.Compares two Quaternion instances for equality.

Equals(Quaternion, Quaternion) Equals(Quaternion, Quaternion) Equals(Quaternion, Quaternion) Equals(Quaternion, Quaternion)

Compara dos instancias de Quaternion para determinar si sus valores son iguales.Compares two Quaternion instances for equality.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Devuelve el código hash de Quaternion.Returns the hash code for the Quaternion.

Invert() Invert() Invert() Invert()

Reemplaza el cuaternión especificado por su inversoReplaces the specified quaternion with its inverse

Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion)

Multiplica la Quaternion valores.Multiplies the specified Quaternion values.

Normalize() Normalize() Normalize() Normalize()

Devuelve un cuaternión normalizado.Returns a normalized quaternion.

Parse(String) Parse(String) Parse(String) Parse(String)

Convierte una representación de cadena de un Quaternion en el equivalente Quaternion estructura.Converts a string representation of a Quaternion into the equivalent Quaternion structure.

Slerp(Quaternion, Quaternion, Double) Slerp(Quaternion, Quaternion, Double) Slerp(Quaternion, Quaternion, Double) Slerp(Quaternion, Quaternion, Double)

Interpola entre dos orientaciones mediante la interpolación lineal esférica.Interpolates between two orientations using spherical linear interpolation.

Slerp(Quaternion, Quaternion, Double, Boolean) Slerp(Quaternion, Quaternion, Double, Boolean) Slerp(Quaternion, Quaternion, Double, Boolean) Slerp(Quaternion, Quaternion, Double, Boolean)

Interpola entre las orientaciones, representadas como Quaternion estructuras, usando la interpolación lineal esférica.Interpolates between orientations, represented as Quaternion structures, using spherical linear interpolation.

Subtract(Quaternion, Quaternion) Subtract(Quaternion, Quaternion) Subtract(Quaternion, Quaternion) Subtract(Quaternion, Quaternion)

Resta un cuaternión de otro.Subtracts a Quaternion from another.

ToString() ToString() ToString() ToString()

Crea una representación de cadena del objeto.Creates a string representation of the object.

ToString(IFormatProvider) ToString(IFormatProvider) ToString(IFormatProvider) ToString(IFormatProvider)

Crea una representación de cadena del objeto.Creates a string representation of the object.

Operadores

Addition(Quaternion, Quaternion) Addition(Quaternion, Quaternion) Addition(Quaternion, Quaternion) Addition(Quaternion, Quaternion)

Agrega el objeto especificado Quaternion valores.Adds the specified Quaternion values.

Equality(Quaternion, Quaternion) Equality(Quaternion, Quaternion) Equality(Quaternion, Quaternion) Equality(Quaternion, Quaternion)

Compara dos Quaternion igualdad exacta de las instancias.Compares two Quaternion instances for exact equality.

Inequality(Quaternion, Quaternion) Inequality(Quaternion, Quaternion) Inequality(Quaternion, Quaternion) Inequality(Quaternion, Quaternion)

Compara dos Quaternion instancias exactas no son iguales.Compares two Quaternion instances for exact inequality.

Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion)

Multiplica el cuaternión especificado por otro.Multiplies the specified quaternion by another.

Subtraction(Quaternion, Quaternion) Subtraction(Quaternion, Quaternion) Subtraction(Quaternion, Quaternion) Subtraction(Quaternion, Quaternion)

Resta un cuaternión especificado de otro.Subtracts a specified quaternion from another.

Implementaciones de interfaz explícitas

IFormattable.ToString(String, IFormatProvider) IFormattable.ToString(String, IFormatProvider) IFormattable.ToString(String, IFormatProvider) IFormattable.ToString(String, IFormatProvider)

Este miembro es compatible con la infraestructura de Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) y no está diseñado para utilizarse directamente desde el código.This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. Para una descripción de este miembro, vea ToString(String, IFormatProvider).For a description of this member, see ToString(String, IFormatProvider).

Se aplica a