다음을 통해 공유


Quaternion 구조체

정의

3차원 회전을 나타내는 구조체입니다.

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

예제

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

설명

쿼터니언을 사용하면 개체에 적용된 회전 변환 간에 보간할 수 있으므로 회전의 부드러운 애니메이션을 더 쉽게 계산할 수 있습니다. 쿼터니언은 회전 축과 해당 축을 중심으로 회전을 나타냅니다. 회전된 개체의 시작 및 끝 위치의 회전 축과 각도를 개별적으로 정의할 수 있지만 애니메이션 중에 해당 개체의 중간 위치는 계산적으로 불확실합니다. 3차원 개체의 원래 방향을 나타내는 쿼터니언과 대상 방향을 나타내는 쿼터니언을 결정하면 해당 방향 간에 원활하게 보간할 수 있습니다.

XAML에서 값 사이의 구분 기호는 Quaternion 쉼표 또는 공백일 수 있습니다.

일부 문화권 마침표 대신 소수 구분 기호로 쉼표 문자를 사용할 수 있습니다. 고정 문화권에 대 한 처리 하는 XAML 대부분의 XAML 프로세서 구현에서 EN-US로 기본값과 소수 구분 기호로 마침표를 예상 합니다. XAML에서 지정 Quaternion 하는 경우 특성 값이 해당 구성 요소로 변환 Quaternion 되는 문자열 형식과 충돌하므로 쉼표 문자를 10진수 구분 기호로 사용하지 않아야 합니다.

XAML 특성 사용

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

XAML 값

x
Quaternion 구조체의 X 구성 요소입니다.

y
Quaternion 구조체의 Y 구성 요소입니다.

z
Quaternion 구조체의 Z 구성 요소입니다.

w
Quaternion 구조체의 W 구성 요소입니다.

생성자

Quaternion(Double, Double, Double, Double)

Quaternion 구조체의 새 인스턴스를 초기화합니다.

Quaternion(Vector3D, Double)

Quaternion 구조체의 새 인스턴스를 초기화합니다.

속성

Angle

4원수의 각도(도)를 가져옵니다.

Axis

4원수의 축을 가져옵니다.

Identity

ID 4원수를 가져옵니다.

IsIdentity

지정된 4원수가 Identity 4원수인지 여부를 나타내는 값을 가져옵니다.

IsNormalized

4원수가 정규화되었는지 여부를 나타내는 값을 가져옵니다.

W

4원수의 W 구성 요소를 가져옵니다.

X

4원수의 X 구성 요소를 가져옵니다.

Y

4원수의 Y 구성 요소를 가져옵니다.

Z

4원수의 Z 구성 요소를 가져옵니다.

메서드

Add(Quaternion, Quaternion)

지정된 4원수를 추가합니다.

Conjugate()

4원수를 해당 공액으로 대체합니다.

Equals(Object)

Quaternion 인스턴스가 같은지 비교합니다.

Equals(Quaternion)

Quaternion 인스턴스가 같은지 비교합니다.

Equals(Quaternion, Quaternion)

Quaternion 인스턴스가 같은지 비교합니다.

GetHashCode()

Quaternion에 대한 해시 코드를 반환합니다.

Invert()

지정된 4원수를 해당 역함수로 대체합니다.

Multiply(Quaternion, Quaternion)

지정된 Quaternion 값을 곱합니다.

Normalize()

정규화된 쿼터니언을 반환합니다.

Parse(String)

Quaternion의 문자열 표현을 해당 Quaternion 구조체로 변환합니다.

Slerp(Quaternion, Quaternion, Double)

구면 선형 보간을 사용하여 두 방향을 보간합니다.

Slerp(Quaternion, Quaternion, Double, Boolean)

구면 선형 보간을 사용하여 Quaternion 구조체로 표현된 방향 간을 보간합니다.

Subtract(Quaternion, Quaternion)

다른 4원수에서 4원수를 뺍니다.

ToString()

개체의 문자열 표현을 만듭니다.

ToString(IFormatProvider)

개체의 문자열 표현을 만듭니다.

연산자

Addition(Quaternion, Quaternion)

지정된 Quaternion 값을 더합니다.

Equality(Quaternion, Quaternion)

Quaternion 인스턴스를 비교하여 완전히 같은지 여부를 확인합니다.

Inequality(Quaternion, Quaternion)

Quaternion 인스턴스를 비교하여 완전히 다른지 여부를 확인합니다.

Multiply(Quaternion, Quaternion)

지정된 4원수와 다른 4원수를 곱합니다.

Subtraction(Quaternion, Quaternion)

다른 4원수에서 지정된 4원수를 뺍니다.

명시적 인터페이스 구현

IFormattable.ToString(String, IFormatProvider)

이 멤버는 WPF(Windows Presentation Foundation) 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. 이 멤버에 대한 설명은 ToString(String, IFormatProvider)를 참조하세요.

적용 대상