LabVIEWForum.de - Plots vom Graph im Diagramm mit Maus ändern

LabVIEWForum.de

Normale Version: Plots vom Graph im Diagramm mit Maus ändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo, ich stehe vor folgender Herausforderung für meine Studienarbeit: Mit einem Array erzeuge ich ein beliebiges Signal, dass dann in einem Signalverlaufsgraph angezeigt wird. Nun würde ich gern auch direkt mit der Maus die Plots im Graph verschieben können. Lässt sich das irgendwie bewerkstelligen? Ich habe schon an etwas mit ner lokalen Variable gedacht, damit ich den Wert vom Graph in das Array schreiben könnte, oder so.

Ich habe schon folgenden Artikel samt Beispiel gefunden, aber das hilft mir nicht wirklich weiter.

http://www.LabVIEWforum.de/index.php?showt...=plot+verändern

Bin über jede Hilfe dankbar, da meine knapp 3-Monate-LabVIEW-Erfahrung eher bescheiden ist
Hallo

einfach NI-Examplefinder fragen: hier sind tolle Beispiele die (manchmal) wirklich helfen

Gottfried
Hmm...um ehrlich zu sein habe ich das schon fleißig getan und nicht wirklich etwas brauchbares gefunden. Lediglich das "Draw Graphs with Events.vi" aber das nutzt mir mal gar nichts. Ich bin für jeden heißen Tip dankbar.
Was meinst du genau mit verschieben? Sollen sich durch dein Verschieben die x- und y-Werte des Plots verändern? Dann wird es echt aufwändig.

Oder willst du nur den Ansichtsbereich ändern. Dafür gibt es die Graph-Palette (Rechtsklick -> Visible -> Graph-Palette).

MfG, Jens
Jupp, genau das will ich gern machen. Die x-Werte können ja konstant bleiben aber die y-Werte würde ich gern via Maus nach oben und unten verschieben können. Oder geht das vielleicht gar nicht?
Hallo,

also das ist wirklich nicht ganz ohne. Ist zwar über die Events der Event-Struktur (Mouse-Down, Mouse-Move) und die entsprechenden InvokeNodes der Graphen ("Map Coords To XY" oder "GetPlotAtPos") sicher alles möglich, ist mir aber momentan zu aufwändig, als dass ich Lust und Laune habe, mich mit sowas zu beschäftigen.

Hier ein kleiner und einfacher Alternativ-Ansatz, ich habe ein zusätzliches Slide-Control zum Verschieben des Graphen eingebaut. Als kleiner zusätzlicher Ansatz wird das Mouse-Down Event des Waveform-Graphen abgefangen:

Lv82_img[attachment=13635]

MfG, Jens
Vielen Dank. Das ist zwar nicht ganz das, was ich haben wollte, aber vielleicht kann ich damit was anfangen. Für weitere Vorschläge bin ich offenSmile
' schrieb:Für weitere Vorschläge bin ich offenSmile
Ein anderes Vorgehen habe ich skizziert:

1. Event-Struktur fängt Mouse-Down-Event auf Graph ab.
2. Per InvokeNodes des Graphen "Map Coords To XY" kann man die Screenkoordinaten des Mouse_Event auf XY-Koordinaten des Graphen umwandeln.
3. Per InvokeNode "GetPlotAtPos" kannst du feststellen, wie nahe du an einem Plot die Maus betätigt hast.
4. Jetzt kommt das Schwierige, XY-Koordinaten einem Punkt des Graphen zuordnen, momentan keine gute Idee.
5. z.B. jetzt Mouse-Move Event nehmen, um das Verschieben festzustellen, dann Berechnung wie in meinem Beispiel mit Schieber.

Und wesentlich anders wird es IMHO auch nicht gehen.

MfG, Jens
@ Punkt 4:
Loop über alle Plotpunkte
AbstandArray = SQRT((neupunktX-PlotpunkteX)²+(neupunktY-PlotpunkteY)²)
end Loop
saveAbstandArray=AbstandArray
sort(AbstandArray)
take min
suche index von min in saveAbstandArray

BINGO!
Hallo Gottfried,

Zitat:saveAbstandArray=AbstandArray
sort(AbstandArray)
take min
suche index von min in saveAbstandArray
Alle 4 Steps erledigt dir ArrayMinMax…
Referenz-URLs