InteractionTrackerInertiaMotion 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
관성 상태 중에 InteractionTracker의 동작을 정의하는 ExpressionAnimation 입니다.
InteractionTrackerMotion 클래스에는 InteractionTracker가 특정 조건이 충족될 때 관성의 시작부터 끝까지의 동작을 정의하는 데 사용할 위치의 두 번째 파생 수식을 나타내는 두 개의 ExpressionAnimations가 포함되어 있습니다. InteractionTrackerMotion 클래스는 동작이 발생하는 시기를 정의하는 조건문과 InteractionTracker 가 최종 휴식 위치에 도달하는 방법에 대한 동작을 설명하는 수식의 두 부분으로 정의됩니다. InteractionTracker가 관성 상태일 때 사용할 사용자 지정 동작(예: 스프링 동작)을 정의해야 하는 경우 InteractionTrackerInertiaMotion 클래스를 활용합니다.
public ref class InteractionTrackerInertiaMotion sealed : InteractionTrackerInertiaModifier
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class InteractionTrackerInertiaMotion final : InteractionTrackerInertiaModifier
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class InteractionTrackerInertiaMotion : InteractionTrackerInertiaModifier
Public NotInheritable Class InteractionTrackerInertiaMotion
Inherits InteractionTrackerInertiaModifier
- 상속
-
Object Platform::Object IInspectable CompositionObject InteractionTrackerInertiaModifier InteractionTrackerInertiaMotion
- 특성
Windows 요구 사항
디바이스 패밀리 |
Windows 10 Anniversary Edition (10.0.14393.0에서 도입되었습니다.)
|
API contract |
Windows.Foundation.UniversalApiContract (v3.0에서 도입되었습니다.)
|
예제
void CustomSpringInertiaMotion(float dampingCoefficient, float springStiffnessCoefficient)
{
//
// Set up our inertia modifiers to use our custom motion
//
InteractionTrackerInertiaMotion[] modifiers =
new InteractionTrackerInertiaMotion[1];
var modifier1 = InteractionTrackerInertiaMotion.Create(_compositor);
/*
We create a custom spring motion for when the InteractionTracker passes the
maximum boundary.
When we hit the boundary, the amount of oscillation is determined by the distance to the far end point, the spring stiffness and damping rate.
*/
// Define the condition that the spring motion gets applied – when we pass the
// maximum boundary
modifier1.Condition = _compositor.CreateExpressionAnimation(
"this.Target.NaturalRestingPosition.X > this.Target.MaxPosition.X");
// Define the second derivative equation as a custom spring force motion
// Equation = kx–cv where (k is spring constant, c is damping, x is displacement)
modifier1.Motion = _compositor.CreateExpressionAnimation(
"(-springStiffnessCoefficient * (this.Target.Position.X – this.Target.MaxPosition.X)) + " +
"(-dampingCoefficient * target.PositionVelocityInPixelsPerSecond.X");
modifier1.Motion.SetScalarParameter("springStiffnessCoefficient", springStiffnessCoefficient);
modifier1.Motion.SetScalarParameter("dampingCoefficient", dampingCoefficient);
modifiers[0] = modifier1;
// Attach InertiaModifiers to the Y position component of InteractionTracker
_tracker.ConfigurePositionYInertiaModifiers(modifiers);
}
설명
InteractionTrackerInertiaMotion의 동작 구성 요소에 대한 ExpressionAnimation 을 빌드할 때 식은 두 번째 파생 수식으로 설명됩니다. 예를 들어 위의 코드 조각에서는 감쇠를 사용하여 Spring Force 동작에 대한 기본 수식을 활용합니다.
InteractionTrackerInertiaMotion 한정자를 InteractionTracker에 연결할 때 X/Y 위치 또는 배율로 구성합니다.
조건 속성을 정의하는 ExpressionAnimation 은 InteractionTracker 가 관성으로 들어갈 때만 한 번만 계산됩니다(즉, 손가락 해제와 같은 상호 작용이 완료될 때). 조건이 true로 평가되면 조건 식이 기술적으로 더 이상 true가 아니더라도 InertiaMotion 식은 관성의 나머지 부분에 대한 모든 프레임에서 평가됩니다.
InteractionTrackerInertiaMotion 한정자는 InteractionTracker가 위치를 계산하는 데 사용하는 수식을 변경합니다. 따라서 최종 휴식 위치는 수식 자체의 특성에 따라 결정됩니다. InteractionTracker가 특정 위치에서 중지되어야 하는 경우 InteractionTrackerInertiaRestingValue 한정자를 활용합니다.
속성
Comment |
CompositionObject와 연결할 문자열입니다. (다음에서 상속됨 CompositionObject) |
Compositor |
이 CompositionObject를 만드는 데 사용되는 Compositor입니다. (다음에서 상속됨 CompositionObject) |
Condition |
한정자를 적용해야 하는 시기를 설명하는 ExpressionAnimation 입니다. Condition 속성은 관성 중에 InteractionTracker에서 지정된 동작 수식을 사용하는 시기를 정의하는 ExpressionAnimation입니다. 이 식은 상호 작용이 발생한 후 한 번 평가되고 Bool 형식으로 resolve 합니다. 그렇지 않으면 조건이 평가될 때 오류가 throw됩니다. 식 작성에 대한 자세한 내용은 ExpressionAnimation 클래스 페이지를 참조하세요. |
Dispatcher |
CompositionObject의 디스패처입니다. (다음에서 상속됨 CompositionObject) |
DispatcherQueue |
CompostionObject에 대한 DispatcherQueue 를 가져옵니다. (다음에서 상속됨 CompositionObject) |
ImplicitAnimations |
이 개체에 연결된 암시적 애니메이션의 컬렉션입니다. (다음에서 상속됨 CompositionObject) |
Motion |
Condition 속성의 식이 true인 경우 InteractionTracker의 수정된 동작을 설명하는 ExpressionAnimation입니다. Motion 속성은 해당 조건이 충족될 때 관성 중에 InteractionTracker가 사용하는 동작을 설명하는 ExpressionAnimation입니다. InteractionTracker가 관성인 동안 식은 모든 프레임에서 평가되며 Float 형식으로 resolve 합니다. 그렇지 않으면 수식이 계산될 때 오류가 throw됩니다. 식 작성에 대한 자세한 내용은 ExpressionAnimation 클래스 페이지를 참조하세요. |
Properties |
CompositionObject와 연결된 속성의 컬렉션입니다. (다음에서 상속됨 CompositionObject) |