QuaternionRotation3D 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
4원수로 정의된 회전 변환을 나타냅니다.
public ref class QuaternionRotation3D sealed : System::Windows::Media::Media3D::Rotation3D
public sealed class QuaternionRotation3D : System.Windows.Media.Media3D.Rotation3D
type QuaternionRotation3D = class
inherit Rotation3D
Public NotInheritable Class QuaternionRotation3D
Inherits Rotation3D
- 상속
예제
//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
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<DockPanel>
<Viewbox>
<Canvas Width="321" Height="201">
<!-- The Viewport3D provides a rendering surface for 3-D visual content. -->
<Viewport3D Name="MyAnimatedObject"
ClipToBounds="True" Width="150" Height="150"
Canvas.Left="0" Canvas.Top="10">
<!-- Defines the camera used to view the 3D object. -->
<Viewport3D.Camera>
<PerspectiveCamera x:Name="myPerspectiveCamera" Position="0,0,2" LookDirection="0,0,-1"
FieldOfView="60" />
</Viewport3D.Camera>
<!-- The ModelVisual3D children contain the 3D models -->
<Viewport3D.Children>
<!-- This ModelVisual3D defines the lights cast in the scene. Without light, the
3D object cannot be seen. Also, the direction of the lights affect shadowing. -->
<ModelVisual3D>
<ModelVisual3D.Content>
<DirectionalLight Color="#FFFFFF" Direction="-0.612372,-0.5,-0.612372" />
</ModelVisual3D.Content>
</ModelVisual3D>
<ModelVisual3D>
<ModelVisual3D.Content>
<GeometryModel3D>
<!-- The geometry specifes the shape of the 3D plane. In this case, a flat sheet is created. -->
<GeometryModel3D.Geometry>
<MeshGeometry3D
TriangleIndices="0,1,2 3,4,5 "
Normals="0,0,1 0,0,1 0,0,1 0,0,1 0,0,1 0,0,1 "
TextureCoordinates="0,0 1,0 1,1 1,1 0,1 0,0 "
Positions="-0.5,-0.5,0.5 0.5,-0.5,0.5 0.5,0.5,0.5 0.5,0.5,0.5 -0.5,0.5,0.5 -0.5,-0.5,0.5 " />
</GeometryModel3D.Geometry>
<!-- The material specifies the material applied to the plane. In this case it is a linear gradient.-->
<GeometryModel3D.Material>
<MaterialGroup>
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
<LinearGradientBrush.GradientStops>
<GradientStop Color="Yellow" Offset="0" />
<GradientStop Color="Red" Offset="0.25" />
<GradientStop Color="Blue" Offset="0.75" />
<GradientStop Color="LimeGreen" Offset="1" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</MaterialGroup>
</GeometryModel3D.Material>
<!-- The Transform specifies how to transform the 3D object. The rotation
is animated using the Storyboard below. -->
<GeometryModel3D.Transform>
<RotateTransform3D>
<RotateTransform3D.Rotation>
<QuaternionRotation3D x:Name="myQuaternionRotation3D" />
</RotateTransform3D.Rotation>
</RotateTransform3D>
</GeometryModel3D.Transform>
</GeometryModel3D>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D.Children>
<!-- 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>
</Viewport3D>
</Canvas>
</Viewbox>
</DockPanel>
</Page>
생성자
QuaternionRotation3D() |
QuaternionRotation3D 클래스의 새 인스턴스를 초기화합니다. |
QuaternionRotation3D(Quaternion) |
지정된 QuaternionRotation3D를 사용하여 Quaternion 클래스의 새 인스턴스를 초기화합니다. |
필드
QuaternionProperty |
Quaternion 종속성 속성을 나타냅니다. |
속성
CanFreeze |
개체를 수정 불가능으로 설정할 수 있는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Freezable) |
DependencyObjectType |
DependencyObjectType 이 instance CLR 형식을 래핑하는 을 가져옵니다. (다음에서 상속됨 DependencyObject) |
Dispatcher |
이 Dispatcher와 연결된 DispatcherObject를 가져옵니다. (다음에서 상속됨 DispatcherObject) |
HasAnimatedProperties |
하나 이상의 AnimationClock 개체가 이 개체의 종속성 속성과 연결되어 있는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Animatable) |
IsFrozen |
개체가 현재 수정 가능한지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Freezable) |
IsSealed |
이 인스턴스가 현재 봉인되어 있는지(읽기 전용인지) 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 DependencyObject) |
Quaternion |
대상 회전을 정의하는 Quaternion을 가져오거나 설정합니다. |
메서드
ApplyAnimationClock(DependencyProperty, AnimationClock) |
지정된 DependencyProperty에 AnimationClock을 적용합니다. 속성에 이미 애니메이션 효과가 적용되어 있으면 SnapshotAndReplace 전달 동작이 사용됩니다. (다음에서 상속됨 Animatable) |
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
지정된 DependencyProperty에 AnimationClock을 적용합니다. 속성에 이미 애니메이션이 적용되어 있으면 지정된 HandoffBehavior가 사용됩니다. (다음에서 상속됨 Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline) |
지정된 DependencyProperty에 애니메이션을 적용합니다. 애니메이션은 다음 프레임을 렌더링할 때 시작됩니다. 지정된 속성에 이미 애니메이션 효과가 적용되어 있으면 SnapshotAndReplace 전달 동작이 사용됩니다. (다음에서 상속됨 Animatable) |
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
지정된 DependencyProperty에 애니메이션을 적용합니다. 애니메이션은 다음 프레임을 렌더링할 때 시작됩니다. 지정된 속성에 이미 애니메이션이 적용되어 있으면 지정된 HandoffBehavior가 사용됩니다. (다음에서 상속됨 Animatable) |
CheckAccess() |
호출 스레드가 이 DispatcherObject에 액세스할 수 있는지 여부를 확인합니다. (다음에서 상속됨 DispatcherObject) |
ClearValue(DependencyProperty) |
속성의 로컬 값을 지웁니다. 지울 속성이 DependencyProperty 식별자에서 지정됩니다. (다음에서 상속됨 DependencyObject) |
ClearValue(DependencyPropertyKey) |
읽기 전용 속성의 로컬 값을 지웁니다. 선언할 속성이 DependencyPropertyKey에서 지정됩니다. (다음에서 상속됨 DependencyObject) |
Clone() |
이 개체 값의 전체 복사본을 만들어 이 QuaternionRotation3D의 수정 가능한 복제본을 만듭니다. 종속성 속성을 복사하는 경우 이 메서드는 더 이상 확인되지 않을 수도 있는 리소스 참조와 데이터 바인딩을 복사하지만 애니메이션이나 애니메이션의 현재 값은 복사하지 않습니다. |
CloneCore(Freezable) |
기본(애니메이션이 적용되지 않은) 속성 값을 사용하여 인스턴스를 지정된 Freezable의 복제본(전체 복사본)으로 만듭니다. (다음에서 상속됨 Freezable) |
CloneCurrentValue() |
QuaternionRotation3D 개체의 현재 값에 대한 전체 복사본을 만들어 이 개체의 수정 가능한 복제본을 만듭니다. 리소스 참조, 데이터 바인딩 및 애니메이션은 복사되지 않지만 이러한 요소의 현재 값은 복사됩니다. |
CloneCurrentValueCore(Freezable) |
현재 속성 값을 사용하여 이 인스턴스를 지정된 Freezable의 수정 가능한 클론(전체 복사본)으로 만듭니다. (다음에서 상속됨 Freezable) |
CoerceValue(DependencyProperty) |
지정된 종속성 속성의 값을 강제 변환합니다. 호출하는 DependencyObject에 있으므로 이 작업은 종속성 속성의 속성 메타데이터에 지정된 CoerceValueCallback 함수를 호출하여 수행합니다. (다음에서 상속됨 DependencyObject) |
CreateInstance() |
Freezable 클래스의 새 인스턴스를 초기화합니다. (다음에서 상속됨 Freezable) |
CreateInstanceCore() |
파생 클래스에서 구현되는 경우 Freezable 파생 클래스의 새 인스턴스를 만듭니다. (다음에서 상속됨 Freezable) |
Equals(Object) |
제공된 DependencyObject가 현재 DependencyObject에 해당하는지 여부를 확인합니다. (다음에서 상속됨 DependencyObject) |
Freeze() |
현재 개체를 수정할 수 없게 설정하고 해당 IsFrozen 속성을 |
FreezeCore(Boolean) |
이 Animatable 개체를 수정할 수 없게 만들거나, 수정할 수 없게 만들 수 있는지 확인합니다. (다음에서 상속됨 Animatable) |
GetAnimationBaseValue(DependencyProperty) |
지정된 DependencyProperty의 애니메이션이 적용되지 않은 값을 반환합니다. (다음에서 상속됨 Animatable) |
GetAsFrozen() |
애니메이션이 적용되지 않은 기준 속성 값을 사용하여 Freezable의 고정된 복사본을 만듭니다. 복사본이 고정되므로 고정된 하위 개체는 모두 참조를 통해 복사됩니다. (다음에서 상속됨 Freezable) |
GetAsFrozenCore(Freezable) |
기본(애니메이션이 적용되지 않은) 속성 값을 사용하여 인스턴스를 지정된 Freezable의 고정된 복제본으로 만듭니다. (다음에서 상속됨 Freezable) |
GetCurrentValueAsFrozen() |
현재 속성 값을 사용하여 Freezable의 고정된 복사본을 만듭니다. 복사본이 고정되므로 고정된 하위 개체는 모두 참조를 통해 복사됩니다. (다음에서 상속됨 Freezable) |
GetCurrentValueAsFrozenCore(Freezable) |
현재 인스턴스를 지정된 Freezable의 고정 클론으로 만듭니다. 개체에 애니메이션 효과를 준 종속성 속성이 있는 경우 애니메이션 효과를 준 현재 값이 복사됩니다. (다음에서 상속됨 Freezable) |
GetHashCode() |
이 DependencyObject의 해시 코드를 가져옵니다. (다음에서 상속됨 DependencyObject) |
GetLocalValueEnumerator() |
이 DependencyObject에 대해 로컬로 값을 설정한 종속성 속성을 확인하기 위한 특수 열거자를 만듭니다. (다음에서 상속됨 DependencyObject) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
GetValue(DependencyProperty) |
이 DependencyObject의 인스턴스에서 종속성 속성의 현재 유효 값을 반환합니다. (다음에서 상속됨 DependencyObject) |
InvalidateProperty(DependencyProperty) |
지정된 종속성 속성의 유효 값을 다시 계산합니다. (다음에서 상속됨 DependencyObject) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
OnChanged() |
현재 Freezable 개체가 수정될 때 호출됩니다. (다음에서 상속됨 Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
방금 설정된 DependencyObjectType 데이터 멤버에 대한 적절한 컨텍스트 포인터를 설정합니다. (다음에서 상속됨 Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
이 멤버는 WPF(Windows Presentation Foundation) 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. (다음에서 상속됨 Freezable) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
OnPropertyChanged(DependencyPropertyChangedEventArgs)의 DependencyObject 구현을 재정의하여 Freezable 형식의 변화하는 종속성 속성에 대한 응답으로 Changed 처리기도 호출합니다. (다음에서 상속됨 Freezable) |
ReadLocalValue(DependencyProperty) |
종속성 속성의 로컬 값을 반환합니다(있는 경우). (다음에서 상속됨 DependencyObject) |
ReadPreamble() |
유효한 스레드에서 Freezable에 액세스하고 있는지 확인합니다. Freezable 상속자는 종속성 속성이 아닌 데이터 멤버를 읽는 API의 시작 부분에서 이 메서드를 호출해야 합니다. (다음에서 상속됨 Freezable) |
SetCurrentValue(DependencyProperty, Object) |
해당 값 소스를 변경하지 않고 종속성 속성의 값을 설정합니다. (다음에서 상속됨 DependencyObject) |
SetValue(DependencyProperty, Object) |
지정된 종속성 속성 식별자를 가진 종속성 속성의 로컬 값을 설정합니다. (다음에서 상속됨 DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
종속성 속성의 DependencyPropertyKey 식별자에 의해 지정된 읽기 전용 종속성 속성의 로컬 값을 설정합니다. (다음에서 상속됨 DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
serialization 프로세스에서 지정된 종속성 속성의 값을 직렬화해야 하는지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 DependencyObject) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Rotation3D) |
ToString(IFormatProvider) |
현재 String를 나타내는 지정된 형식을 사용하여 Object을 반환합니다. (다음에서 상속됨 Rotation3D) |
VerifyAccess() |
호출 스레드에서 이 DispatcherObject에 액세스할 수 있는지 확인합니다. (다음에서 상속됨 DispatcherObject) |
WritePostscript() |
Changed 에 대한 Freezable 이벤트를 발생시키고 해당 OnChanged() 메서드를 호출합니다. Freezable에서 파생된 클래스는 종속성 속성으로 저장되지 않은 클래스 멤버를 수정하는 모든 API의 끝에서 이 메서드를 호출해야 합니다. (다음에서 상속됨 Freezable) |
WritePreamble() |
Freezable이 고정되어 있지 않고 유효한 스레드 컨텍스트에서 액세스되고 있는지 확인합니다. Freezable 상속자는 종속성 속성이 아닌 데이터 멤버에 쓰는 API의 시작 부분에서 이 메서드를 호출해야 합니다. (다음에서 상속됨 Freezable) |
이벤트
Changed |
Freezable 또는 여기에 들어 있는 개체가 수정될 때 발생합니다. (다음에서 상속됨 Freezable) |
명시적 인터페이스 구현
IFormattable.ToString(String, IFormatProvider) |
지정된 형식을 사용하여 현재 인스턴스 값의 형식을 지정합니다. (다음에서 상속됨 Rotation3D) |
적용 대상
.NET