Aracılığıyla paylaş


Quaternion Yapı

Tanım

Bir döndürmeyi üç boyutta temsil eden yapı.

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
Devralma
Quaternion
Öznitelikler
Uygulamalar

Örnekler

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

Açıklamalar

Quaternions, bir nesneye uygulanan döndürme dönüştürmeleri arasında ilişkilendirme yapmanızı sağlar ve böylece döndürmelerin düzgün animasyonlarını hesaplamayı kolaylaştırır. Quaternion, bir döndürme eksenini ve bu eksenin etrafındaki bir döndürmeyi temsil eder. Döndürülen bir nesnenin başlangıç ve bitiş konumlarının eksenini ve dönüş açısını ayrı ayrı tanımlamak mümkündür, ancak animasyon sırasında bu nesnenin ara konumları hesaplama açısından belirsizdir. Bir 3-B nesnenin özgün yönünü ve hedef yönlendirmesini temsil eden bir quaternion belirleyerek, bu yönlendirmeler arasında sorunsuz bir şekilde ilişkilendirme yapabilirsiniz.

XAML'de, değerleri Quaternion arasındaki sınırlayıcı virgül veya boşluk olabilir.

Bazı kültürler virgül karakterini nokta karakteri yerine ondalık sınırlayıcı olarak kullanabilir. Sabit kültür için XAML işleme, çoğu XAML işlemci uygulamasında varsayılan olarak en-US olarak ayarlanır ve dönemin ondalık sınırlayıcı olmasını bekler. Bir öznitelik değerinin bileşenlerine dize türü dönüştürmesiyle Quaternion çakıştırılacağından, XAML'de belirtilmesi Quaternion durumunda ondalık sınırlayıcı olarak virgül karakterini kullanmaktan kaçınmanız gerekir.

XAML Öznitelik Kullanımı

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

XAML Değerleri

x
X Bu Quaternion yapının bileşeni.

Y
Y Bu Quaternion yapının bileşeni.

Z
Z Bu Quaternion yapının bileşeni.

w
W Bu Quaternion yapının bileşeni.

Oluşturucular

Quaternion(Double, Double, Double, Double)

Yapının yeni bir örneğini Quaternion başlatır.

Quaternion(Vector3D, Double)

Yapının yeni bir örneğini Quaternion başlatır.

Özellikler

Angle

Quaternion'un açısını derece cinsinden alır.

Axis

Quaternion eksenini alır.

Identity

Identity quaternion'ını alır.

IsIdentity

Belirtilen quaternion değerinin bir quaternion olup olmadığını belirten bir Identity değer alır.

IsNormalized

Quaternion'ın normalleştirilip normalleştirilmediğini belirten bir değer alır.

W

Quaternion'ın W bileşenini alır.

X

Quaternion'un X bileşenini alır.

Y

Quaternion'un Y bileşenini alır.

Z

Quaternion'un Z bileşenini alır.

Yöntemler

Add(Quaternion, Quaternion)

Belirtilen quaternions ekler.

Conjugate()

Bir quaternion öğesini eşlenikle değiştirir.

Equals(Object)

Eşitlik için iki Quaternion örneği karşılaştırır.

Equals(Quaternion)

Eşitlik için iki Quaternion örneği karşılaştırır.

Equals(Quaternion, Quaternion)

Eşitlik için iki Quaternion örneği karşılaştırır.

GetHashCode()

için Quaternionkarma kodunu döndürür.

Invert()

Belirtilen quaternion değerini tersiyle değiştirir.

Multiply(Quaternion, Quaternion)

Belirtilen Quaternion değerleri çarpar.

Normalize()

Normalleştirilmiş bir quaternion döndürür.

Parse(String)

öğesinin dize gösterimini Quaternion eşdeğer Quaternion yapıya dönüştürür.

Slerp(Quaternion, Quaternion, Double)

Küresel doğrusal ilişkilendirmeyi kullanarak iki yönlendirme arasında ara değer oluşturur.

Slerp(Quaternion, Quaternion, Double, Boolean)

Küresel doğrusal ilişkilendirme kullanarak, yapılar olarak Quaternion temsil edilen yönlendirmeler arasında ara değer oluşturur.

Subtract(Quaternion, Quaternion)

Bir Quaternion'i diğerinden çıkarır.

ToString()

Nesnesinin dize gösterimini oluşturur.

ToString(IFormatProvider)

Nesnesinin dize gösterimini oluşturur.

İşleçler

Addition(Quaternion, Quaternion)

Belirtilen Quaternion değerleri ekler.

Equality(Quaternion, Quaternion)

Tam eşitlik için iki Quaternion örneği karşılaştırır.

Inequality(Quaternion, Quaternion)

Tam eşitsizlik için iki Quaternion örneği karşılaştırır.

Multiply(Quaternion, Quaternion)

Belirtilen quaternion değerini başka bir quaternion ile çarpar.

Subtraction(Quaternion, Quaternion)

Belirtilen bir quaternion'i başka bir quaternion'dan çıkarır.

Belirtik Arabirim Kullanımları

IFormattable.ToString(String, IFormatProvider)

Bu üye Windows Presentation Foundation (WPF) altyapısını destekler ve doğrudan kodunuzdan kullanılması amaçlanmamıştır. Bu üyenin açıklaması için bkz ToString(String, IFormatProvider). .

Şunlara uygulanır