Hallo,
ich möchte das sich z.B. ein Panel waagerecht vom linken Bildschirmrand zum rechten
Bildschirmrand hin- und herbewegt.
Das bekomme ich ohne Probleme hin- das Panel soll aber weich abbremsen und beschleunigen...
Es geht mir um das generelle Konzept. Wie programmiert man so etwas.
Bin für jeden Hinweis dankbar.
Panel waagerecht hin- und herbouncen
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1647
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Panel waagerecht hin- und herbouncen
Das nennt sich Übergangsfunktion (engl. easing). Ich hab so was schonmal für Servobewegungen gemacht.
Hab dafür einen C Quellcode gefunden und den nach Pascal portiert.
Schau auch mal unter http://easings.net/de
Hab dafür einen C Quellcode gefunden und den nach Pascal portiert.
Schau auch mal unter http://easings.net/de
-
- Beiträge: 130
- Registriert: Di 26. Jul 2011, 19:58
- OS, Lazarus, FPC: Deepin 20.2; Lazarus 2.0.0 + dfsg-2
- CPU-Target: 64Bit
Re: Panel waagerecht hin- und herbouncen
Hallo,
Du wirst sicher einen Timer benutzen und bei jedem Ereignis das Panel um einen Schritt verschieben.
In der Ereignis - Funktion kannst Du die Zeit bis zum nächsten Schritt jedes mal verkürzen. Damit steigt die Geschwindigkeit an.
Ab einer bestimmten Geschwindigkeit kannst Du das Verkürzten beenden.
Ab einer bestimmten Position kannst Du die Zeit wieder verlängern womit gebremst wird.
Um wie viel pro Schritt sinnvoll beschleunigt oder gebremst wird und welche Maximalgeschwindigkeit sinnvoll ist, muss Du selbst sehen .
Ob eine lineare Änderung ausreicht oder der Aufwand der Veränderung nach einer Funktion erfolgen muss, kann nur das praktische Beispiel entscheiden.
Du wirst sicher einen Timer benutzen und bei jedem Ereignis das Panel um einen Schritt verschieben.
In der Ereignis - Funktion kannst Du die Zeit bis zum nächsten Schritt jedes mal verkürzen. Damit steigt die Geschwindigkeit an.
Ab einer bestimmten Geschwindigkeit kannst Du das Verkürzten beenden.
Ab einer bestimmten Position kannst Du die Zeit wieder verlängern womit gebremst wird.
Um wie viel pro Schritt sinnvoll beschleunigt oder gebremst wird und welche Maximalgeschwindigkeit sinnvoll ist, muss Du selbst sehen .
Ob eine lineare Änderung ausreicht oder der Aufwand der Veränderung nach einer Funktion erfolgen muss, kann nur das praktische Beispiel entscheiden.
- BoraBora
- Beiträge: 50
- Registriert: So 11. Apr 2021, 16:00
- OS, Lazarus, FPC: FPC 3..2.2, L 2.2.0 , Linux Mint, WIN 10&11, Android,
- CPU-Target: xxBit
Re: Panel waagerecht hin- und herbouncen
Vielen Dank für die Tipps!
Easings war völlig neu für mich- wieder was gelernt.
Das mit dem Timer hatte ich schon so (halb) realisiert.
Mache nun folgendes: kommt das Panel an den jeweiligen Rand vergrößere ich
sukzessive die Intervalle des Timers und erreiche damit ein "Abbremsen".
Easings war völlig neu für mich- wieder was gelernt.
Das mit dem Timer hatte ich schon so (halb) realisiert.
Mache nun folgendes: kommt das Panel an den jeweiligen Rand vergrößere ich
sukzessive die Intervalle des Timers und erreiche damit ein "Abbremsen".