Client- in Point Koordinaten umrechnen

Hallo Experten,

ich habe ein Excel-Diagrammblatt mit einem XY-Diagramm. Die X-Achse geht von 0 - 20 (Benutzer-Einheiten). Ich möchte die X-Position berechnen, an der der Benutzer auf das Diagramm klickt.
Mit dem Chart_MouseDown Ereignis bekomme ich die Maus-Position in Client-Koordiaten. Mit der Left- und der Width-Eigenschaft der PlotArea bekomme ich die Position des Diagramms in Point-Koordianten. Wie kann ich Client- in Point-Koordinaten umrechnen? Die Umrechnung in Benutzer-Einheiten ist ja dann einfach.
Vielen Dank und Gruß
Andreas

Hallo Experten,

ich habe ein Excel-Diagrammblatt mit einem XY-Diagramm. Die
X-Achse geht von 0 - 20 (Benutzer-Einheiten). Ich möchte die
X-Position berechnen, an der der Benutzer auf das Diagramm
klickt.
Mit dem Chart_MouseDown Ereignis bekomme ich die Maus-Position
in Client-Koordiaten. Mit der Left- und der Width-Eigenschaft
der PlotArea bekomme ich die Position des Diagramms in
Point-Koordianten. Wie kann ich Client- in Point-Koordinaten
umrechnen? Die Umrechnung in Benutzer-Einheiten ist ja dann
einfach.

Erstmal abrufen, ob der Mausclick in der Plotarea drin ist:

If Client.x \> plot.left and Client.x plot.top and Client.y 
drinnen kannst du dann die "Plotarea-koordinate" herausfinden (was du willst, oder? Praktisch die point-koordinaten, oder wie man sie auch immer benennen will)


    pointX = client.x - plot.left
    pointY = client.y - plot.top


so oder so ähnlich, wenn ich das Problem richtig verstanden habe...
Konnte es nicht testen, das ist alles "Pseudocode" oder eine Schätzung, wie es aussehen könnte (pseudo deswegen, weil ich die genauen Variablenbezeichnungen nicht kenne)

gruß,
AlexR

Danke erst mal.
Wenn ich deinen Code richtig verstehe, funktioniert der nur, wenn Client- und Pointkoordinaten vegleichbar sind. Das sind sie aber nicht (und das ist mein Problem): Auf meinem 19" Monitor z.B. gehen die Client-Koordinaten in X-Richtung von 0 bis 1275 (kann man mit dem MouseMove-Eregnis abfragen), die Point Koordinaten der ChartArea gehen aber nur von 4 bis 754 (wenn die Chartarea maximiert ist).
Ich brauche als eine Möglichkeit beides ineinander umzurechnen.
Gruß, Andreas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Dann teile sie doch einfach durcheinander…
Clientkoordinate ^= ck
ChartArea Koordinate ^= ak
1 ak = 1275 / 750 = 1,7
x ak = 1275 / 750 * x = 1,7 * x
->clickst du auf pixel ak.x = 10, so ist das ck.x = 17
und umgekehrt genauso:
1 ak = 750 / 1275 = 0,588…
x ak = 750 / 1275 * x = 0,58… * x

Gruß,
ALexR, der dein Problem immer noch nicht richtig verstanden hat

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Danke für deine Bemühungen. Ich glaube, ich habs jetzt gelöst: Wenn ich den Diagrammbereich so einstelle, dass er vom Benutzer nicht mehr verschoben werden kann, dann bleibt die Zuordnung der Koordianten immer gleich, und ich kann sie fest im Mako verdrahten.
Gruß, Andreas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]