"Wave" erzeugen

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
techniker
Beiträge: 138
Registriert: 27.01.2016 11:08
Wohnort: BY

"Wave" erzeugen

Beitrag von techniker »

Hi!

Hat jemand einen Tipp für mich, wie ich solche Linien (dienen nur der Optik) dynamisch erstellen lassen kann?
Welche mathematische Funktion könnte solche "Waves" erzeugen? :D

Danke :mrgreen:

Bild
Never change a running system - Never run a changed system!
(PB 5.62 [x86] und PB 5.71 [x86])
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8417
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 20.10
NVIDIA Quadro P2200
Wohnort: Saarbrücken
Kontaktdaten:

Re: "Wave" erzeugen

Beitrag von NicTheQuick »

Zum Beispiel mehrere überlagerte Sinus-Funktionen. Angenommen deine Bildschirmbreite ist 1920 Pixel, dann könntest du sowas machen:

f(x) = a1 * Sin(o1 + m1 * x * 2.0 * #PI / 1920) + a2 * Sin(o2 + m2 * x * 2.0 * #PI / 1920) + a3 * Sin(o3 + m3 * x * 2.0 * #PI / 1920) + ...

Wobei o1, o2, ... ein Offset darstellt, das du einmalig festlegen oder im Zuge der Animation auch etwas ändern kannst. Und m1, m2, ... ist ein Multiplikator um breitere oder engere Wellen darzustellen. a1, a2, ... sind die Amplituden der Wellen. In einer For-Schleife kannst du das dann recht fix dynamisch programmieren.

Wenn die gesamte Kurve nun noch gedreht sein soll, musst du entweder eine Rotationsmatrix nutzen oder falls du mit der Vector-Library arbeitest, kannst du dafür einfach RotateCoordinates() nutzen. Um die überlagerten Wellen wie in deinem Bild darzustellen, kannst du dir z.B. die letzten 10 Wellenparameter merken und immer alle diese 10 auf einmal zeichnen.
Bild
Benutzeravatar
techniker
Beiträge: 138
Registriert: 27.01.2016 11:08
Wohnort: BY

Re: "Wave" erzeugen

Beitrag von techniker »

Sinuswellen überlagern ist auch eine sehr gute Idee.. :-)
Danke für den Tipp.

Ich hatte mich schon an ganzrationalen Funktionen bis 5. Grades probiert - aber etwas ansehnliches kam dabei nicht heraus.. :-(
Never change a running system - Never run a changed system!
(PB 5.62 [x86] und PB 5.71 [x86])
Benutzeravatar
Kiffi
Beiträge: 10475
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: "Wave" erzeugen

Beitrag von Kiffi »

techniker hat geschrieben: 22.09.2021 10:30Hat jemand einen Tipp für mich, wie ich solche Linien (dienen nur der Optik) dynamisch erstellen lassen kann?
Bild

:mrgreen:
Hygge
Antworten