Hallo,
ich habe eine Frage zu einem speziellen Parameter, da MS dafür leider keine Dokumentation zur Verfügung zu stellen scheint. Ich versuche mich gerade darin, in Powerpoint mittels VBA Animationspfade zu zeichnen. Genauer gesagt brauche ich Kurven, bei denen ich den Anfangs- und den Endpunkt genau kenne und die einer Kreisbahn folgen. (Das ist der schwere Punkt)
Ich habe folgendes Skript gefunden, für das Zeichnen von Animationspfaden:
Sub Makeline()
Dim shpNew As Shape
Dim effNew As Effect
Dim aniMotion As AnimationBehavior
ActivePresentation.Slides(2).Shapes(3).Select
Set shpNew = ActiveWindow.Selection.ShapeRange.Item(1)
'Set effNew = ActivePresentation.Slides(1).TimeLine.MainSequence.AddEffect(Shape:=shpNew, effectid:=msoAnimEffectAppear)
Set effNew = ActivePresentation.Slides(2).TimeLine.MainSequence _
.AddEffect(Shape:=shpNew, effectid:=msoAnimEffectPathRight, _
trigger:=msoAnimTriggerWithPrevious, Level:=msoAnimateLevelNone)
Set aniMotion = effNew.Behaviors(1)
With aniMotion.MotionEffect
.Path = "M 2.22222E-6 4.44444E-6 C 0.01077 0.06366 0.05156 0.08819 0.09254 0.11018 C 0.46979 0.19352 0.48924 0.18842 0.48924 0.18842 "
End With
With effNew.Timing
.Duration = 5
.TriggerType = msoAnimTriggerWithPrevious
End With
End Sub
Das hier ist noch die Beispielkurve aus dem Originalscript.
Das Problem liegt nun in der .Path Zeile. Und zwar zeichnet Powerpoint Kurven mittels Bezierkurven. Ich steige leider nicht genau durch, wofür denn nun die einzelnen Parameter genau stehen. Um einen Kreis zu zeichnen (der aus 4 Segmenten besteht) braucht man für jedes Segment 4 Punkte. Start/Ende und zwei Spannpunkte, wie ich sie mal nennen will. Für einen Kreis müssen diese beiden Punkte an den Ecken eines Achtecks liegen, in dem sich der Kreis befindet.
http://www.vb-tec.de/pdf-bezier.htm
Da kann man das ganze für einen Abschnitt sehen. Es ist ja auch der Wert von c=0.55... angegeben, womit ich eigentlich die richtigen Werte ausrechnen sollte, da ich für unterschiedliche Radien einfach nur c mit r multiplizieren muss.
Leider weiß ich nicht, was denn die Path Zeile nun genau verlagt.
Wofür steht M? C steht offensichtlich für einen neuen Koordinatenpunkt und die Werte für einzelne Koordinaten werden immer im Verhältnis zur Folienbreite/Höhe angegeben (daher sind sie auch so klein). Ich weiß nun aber nicht, warum jeder Punkt 3 Wertepaare besitzt. Und vor allem, was in diese Wertepaare eingefügt werden soll.
Das Ziel wäre optimaler Weise ein Viertelkreis, bei dem ich den Radius beliebig verändern kann.
Beste Grüße!
|