Moin moin,
die Invoke-Node "Map XY to Coords" ist mir zu langsam. Deshalb würde ich die entsprechende Umrechnung gerne selber anstellen.
Ich verstehe allerdings nicht an welcher Stelle ich wie runden muss, damit mein Ergebnis für jeden Fall passt. Bisher habe ich es nur so hinbekommen, dass ca. 90% der Werte passen, ich dann aber immer mal wieder um einen Pixel daneben liege.
Vielleicht weiß da jemand weiter.
Hallo Frank,
Zitat:die Invoke-Node "Map XY to Coords" ist mir zu langsam.
Und deshalb fragst du 7 Properties des Graphen mit 4 PropertyNodes ab? Das soll schneller sein?
Zitat:Deshalb würde ich die entsprechende Umrechnung gerne selber anstellen.
Dann solltest du aber auf den Aufruf der Methode Koord in XY umrechnen komplett verzichten und nicht deren XY-Ergebnis in deiner Rechnung verwenden…
Zitat:Ich verstehe allerdings nicht an welcher Stelle ich wie runden muss
Ich glaube kaum, dass "Runden nach nächstkleinere Zahl" alle in Betracht kommenden Fälle hier korrekt behandelt…
Wieso berechnest du die Koordinaten, die du schon von der Eventstruktur geliefert bekommst?

...Das ist ein Beispiel VI um zu zeigen das ich öfter mal einen Pixel daneben liege...
Die Abfrage Bounds,Range etc. würde später natürlich einmalig zu Beginn bzw. bei einem Resize vorgenommen werden. Das das in diesem Beispiel nicht schneller sein kann ist mir schon klar.
Das Umrechnen "Maps Coords To XY" zu Beginn ist nur für den Input von XY Coordinaten beim Klicken. Sonst müsste ich die ja immer eintippen...
(25.11.2014 15:06 )GerdW schrieb: [ -> ]Ich glaube kaum, dass "Runden nach nächstkleinere Zahl" alle in Betracht kommenden Fälle hier korrekt behandelt…
Tut es nicht. Deshalb ja meine Frage..
Hallo Frank,
ich würde in solch einem Fall mir mal die Eingangswerte deiner Rechnung auf ein Blatt Papier schreiben und dann von Hand selbst nachrechnen. Da sieht man dann meist sehr schnell, bei welchem Schritt hier Rundungsfehler oä auftreten…
Ganz so einfach scheint mir die Lösung nicht zu sein. Ich finde jedenfalls keinen Weg das Problem mit geschicktem Runden zu Lösen.
Geht die Funktion "Map XY to Coords" vielleicht von den globalen Display Coords aus, die aus irgendeinem Grund gegenüber den Coords für die Plot Bounds verschoben sein könnten?
Hier ist eine Lösung.
Mit Runden hatte es nichts zu tun.
Hallo Frank,
kannst du auch kurz erläutern, was du nun ändern musstest bzw. wo das Problem lag?
Aus einem mir nicht ganz ersichtlichen Grund, scheint der tatsächlichen Plotbereich - also der Abstand zwischen Pixel im Minimum und Pixel im Maximum - abzuweichen von dem Bereich den mir die Property Nodes "Plot Bounds" bzw. "Plot Area" angeben.
Um das ganze noch etwas contraintiutiver zu gestalten, ist der Offset links +1 Pixel, rechts aber -2 Pixel.
Von der angegebenen PlotArea-Width weicht der tatsächliche Plotbereich also um -3 Pixel ab.
Frage eines unbedarften Laien: Ich habe 1000 Mal geklickt, und bei mir sind die Koordinaten, die direkt der Ereigniscase liefert (Anzeige links in meinem Bild) immer identisch mit deinen auf komplizierte Weise gefundenen Resultaten. Das Programm macht je einen recht professionellen Eindruck, die bist kein Anfänger. Handelt es sich hier vielleicht um ein Nonsens - Programm, um uns damit auf den Arm zu nehmen?
Würde ich nie tun

.
Aber ich glaube du hast deine 1000 Klicks auf das falsche VI verschwendet.
Das was ich zumindest in dem Bild dort sehe, ist das Programm, welches ich als Lösung präsentiert habe. Wenn du eine Diskrepanz zwischen den Werten des Property Nodes und meiner Berechnung sehen willst, musst du dir das erste VI ansehen.