Hi,
ich hab grad ein kleines Problem, das ich partout nicht nachvollziehen kann.
Mein GLCanvas (von JOGL) zeichnet ein einfaches Rechteck mit der linken oberen Ecke bei 200,200 im Orthomode
Wenn ich nun einen Mauslistener auf das Canvas setze und auf besagte Ecke klicke und mir die Koordinaten ausgeben lasse, bekomme ich: 200,189.. oder irgendein anderer y-wert, der zwischen 185 und 190 liegt.
Das Problem ist, wenn ich abfragen will, ob auf das Rechteck geklickt wurde, dann tritt die Auswahl immer 5-10pixel zu spät ein. Allerdings hört sie nach unten auch 5-10pixel zuspät auf.
Wenn ich an den oberen Rand des fensters klicke, bekomm ich ganz normal den y-Wert 0. Er fängt also nicht irgendwie mit -5 an oder so
Ich weiss wirklich nicht, woran das liegt. Diese Verschiebung wirkt sich auch nur in Richtung der Y-Koordinate aus, bei X passt alles wunderbar.
Habe mir schon alle Werte vom MouseEvent ausgeben lassen und mit den Angaben des Rechtecks verglichen, das Ding verschoben und woanders hingesetzt, ich bekomms einfach nich raus...
Hat jemand eine Idee?
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich denke die Event Koordinaten sind richtig,
Du willst bestimmt mit JOGL Pixelgenau zeichnen, oder?
Du hast aber vermutlich die falsche Window-Eigenschaft benutzt um den Orthomodus zu initialisieren. Bei X wirkt sich das weniger stark aus. Aber bei Y hast du bestimmt den Titel mit einbezogen. Somit sind deine OpenGL Pixel etwas kleiner als echte Pixel.
Das vermute ich mal ganz stark.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 14 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.