Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 05, 2025 17:45

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: JOGL Mouseevent
BeitragVerfasst: Fr Feb 06, 2009 17:48 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
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?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 06, 2009 18:09 
Offline
Guitar Hero
Benutzeravatar

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 06, 2009 19:12 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Jap, war genau der richtige Tipp
Musste zwar erst gucken, wei ich nun genau die Clientarea rausbekomme.. aber dann gings

Man muss einfach beim Setzen des Viewports und der Perspektive nicht:

frame.getWidth / frame.getHeight benutzen, sondern: frame.getContentPane().getWidth / frame.getContentPane().getHeight

dann funkt alles wunderbar
danke


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]