У меня есть ModelVisual3D куба. Я хочу перевести и повернуть его одновременно. Я хочу, чтобы центр вращения находился посередине куба (куб вращается вокруг своей оси).
Но когда я пытаюсь сделать это, применяя обе трансформации, эффект не тот, который вы ожидаете. Поскольку объект перемещается, центр вращения отличается, что заставляет его двигаться и вращаться странным образом. Как получить желаемый эффект?
Transform3DGroup transGroup = new Transform3DGroup();
DoubleAnimation cardAnimation = new DoubleAnimation();
cardAnimation.From = 0;
cardAnimation.To = 3;
cardAnimation.Duration = new Duration(TimeSpan.FromSeconds(2));
Transform3D transform = new TranslateTransform3D(0,0,0);
transGroup.Children.Add(transform);
RotateTransform3D rotateTransform = new RotateTransform3D();
AxisAngleRotation3D rotateAxis =
new AxisAngleRotation3D(new Vector3D(0, 1, 0), 180);
Rotation3DAnimation rotateAnimation =
new Rotation3DAnimation(rotateAxis, TimeSpan.FromSeconds(2));
rotateAnimation.DecelerationRatio = 0.8;
transGroup.Children.Add(rotateTransform);
Model.Transform = transGroup;
transform.BeginAnimation(TranslateTransform3D.OffsetXProperty,
cardAnimation);
rotateTransform.BeginAnimation(RotateTransform3D.RotationProperty,
rotateAnimation);