Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Funktionen sehr schnell plotten
digi333
myCSharp.de - Member



Dabei seit:
Beiträge: 302

Themenstarter:

Funktionen sehr schnell plotten

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

was hat ein plotter mit zedgraph und vor allem mit FPS zu tun???
digi333
myCSharp.de - Member



Dabei seit:
Beiträge: 302

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

ich bin immer noch äußerst verwirrt. reden wir hier wirklich von so einem plotter ?
tscherno
myCSharp.de - Member

Avatar #avatar-2584.gif


Dabei seit:
Beiträge: 637
Herkunft: Nürnberger Land

beantworten | zitieren | melden

Hallo JAck30lena,

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

Gruss
tscherno
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von tscherno am .
To understand recursion you must first understand recursion
-
http://www.ilja-neumann.com
C# Gruppe bei last.fm
private Nachricht | Beiträge des Benutzers
digi333
myCSharp.de - Member



Dabei seit:
Beiträge: 302

Themenstarter:

beantworten | zitieren | melden

Richtig! ich rede von einem Funktionsplotter.
private Nachricht | Beiträge des Benutzers
digi333
myCSharp.de - Member



Dabei seit:
Beiträge: 302

Themenstarter:

beantworten | zitieren | melden

Gibt es noch andere Funktionsplotter außer ZedGraph?
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
digi333
myCSharp.de - Member



Dabei seit:
Beiträge: 302

Themenstarter:

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

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

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5966
Herkunft: Leipzig

beantworten | zitieren | melden

Zitat von digi333
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
private Nachricht | Beiträge des Benutzers
digi333
myCSharp.de - Member



Dabei seit:
Beiträge: 302

Themenstarter:

beantworten | zitieren | melden

@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!
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von digi333 am .
Attachments
private Nachricht | Beiträge des Benutzers
Sweet
myCSharp.de - Member



Dabei seit:
Beiträge: 119
Herkunft: Graz/Österreich

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Sweet am .
"2 Dinge sind unendlich die Dummheit der Menschen und das Universum, aber beim Universum bin ich mir noch nicht so ganz sicher."
- Albert Einstein
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

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.
digi333
myCSharp.de - Member



Dabei seit:
Beiträge: 302

Themenstarter:

beantworten | zitieren | melden

Zitat von JAck30lena
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?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von digi333 am .
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

schau mal auf
Codeproject
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo digi333,

[Artikel] Zeichnen in Windows-Programme

herbivore
private Nachricht | Beiträge des Benutzers
steffen_dec
myCSharp.de - Member



Dabei seit:
Beiträge: 325

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von steffen_dec am .
private Nachricht | Beiträge des Benutzers