Panel waagerecht hin- und herbouncen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
BoraBora
Beiträge: 7
Registriert: So 11. Apr 2021, 16:00
OS, Lazarus, FPC: Linux Mint, Win 10, Android
CPU-Target: xxBit

Panel waagerecht hin- und herbouncen

Beitrag von BoraBora »

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.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 856
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.11 FPC 3.2)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Panel waagerecht hin- und herbouncen

Beitrag von fliegermichl »

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

aro
Beiträge: 127
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

Beitrag von aro »

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.

BoraBora
Beiträge: 7
Registriert: So 11. Apr 2021, 16:00
OS, Lazarus, FPC: Linux Mint, Win 10, Android
CPU-Target: xxBit

Re: Panel waagerecht hin- und herbouncen

Beitrag von BoraBora »

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".

Antworten