# Quaternion 구조체

## 정의

3차원 회전을 나타내는 구조체입니다.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``````
상속
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. 쿼터 니 언 회전 및 축 중심의 회전의 축을 나타냅니다.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 차원 개체 및 해당 대상 방향을 나타내는 원래 방향을 나타내는 쿼터 니 언을 확인 하 여 원활 하 게 이러한 방향 간을 보간합니다 수 있습니다.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. 지정 하는 경우 소수 구분 기호로 쉼표를 사용 하면 안을 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.

### 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.

zz
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.

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

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