LabVIEWForum.de
Graphen mit der Maus "malen" - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Graphen mit der Maus "malen" (/Thread-Graphen-mit-der-Maus-malen)

Seiten: 1 2 3


Graphen mit der Maus "malen" - Peer - 12.04.2011 09:54

Moin,
ich arbeite seid einigen Wochen mit Labview und bin grade an einem Punkt angekommen, wo ich nicht so richtig weiß, wie ich weiter machen soll. Ich hoffe ihr könnt mir dabei helfen.
Ich habe einen Maussensor mit einem VI kalibriert und mir eigene X- und Y-Achsen erstellt. Ich lasse mir die aktuelle Position der Maus in einem Graphen anzeigen, würde allerdings auch gerne sehen, wo ich bisher mit der Maus überall war.
Das heißt ich möchte mit meiner Maus einen Graphen malen. Ich hab mir gedacht, dass das nicht besonders schwer sein kann, aber ich finde einfach nicht die richtigen Funktionen.
Ich hab mir überlegt, dass ich alle Daten in ein Array schreibe und die Werte dann plotte, allerdings hätte ich dann eine Begrenzung der Strecke und ich möchte auch kein riesiges Array bauen...
Habt ihr da eine Lösung oder ein Tipp für mich?
Vielen Dank
Peer


RE: Graphen mit der Maus "malen" - jg - 12.04.2011 10:01

Dazu gibt es ein fertiges Bsp im NI Example Finder (Draw Graphs with Events.vi).

Gruß, Jens

P.S.: Zu der Schreibweise deines Beitrages, s. meine PN an dich. Ah, ist angekommen, danke. Smile


RE: Graphen mit der Maus "malen" - NWOmason - 12.04.2011 10:05

Hallo,

wenn du im Examplefinder nach 'mouse' suchst, findest du das VI 'Draw Graph with Events.vi'

Beste Grüße.
NWO

@Edit: jg war schneller, ich wusste den Suchbegriff nicht mehr Blush


RE: Graphen mit der Maus "malen" - Peer - 12.04.2011 10:57

Moin,
ich hab das probiert und für eine "normale" Maus funktioniert das auch ganz gut. Allerdings muss ich für meine zwecke die Rohdaten der maus verwenden, weil ich eine sehr hohe auflösung verwende (ca.26µm). Nach einer kurzen Strecke stürzt der Rechner ab, weil das Array zu groß wird. Deshalb hab ich nach einer Lösung ohne wachsende Arrays gesucht. Ich hab auch ein rotate and replace-Array ausprobiert, aber das geht nur unwesentlich besser. Ich werde später nochmal probieren das Beispielprogramm mit Rohdaten zum Absturz zu bringen. Dazu kommt, dass hinter den Mausdaten später noch ein Messignal-Array stehen wird-> Ich brauche gute Performance.
Hat vielleicht noch jemand eine andere Idee?
Danke
Peer

Also das Beispielprogramm ist, genau wie mein Programm, davon überfordert...


RE: Graphen mit der Maus "malen" - Peer - 15.04.2011 10:48

Also um noch mal auf meine Frage zurück zu kommen...
Gibt es keine Möglichkeit die aktuellen Werte wie ein Bild, wenn der PC laggt, auf den Graphen zu legen?


RE: Graphen mit der Maus "malen" - GerdW - 15.04.2011 12:11

Hallo Peer,

Zitat:Gibt es keine Möglichkeit die aktuellen Werte wie ein Bild, wenn der PC laggt, auf den Graphen zu legen?
Kannst du den Satz nochmal umformulieren? Du willst, wenn der PC "laggt", ihn mit noch mehr Arbeit belasten???

Zitat:Ich hab mir überlegt, dass ich alle Daten in ein Array schreibe und die Werte dann plotte, allerdings hätte ich dann eine Begrenzung der Strecke und ich möchte auch kein riesiges Array bauen...
Habt ihr da eine Lösung oder ein Tipp für mich?
- Um den Verlauf zu sehen, musst du dir irgendwo ein Array mit bisherigen Messwerten anlegen. Also: Daten in ein größenbegrenztes Array schreiben!
- Performance kostet auch das zu häufige Neuzeichnen eines Graphen - aber da machen wir schon Glas1


RE: Graphen mit der Maus "malen" - Peer - 15.04.2011 12:32

Ah das hört sich doch nicht schlecht an. Wie könnte ich den Graphen denn weniger häufig zeichnen lassen?
Ich habe mittlerweile ein 6000 Elemente großes 2D-Array hinbekommen, welches flüssig läuft. Allerdings hätte ich da gerne mindestens das doppelte stehen. Ich mache das jetzt mit einem Wrap-Around. Die ältesten Daten werden immer gelöscht, wie bei dem Spiel-Klassiker Snake.
Oder wäre es möglich nach 6000 Werten ein neues Array anzulegen und das alte trotzdem im Graphen zu behalten?

Vielen Dank
Peer


RE: Graphen mit der Maus "malen" - GerdW - 15.04.2011 12:35

Hallo Peer,

Zitat:Oder wäre es möglich...
In LabVIEW ist (nahezu) alles möglich - ist ja schließlich eine Programmiersprache. Du musst es nur programmieren... Smile

Zitat:Graphen denn weniger häufig zeichnen lassen?
Ehem - einfach weniger oft neue Daten reinschieben? Wie schon gesagt: du musst es programmieren...


RE: Graphen mit der Maus "malen" - Peer - 15.04.2011 12:37

hehehe alles klar. Versuche das mal mit dem Loopcounter zu regeln. Mal gucken, was ich da an Performance rausholen kann.
Danke
Peer

YAY! Ich bin von 6000 auf erst 10000 und dann auf 12000 Datensätze gekommen. Gibts noch andere kleine Tricks, mit denen ich Performance "sparen" kann?


RE: Graphen mit der Maus "malen" - Peer - 18.04.2011 13:30

So, ich habe mittlerweile die 40000 geknackt, indem ich eine In Place - Struktur verwende und noch seltener meinen Graphen aktualisiere.
Ich habe allerdings ein neues Problem...
Mir ist aufgefallen, dass ich immer eine maximale CPU Auslastung habe, sobald ich das Programm starte. Jetzt habe ich versucht das ein bisschen einzudämmen, indem ich in meiner äußeren While-Schleife einen Wait ms counter einsetze.
Das macht das Programm allerdings sooooo viel langsamer, dass das keine Option ist.
Nun meine Frage: Kann man auch weniger als 1ms in Labview warten?

Danke
Peer


EDIT: Ach ja und noch was... Es gibt ja diesen graphen, mit dem man einen Wert über die Zeit Darstellen kann. Dieser, der so durchläuft... Ich glaube die heißen waveformcharts oder so. Gibt es die auch für 2D-Daten?