WPF: Bildmittelpunkt entlang eines Pfades animieren

16/12/2009 - 17:10 von Tobias | Report spam
Hallo allerseits,

mir bereitet momentan folgendes Problem Kopfzerbrechen.

Ich möchte ein Bild entlang eins Pfades animieren.
Das Bild soll also dem PFadverlauf folgen und sich dem Neigungswinkel des
Pfades entprechend drehen.

Klar ist, dass es dafür die DoubleAnimationUsingPath bzw.
PointAnimationUsingPath gibt. Mein Problem ist allerdings, dass sowohl der
Drehpunkt für die Rotation als auch der Bezugpunkt des Bildes, der dem Pfad
nachfahren soll, der Mittelpunkt des Bildes sein sollen (und nicht das obere
linke Pixel).

Leider bin ich - bis auf die Ellipse - auf kein passendes Objekt gestoßen,
dass eine CenterProperty hat. Da mein Bild allerdings Rechteckig ist, wàre
mir ein Rectangle lieber. Ein Rectangle mit einer Center-Property haber ich
aber nicht gefunden.
Nutze ich dennoch das Rectangle und animiere es entlang des Pfades,
funktioniert alles bis auf das Problem mit dem falschen Bezugspunkt. D.h. es
dreht sich um die linke obere Ecke und diese Ecke filgt auch dem Pfad (statt
dem erwünschten Mittelpunkt).
Nutze ich die Ellipse, funktioniert bei mir momentan auch nur das Animieren
der Ellipse entlang des PFades ohne Rotation aber himmerhin mit dem
Center-Punkt als Bezugspunkt. Wie hier eine Rotation um den CenterPunkt
erreiche, ist mir auch noch nicht klar.
Bei meinen Experimenten hat sich eine Ellipse jedes Mal vom vorgegebenen
Pfad gelöst, sobald ich die Rotation mit eingebracht habe.

Den Code meiner experimente füge ich vorerst nicht bei, da ich auch für
völlig andere Lösungsvorschlàge offen bin.

Ich hoffe, ihr könnt mir da ein paar Tips geben, da ich auch über diverse
Bücher und Dr. Google keine Lösung gefunden habe.


Mit freundlichen Grüßen,
Tobias
 

Lesen sie die antworten

#1 Tobias
16/12/2009 - 23:55 | Warnen spam
So, noch mal ich...

habe es jetzt soweit hinbekommen, dass sich die EllipseGeometry meinen
Wünschen entsprechend um den Pfad dreht und ihm folgt.
Einziges Problem ist jetzt noch, dass diese EllipseGeometry keine
Fill-Eigenschaft hat. Wenn ich also die EllipseGeometry in einen Path
einfüge und diesem das Bild mithilfe der ImageBrush übergebe, habe ich 1.
das Problem, dass das Bild grundsàtzlich mit der gleichen Height und Width
eingefügt wird, die auch die Ellipse hat. Dadurch werden die Ecken
abgeschnitten... das 2. Problem ist, dass sich zwar die Ellipse dreht, aber
das Bild darin starr bleibt. D.h. die Form àndert sich und dementsprechend
verzerrt es einfach nur das Bild, anstatt es mit zu drehen :(

Am Liebsten wàre mir immernoch ein Rectangle mit Center- und
Fill-Eigenschaften... aber wenn man das Bild auch anders in die Ellipse
einfügen könnte, so dass es vollstàndig in der Ellipse ist - die Ellipse
also größer als das Bild ist und das, was das Bild nicht ausfüllen kann eben
durchsichtig ist. Und nicht zu vergessen, sich das Bild auch mit der Ellipse
mitdrehet.

Hat jemand da einen Lösungsansatz für mich? Jeder Lösungsansatz der in eine
andere Richtung geht ist aber natürlich auch jeder Zeit willkommen :)
Würde mich wirklich sehr freuen.

Freundliche Grüße,
Tobias



"Tobias" schrieb im Newsbeitrag
news:
Hallo allerseits,

mir bereitet momentan folgendes Problem Kopfzerbrechen.

Ich möchte ein Bild entlang eins Pfades animieren.
Das Bild soll also dem PFadverlauf folgen und sich dem Neigungswinkel des
Pfades entprechend drehen.

Klar ist, dass es dafür die DoubleAnimationUsingPath bzw.
PointAnimationUsingPath gibt. Mein Problem ist allerdings, dass sowohl der
Drehpunkt für die Rotation als auch der Bezugpunkt des Bildes, der dem
Pfad nachfahren soll, der Mittelpunkt des Bildes sein sollen (und nicht
das obere linke Pixel).

Leider bin ich - bis auf die Ellipse - auf kein passendes Objekt gestoßen,
dass eine CenterProperty hat. Da mein Bild allerdings Rechteckig ist, wàre
mir ein Rectangle lieber. Ein Rectangle mit einer Center-Property haber
ich aber nicht gefunden.
Nutze ich dennoch das Rectangle und animiere es entlang des Pfades,
funktioniert alles bis auf das Problem mit dem falschen Bezugspunkt. D.h.
es dreht sich um die linke obere Ecke und diese Ecke filgt auch dem Pfad
(statt dem erwünschten Mittelpunkt).
Nutze ich die Ellipse, funktioniert bei mir momentan auch nur das
Animieren der Ellipse entlang des PFades ohne Rotation aber himmerhin mit
dem Center-Punkt als Bezugspunkt. Wie hier eine Rotation um den
CenterPunkt erreiche, ist mir auch noch nicht klar.
Bei meinen Experimenten hat sich eine Ellipse jedes Mal vom vorgegebenen
Pfad gelöst, sobald ich die Rotation mit eingebracht habe.

Den Code meiner experimente füge ich vorerst nicht bei, da ich auch für
völlig andere Lösungsvorschlàge offen bin.

Ich hoffe, ihr könnt mir da ein paar Tips geben, da ich auch über diverse
Bücher und Dr. Google keine Lösung gefunden habe.


Mit freundlichen Grüßen,
Tobias

Ähnliche fragen