Seite 1 von 1

"Wave" erzeugen

Verfasst: 22.09.2021 10:30
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

Re: "Wave" erzeugen

Verfasst: 22.09.2021 11:01
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.

Re: "Wave" erzeugen

Verfasst: 22.09.2021 11:11
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.. :-(

Re: "Wave" erzeugen

Verfasst: 22.09.2021 11:26
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:

Re: "Wave" erzeugen

Verfasst: 29.04.2022 17:43
von udg
also ich hätte da für dich ein Tool programmiert mit dem du GLSL Code schreiben kannst und dann halt darstellen.
Bild

ist mal fürs Szene Democoding gewesen. Der GLSL Effekt agiert zur Musik. Aber man kann das ja beliebig umschreiben.

Re: "Wave" erzeugen

Verfasst: 02.05.2022 10:32
von techniker
Hallo udg,

Danke für die Rückmeldung.

OpenGL ist dafür deutlich überzogen, zumal es auch nur eine statische Grafik sein soll.
(Reines Hintergrundbild bei leerem Programmfenster - also nichts wichtiges..)

Re: "Wave" erzeugen

Verfasst: 05.05.2022 03:27
von udg
ok ;) dann wäre eine png als Hintergrund ausreichend gewesen. In corelDraw gibt es direkte Pinsel mit denen Du einen Strich ziehst und hast deine Wellen ;)

gibts bestimmt auch online Gens.

also dann, weiter machen