Quaternion Quaternion Quaternion Quaternion Struct

Определение

Структура, представляющая поворот в трех измерениях.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
Наследование
QuaternionQuaternionQuaternionQuaternion
Атрибуты
Реализации

Примеры

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

Комментарии

Кватернионы позволяют выполнять интерполяцию между преобразования поворота, примененной к объекту, тем самым облегчая процесс для вычисления сглаженных анимаций поворотов.Quaternions allow you to interpolate between rotation transformations applied to an object, thereby making it easier to compute smooth animations of rotations. Кватернион представляет ось поворота и поворот вокруг этой оси.A quaternion represents an axis of rotation and a rotation around that axis. Можно по отдельности определить ось и угол поворота начальной и конечной позиций вращаемого объекта, но промежуточные положения этого объекта во время анимации являются неопределенными.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. Определив кватернион, представляющий исходную ориентацию объекта 3-D, а один представляет его конечную ориентацию, можно без проблем интерполяцию между этими ориентациями.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.

В XAML, разделитель между значениями Quaternion может быть запятой или пробелом.In XAML, the delimiter between the values of a Quaternion can be either a comma or a space.

Некоторые языки и региональные параметры использовать запятую в качестве разделителя десятичных чисел, а не символ точки.Some cultures might use the comma character as the decimal delimiter instead of the period character. XAML, обработки для инвариантного языка и региональных параметров по умолчанию en US, в большинстве реализаций процессора XAML и ожидает, что период, в качестве десятичного разделителя.XAML processing for invariant culture defaults to en-US in most XAML processor implementations, and expects the period to be the decimal delimiter. Старайтесь не использовать запятую в качестве десятичного разделителя, при указании Quaternion в XAML, так как, возникнет конфликт имен с преобразованием типа строка Quaternion значение атрибута на компоненты.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.

Использование атрибута XAMLXAML Attribute Usage

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

Значения XAMLXAML Values

xx
Компонент X в структуре Quaternion.The X component of this Quaternion structure.

yy
Компонент Y в структуре Quaternion.The Y component of this Quaternion structure.

zz
Компонент Z в структуре Quaternion.The Z component of this Quaternion structure.

ww
Компонент W в структуре Quaternion.The W component of this Quaternion structure.

Конструкторы

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

Инициализирует новый экземпляр структуры 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)

Инициализирует новый экземпляр структуры Quaternion.Initializes a new instance of the Quaternion structure.

Свойства

Angle Angle Angle Angle

Получает угол кватерниона в градусах.Gets the quaternion's angle, in degrees.

Axis Axis Axis Axis

Получает ось кватерниона.Gets the quaternion's axis.

Identity Identity Identity Identity

Получает единичное значение для кватернионаGets the Identity quaternion

IsIdentity IsIdentity IsIdentity IsIdentity

Получает значение, указывающее, является ли заданный кватернион Identity кватернион.Gets a value that indicates whether the specified quaternion is an Identity quaternion.

IsNormalized IsNormalized IsNormalized IsNormalized

Получает значение, указывающее, является ли кватернион нормализованным.Gets a value that indicates whether the quaternion is normalized.

W W W W

Получает компонент W кватерниона.Gets the W component of the quaternion.

X X X X

Получает компонент X кватерниона.Gets the X component of the quaternion.

Y Y Y Y

Получает компонент Y кватерниона.Gets the Y component of the quaternion.

Z Z Z Z

Получает компонент Z кватерниона.Gets the Z component of the quaternion.

Методы

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

Добавляет заданные кватернионы.Adds the specified quaternions.

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

Заменяет кватернион вместе с его конъюгатом.Replaces a quaternion with its conjugate.

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

Сравнивает два экземпляра Quaternion на предмет их равенства.Compares two Quaternion instances for equality.

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

Сравнивает два экземпляра Quaternion на предмет их равенства.Compares two Quaternion instances for equality.

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

Сравнивает два экземпляра Quaternion на предмет их равенства.Compares two Quaternion instances for equality.

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

Возвращает хэш-код для Quaternion.Returns the hash code for the Quaternion.

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

Заменяет указанный кватернион вместе с его конъюгатомReplaces the specified quaternion with its inverse

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

Умножает заданные Quaternion значения.Multiplies the specified Quaternion values.

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

Возвращает нормализованный кватернион.Returns a normalized quaternion.

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

Преобразует строковое представление Quaternion в эквивалентную Quaternion структуры.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)

Выполняет интерполяцию между двумя ориентациями и использованием сферической линейной интерполяции.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)

Выполняет интерполяцию между двумя ориентациями, представленными как Quaternion структуры, используя сферическую линейную интерполяцию.Interpolates between orientations, represented as Quaternion structures, using spherical linear interpolation.

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

Вычитает из другого кватерниона.Subtracts a Quaternion from another.

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

Создает строковое представление объекта.Creates a string representation of the object.

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

Создает строковое представление объекта.Creates a string representation of the object.

Операторы

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

Добавляет указанный Quaternion значения.Adds the specified Quaternion values.

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

Сравнивает два Quaternion экземпляров на строгое равенство.Compares two Quaternion instances for exact equality.

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

Сравнивает два Quaternion экземпляров для определения точного неравенства.Compares two Quaternion instances for exact inequality.

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

Умножает заданный кватернион на другое.Multiplies the specified quaternion by another.

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

Вычитает указанный кватернион из другого.Subtracts a specified quaternion from another.

Явные реализации интерфейса

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

Этот член поддерживает инфраструктуру Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) и не предназначен для непосредственного использования из кода.This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. Описание этого члена см. в разделе ToString(String, IFormatProvider).For a description of this member, see ToString(String, IFormatProvider).

Применяется к