Laden...

Funktionen sehr schnell plotten

Erstellt von digi333 vor 15 Jahren Letzter Beitrag vor 9 Jahren 8.115 Views
D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 15 Jahren
Funktionen sehr schnell plotten

Ich möchte in meiner Multimedia-Oberfläche bestimmte Sachen plotten... z.B. ein Schnitt im Video erkennbar und so weiter. Momentan nutze ich ZedGraph. Wenn ich diesen ausschalte bin ich bei 130 FPS und wenn ich es Anschalte bei 50 FPS.

Kennt jemand einen schnellen Plotter? Brauch nicht mächtig sein.

Gelöschter Account
vor 15 Jahren

was hat ein plotter mit zedgraph und vor allem mit FPS zu tun???

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 15 Jahren

Die Multimedia Oberflache kann Sachen plotten. Wo war ein Schnitt und wie viele Personen sind zu sehen? Das natürlich geplottet für jedes Frame des Videos. Wenn ich aber die Werte nicht plotte kann ich 130 Frames in der Sekunde verarbeiten. Sobald ich ZedGraph irgendwas plotten lasse, geht die Leistung in den Keller mit 50 FPS.

Gelöschter Account
vor 15 Jahren

ich bin immer noch äußerst verwirrt. reden wir hier wirklich von so einem plotter ?

630 Beiträge seit 2007
vor 15 Jahren

Hallo JAck30lena,

ich denke digi333 meint einfach "Graph zeichnen auf ein Form".

Gruss
tscherno

To understand recursion you must first understand recursion

http://www.ilja-neumann.com
C# Gruppe bei last.fm

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 15 Jahren

Richtig! ich rede von einem Funktionsplotter. 😁

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 15 Jahren

Gibt es noch andere Funktionsplotter außer ZedGraph?

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo digi333,

wenn du beliebige Funktionen platten lassen willst (und nicht nur welche, die sich durch Splines darstellen lassen), dann muss man ja (vereinfacht gesagt) für jeden X-Wert, den passenden Y-Wert ausrechnen und das entsprechende Pixel setzen. Das ist natürlich ziemlich aufwändig. Die Frage ist also, ob überhaupt eine Grafikbibliothek schnell genug für deine Ansprüche ist. Ich meine, 50FPS sind ja nun nicht gerade vollkommen lahm.

herbivore

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 15 Jahren

50 FPS sind aber gerade mal 40% der üblichen Geschwindigkeit. 60% Verlust bei Verwendung von ZedGraph ist schon nicht so toll. Selber zeichnen ist auch nicht so das wahre. Kann man vielleicht aus C++ oder anderen Sprachen gute Plotter importieren? Es muss doch noch mehr Möglichkeiten geben als ZedGraph? Warum bringt sowas C# nicht von Hause aus mit?

Gelöschter Account
vor 15 Jahren

zeig mal einen screenshot von dem wie du es gerne haben würdest. evtl kann man ja da auch etwas schnelleres/einfacheres nehmen.

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo digi333,

wenn mir mit 1MBit/s eine 10KB-Datei in einer 1/10s heruntergeladen wird, wozu brauche ich dann 2MBit? Schnell genug ist schnell genug. Natürlich sind 50 FPS weniger als die Hälfte von 130 FPS, aber wozu brauchst du 130 FPS?

Was ist außerdem die übliche Geschwindigkeit? Ein leeres Bild darstellen oder was?

herbivore

5.657 Beiträge seit 2006
vor 15 Jahren

Ich möchte in meiner Multimedia-Oberfläche bestimmte Sachen plotten... z.B. ein Schnitt im Video erkennbar und so weiter. Momentan nutze ich ZedGraph. Wenn ich diesen ausschalte bin ich bei 130 FPS und wenn ich es Anschalte bei 50 FPS.

Kennt jemand einen schnellen Plotter? Brauch nicht mächtig sein.

Zedgraph rendert demzufolge in 0,0125 Sekunden. Das ist doch ein ganz brauchbarer Wert, je nachdem wie komplex die Funktion ist und wie groß die Bildausgabe ist. Um einen anderen Weg zu finden, müßtest du uns mehr über deine Anwendung erzählen.

Kommt ja immerhin darauf an, was du vorhast, wenn z.B. bei jedem Frame nur ein neuer Wert dazukommt, müßte man nur den Funktionswert dafür berechnen und könnte die alten Werte belassen und evtl. nach links (oder oben, oder sonstwo) verschieben.

Wenn es tatsächlich die ausgabe ist, die bei dir so schnell gehen soll (50fps wird doch immernoch ohne zu flimmern dargestellt), würde ich DirectX benutzen!

Christian

Weeks of programming can save you hours of planning

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 15 Jahren

@Herbivore: Also ohne Bearbeitung kommen die Daten mit 180 FPS vom FFMPEG-Decoder. 50 FPS ist zwar schnell, aber die Geschwindigkeit sollte aber auch im Vordergrund stehen, da sehr viele Videos bearbeitet werden sollen. Einige FPS würde ich zur Darstellung opfern, aber halt nicht 60% der Last.

@MrSparkle: Es kommt eigentlich nur ein neuer Wert hinzu pro Frame. Es könnte auch so sein, dass nur der aktuelle Wert gezeigt wird und die letzten 400 Werte. Sowas hab ich aber bisher noch nicht gesehen (außer bei Delphi).

Sowas wäre toll! Wenn es irgendwas gäbe, dass das sehr schnell anzeigen könnte. Mehrere Funktionen (wenn gewollt), Laufleiste und vor allem sehr schnell!

S
119 Beiträge seit 2008
vor 15 Jahren

Wie stark die Frame Rate einbricht kannst du nicht so einfach beeinflussen. Du kannst nicht einfach sagen ich benutz jetzt ne andere Klasse und alles geht schneller und besser. Es hängt hauptsächlich davon ab wie gut dein Code ist bzw wie kompliziert die Berechnungen sind die du da anstellst.

In diesem Sinne kann ich nur sagen solltest du in deinem Code ein Thread.Sleep(1000); finden, lösch die Zeile 😉

/EDIT Wenn die Berechnungen ziemlich komplex sind und die Genauichkeit des Graphen nicht so wichtig ist, könntest du mal versuchen die Genauichkeit zu verringern.

"2 Dinge sind unendlich die Dummheit der Menschen und das Universum, aber beim Universum bin ich mir noch nicht so ganz sicher."

  • Albert Einstein
Gelöschter Account
vor 15 Jahren

wenn dieser simple graph alles ist, was du ereichen willst, bist du besser beraten, wenn du dir einen eigenen schreibst. das ist nciht kompliziert aber deutlich schneller, da der zedgraph einiges an overhead mitschleppt und für solche fälle eigendlich nciht ausgelegt ist.

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 15 Jahren

wenn dieser simple graph alles ist, was du ereichen willst, bist du besser beraten, wenn du dir einen eigenen schreibst. das ist nciht kompliziert aber deutlich schneller, da der zedgraph einiges an overhead mitschleppt und für solche fälle eigendlich nciht ausgelegt ist.

Hat jemand schon mal ein fertiges Projekt in dieser Richtung gesichtet?

Gelöschter Account
vor 15 Jahren

schau mal auf
Codeproject

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo digi333,

[Artikel] Zeichnen in Windows-Programme

herbivore

S
322 Beiträge seit 2007
vor 9 Jahren

Hallo,

was ist wenn du ZedGraph nur alle 10 Werte aktualisierst? Bei 130 Paint-Aufrufen in einer Sekunde, kommt das menschliche auge ehe nicht mit...

ups, der Thread ist ja uralt, bin wohl über Google irgendwie draufgekommen und gar nicht gemerkt 😁