# Quaternion 구조체

## 정의

3차원 회전을 나타내는 구조체입니다.Structure that represents a rotation in three dimensions.

``public value class Quaternion : IFormattable``
``````[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))]
public struct Quaternion : IFormattable``````
``````[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))]
[System.Serializable]
public struct Quaternion : IFormattable``````
``````[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))>]
type Quaternion = struct
interface IFormattable``````
``````[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))>]
[<System.Serializable>]
type Quaternion = struct
interface IFormattable``````
``````Public Structure Quaternion
Implements IFormattable``````
상속
Quaternion
특성
구현

## 예제

``````<!-- Trigger the rotation animation when the 3D object loads. -->
<Viewport3D.Triggers>
<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
``````

## 설명

4 원수를 사용 하면 개체에 적용 되는 회전 변형 간에 보간 하 여 부드러운 회전 애니메이션을 보다 쉽게 계산할 수 있습니다.Quaternions allow you to interpolate between rotation transformations applied to an object, thereby making it easier to compute smooth animations of rotations. 4 원수는 회전의 축과 해당 축을 중심으로 회전 하는 각도를 나타냅니다.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 차원 개체의 원래 방향을 나타내는 4 원수를 확인 하 고 해당 개체의 대상 방향을 나타내는 4 원수를 확인 하 여 해당 방향을 매끄럽게 전환할 수 있습니다.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 대부분의 XAML 프로세서 구현에서 EN-US로 기본값과 소수 구분 기호로 마침표를 예상 합니다.XAML processing for invariant culture defaults to en-US in most XAML processor implementations, and expects the period to be the decimal delimiter. XAML에서를 지정 하는 경우 쉼표 문자를 소수 구분 기호로 사용 하지 않아야 합니다 .이는 Quaternion 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.

### XAML 특성 사용XAML Attribute Usage

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

### XAML 값XAML Values

xx
Quaternion 구조체의 X 구성 요소입니다.The X component of this Quaternion structure.

yy
Quaternion 구조체의 Y 구성 요소입니다.The Y component of this Quaternion structure.

-z
Quaternion 구조체의 Z 구성 요소입니다.The Z component of this Quaternion structure.

ww
Quaternion 구조체의 W 구성 요소입니다.The W component of this Quaternion structure.

## 생성자

 Quaternion 구조체의 새 인스턴스를 초기화합니다.Initializes a new instance of the Quaternion structure. Quaternion 구조체의 새 인스턴스를 초기화합니다.Initializes a new instance of the Quaternion structure.

## 속성

 4원수의 각도(도)를 가져옵니다.Gets the quaternion's angle, in degrees. 4원수의 축을 가져옵니다.Gets the quaternion's axis. ID 4원수를 가져옵니다.Gets the Identity quaternion. 지정된 4원수가 Identity 4원수인지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the specified quaternion is an Identity quaternion. 4원수가 정규화되었는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the quaternion is normalized. 4원수의 W 구성 요소를 가져옵니다.Gets the W component of the quaternion. 4원수의 X 구성 요소를 가져옵니다.Gets the X component of the quaternion. 4원수의 Y 구성 요소를 가져옵니다.Gets the Y component of the quaternion. 4원수의 Z 구성 요소를 가져옵니다.Gets the Z component of the quaternion.

## 메서드

 지정된 4원수를 추가합니다.Adds the specified quaternions. 4원수를 해당 공액으로 대체합니다.Replaces a quaternion with its conjugate. 두 Quaternion 인스턴스가 같은지 비교합니다.Compares two Quaternion instances for equality. 두 Quaternion 인스턴스가 같은지 비교합니다.Compares two Quaternion instances for equality. 두 Quaternion 인스턴스가 같은지 비교합니다.Compares two Quaternion instances for equality. Quaternion에 대한 해시 코드를 반환합니다.Returns the hash code for the Quaternion. 지정된 4원수를 해당 역함수로 대체합니다.Replaces the specified quaternion with its inverse. 지정된 Quaternion 값을 곱합니다.Multiplies the specified Quaternion values. 정규화된 쿼터니언을 반환합니다.Returns a normalized quaternion. Quaternion의 문자열 표현을 해당 Quaternion 구조체로 변환합니다.Converts a string representation of a Quaternion into the equivalent Quaternion structure. 구면 선형 보간을 사용하여 두 방향을 보간합니다.Interpolates between two orientations using spherical linear interpolation. 구면 선형 보간을 사용하여 Quaternion 구조체로 표현된 방향 간을 보간합니다.Interpolates between orientations, represented as Quaternion structures, using spherical linear interpolation. 다른 4원수에서 4원수를 뺍니다.Subtracts a Quaternion from another. 개체의 문자열 표현을 만듭니다.Creates a string representation of the object. 개체의 문자열 표현을 만듭니다.Creates a string representation of the object.

## 연산자

 지정된 Quaternion 값을 더합니다.Adds the specified Quaternion values. 두 Quaternion 인스턴스를 비교하여 완전히 같은지 여부를 확인합니다.Compares two Quaternion instances for exact equality. 두 Quaternion 인스턴스를 비교하여 완전히 다른지 여부를 확인합니다.Compares two Quaternion instances for exact inequality. 지정된 4원수와 다른 4원수를 곱합니다.Multiplies the specified quaternion by another. 다른 4원수에서 지정된 4원수를 뺍니다.Subtracts a specified quaternion from another.

## 명시적 인터페이스 구현

 이 멤버는 Windows Presentation Foundation (WPF) 인프라를 지원 하며 사용자 코드에서 직접 사용할 수 없습니다.This member supports the 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).