Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Khabarakh,
14. Jun 2009
Läuft auf eine quadratische Gleichung hinaus, nehmen wir vielleicht doch was Einfacheres :stupid: .
Wie wäre es mit einer quadratischen Bezier-Kurve? Dort hast du neben Start- und Endpunkt noch einen dritten Punkt, dem sich die Kurve annähert. Simpel, aber trotzdem hübsch :mrgreen: .
procedure TSplashScreenForm.Timer_BewegungTimer(Sender: TObject);
var
t: Real;
begin
If Count < 10 then...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Khabarakh,
13. Jun 2009
Du meinst den X-Wert des Scheitels? Der läge aber nur genau in der Mitte, wenn Anfang und Ende den gleichen Y-Wert besitzen, tun sie das?
Ansonsten bräcuhte ich wie gesagt nur eine Angabe, wie tief der Scheitel liegen soll, der X-Wert ergibt sich dann von selbst.
Im Anhang mal, wie ich es verstanden habe. Parameter sind rot: Anfang, Ende, Scheitel-Y
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Khabarakh,
13. Jun 2009
Gut, dass man das auch mal erfährt ;) ...
Bei meiner Formel startet die Form im Parabelscheitel. Wenn das nicht so sein soll, musst du schon festlegen, wie weit sie sich erst nach unten bewegen soll.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Khabarakh,
13. Jun 2009
Da hast du aber einiges in meiner Formel verdreht ;) .
Ich habe mal Struktur und Formatierung verändert, so funktioniert es bei mir:
const
DestX = 100;
DestY = 100;
procedure TSplashScreenForm.FormActivate(Sender: TObject);
begin
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Khabarakh,
12. Jun 2009
Wenn Left x2 wird, wird auch Top y2, soviel steht in meiner Formel fest ;) . Ansonsten bräuchten wir mal etwas Code.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Khabarakh,
11. Jun 2009
Es sei (x1|y1) der Start-, (x2|y2) der Endpunkt der Bewegung.
Im Endpunkt muss gelten: y2-y1 = a (x2-x1)² -> a = (y2-y1) / (x2-x1)²
Wenn du Left wie in deinem ersten Beitrag gleichmäßig (linear) von x1 bis x2 laufen lässt, ergibt sich für jeden Schritt:
Top := y1 + a * Sqr(Left - x1)