Liebe Freunde der grafischen Programmierung,
für mein kleines Würfelprojekt habe ich noch ein kleines Problem:
Da ich nicht weiß, wie man RotateTransform3D und TranslateTransform3D mit einander kombiniert, also ein Objekt komplett frei im Raum bewegen kann, habe ich mich an die MatrixTransform3D in Verbindung mit Quaternion
ran gewagt.
Es funktioniert soweit auch alles gut, aber ich hätte gerne auch den Komfort von Doubleanimtion. Und da komm ich nicht weiter.
Hier ein kleiner Auszug aus meinem Programm:
privatevoid button5_Click(object
sender, RoutedEventArgs e)
{
myAxisAngleRotation3D.Axis = newVector3D(0, 3, 0);
myAxisAngleRotation3D.Angle = 40;
myRotateTransform3D.Rotation = myAxisAngleRotation3D;
// Add the rotation transform to a Transform3DGroup
TransCube.OffsetZ = 10;
myTransform3DGroup.Children.Add(myRotateTransform3D);
myTransform3DGroup.Children.Add(TransCube);
DoubleAnimation da =newDoubleAnimation();
da.From = -30;
da.To = 30;
da.Duration = newDuration(TimeSpan.FromSeconds(3));
MatrixRotQuaternion(45, 10, 10, 10);
endMatrix3D = newMatrix3D(setM11, setM12, setM13, setM14, setM21, setM22, setM23, setM24, setM31,
setM32, setM33, setM34, setOffsetX, setOffsetY, setOffsetZ, setM44);
myMatrixTransform3D.Matrix = endMatrix3D;
myTransformGroup.Children.Clear();
myTransformGroup.Children.Add(myMatrixTransform3D);
//So hätte ich es gerne:
// myTransform3DGroup.BeginAnimation(Transform3DGroup.ChildrenProperty , da);
Hexagon2.Transform = myTransform3DGroup;
--------------
--------------
Dieses Beispiel ist jetzt keine Animation, ich weiß. An anderer Stelle lass ich es mit Compositiion_Target oder dem Dispatcher und einem Zähler laufen. Aber ich hätte es gerne so komfortabel wie bei TranslateTransform.BeginAni….
Das Problem, habe ich den Eindruck, liegt im …..ChildrenProperty, da hängt sich mein Debuger immer auf.
Ich habe keine Ahnung wie ich die Property konfigurieren soll. Mir ist aber klar, dass das notwendig ist. Woher soll denn das System auch wissen, was ich animieren will. setM11, setM12,….. oder….
Das ist eines der letzten Probleme ich gerade an meinem Projekt noch habe. Wenn ich dafür eine Lösung bekommen könnte, wäre wunderbar.
Mein Dank an alle schon mal, Alleine schon, weil ihr es gelesen habet.
gruss
peter