Unit für weiche Farb und Positionsübergänge

Zur Vorstellung von Komponenten und Units für Lazarus
Antworten
Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Unit für weiche Farb und Positionsübergänge

Beitrag von Komoluna »

Liebes Forum,

Vor kurzem suchte ich einen Algorithmus, womit weiche Bewegungen/Übergänge erzeugt werden können.
Man findet jedoch nichts, was man in irgendeiner Weise nach Pascal übersetzen könnte. Deswegen habe ich mich hingesetzt und habe eine Methode für Zahlen und eine für Farben(anwendung der ersten Methode) geschrieben.

Da ich gerne meine Erfahrungen teilen, und eure Meinung dazu hören/lesen wollte, stelle ich euch eine kurze Unit mit einer Testanwendung zur verfügung.
(Da es sich nicht um viel Quelltext handelt, verzichte ich auf jede Form der lizensierung(kann jeder beliebig verwenden))

Nach dem kompilieren des Beispielprojektes einfach auf den Button oder das Fenster klicken und zusehen

Kritik, Meinungsäußerungen, Verbesserungsvorschläge, etc. sind erwünscht

MFG

Komoluna
Dateianhänge
smoothtransitions.rar
Die entsprechende Unit+Testanwendung
(2.62 KiB) 119-mal heruntergeladen
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

RugiaArt
Beiträge: 41
Registriert: Do 11. Okt 2012, 18:50
OS, Lazarus, FPC: Win7 (L 1.0.0.2 FPC 2.6.0)
CPU-Target: 32Bit
Wohnort: Rügen
Kontaktdaten:

Re: Unit für weiche Farb und Positionsübergänge

Beitrag von RugiaArt »

gefällt mir!

hast du auch schon mal einen Farbkreis programmiert?

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: Unit für weiche Farb und Positionsübergänge

Beitrag von Scotty »


mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Unit für weiche Farb und Positionsübergänge

Beitrag von mse »

Auch in MSEgui gibt es Farbverläufe in Form der "twidget" property "face.fade", siehe procedure tcustomface.paint(), falls es dir nicht nur um zeitlich veränderliche Effekte geht.
http://sourceforge.net/p/mseide-msegui/ ... msegui.pas
Zum Entwerfen hat MSEide einen Dialog:
Dateianhänge
fade.png

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Unit für weiche Farb und Positionsübergänge

Beitrag von Komoluna »

1. Danke für das Feedback

2. Was meinst du mit Farbkreis? (sowas: http://www.html-seminar.de/bilder/farbkreis.jpg)

3. Gradientfill kann zwar Farbverläufe über Bildkoordinaten, aber mein Ziel war ja ein Farbverlauf mit der Zeit.

4. Es ist ja nicht nur eine Farbtransitionsmethode sondern auch eine allgemeine Transitionsmethode für Bewegungen enthalten.

5. Bei meinem Pokémon-clone sind in dem mit escape aufrufbaren Menü beide funktionen eingebaut(dafür habe ich sie entwickelt)

Für das weiche der Bewegung verwende ich den Tangens Hyperbolicus, dessen veränderung am Anfang und am Ende verlangsamt, was eine Art "natürliche" Bewegung/Übergang erschafft.

Edit: Wie gesagt, wenn irgendwer die funktionen verwenden will(direkt oder als Idee), so kann er das gerne tun.
Als ich sowas gesucht habe, hab ich stundenlang gesucht, ohne etwas vernünftiges zu finden(es muss ja nicht jeder das Rad neu erfinden :wink: )
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Unit für weiche Farb und Positionsübergänge

Beitrag von mse »

Komoluna hat geschrieben:Für das weiche der Bewegung verwende ich den Tangens Hyperbolicus, dessen veränderung am Anfang und am Ende verlangsamt, was eine Art "natürliche" Bewegung/Übergang erschafft.

Da könntest du auch einen Blick in die Fahrstuhlsimulation in Kapitel 5 von
viewtopic.php?f=53&t=7432
werfen welche ohne transzendente Funktion auskommt. Dabei werden sowohl Beschleunigung als auch Geschwindigkeit begrenzt, was dann recht sanft wirkt.

RugiaArt
Beiträge: 41
Registriert: Do 11. Okt 2012, 18:50
OS, Lazarus, FPC: Win7 (L 1.0.0.2 FPC 2.6.0)
CPU-Target: 32Bit
Wohnort: Rügen
Kontaktdaten:

Re: Unit für weiche Farb und Positionsübergänge

Beitrag von RugiaArt »

Komoluna hat geschrieben:2. Was meinst du mit Farbkreis? (sowas: http://www.html-seminar.de/bilder/farbkreis.jpg)


ja genau so ein Kreis, hast du schon sowas gemacht oder jemand anders vll?

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Unit für weiche Farb und Positionsübergänge

Beitrag von Komoluna »

hab ich noch nie ausprobiert, wäre aber mal interessant...
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

Antworten