Problem mit Mausposition in OpenGL



  • Ich hab mir den Articel von NeHe durchgelesen zum Thema Mausposition in OpenGL und alles halbwegs in meinen Code eingebaut. Es funktioniert eigentlich auch einwandfrei nur hab ich noch ein Problem: Die X Coordinate ist in Ordnung aber die Y spinnt. Zuerst ist sie groß und wird dann mit der Zeit kleiner, bis sie sich auf einen bestimmten werd eingestellt hat (natürlich relativ zur Position).

    case WM_MOUSEMOVE:
      {
       POINT mouse;						// Stores The X And Y Coords For The Current Mouse Position
       GetCursorPos(&mouse);					// Gets The Current Cursor Coordinates (Mouse Coordinates)
       ScreenToClient(hWnd, &mouse);
       GetOGLPos(mouse.x,mouse.y);
       return (0);
      }
    

    und

    GLdouble posX, posY, posZ;
    
    void GetOGLPos(int x, int y)
    {
    	GLint viewport[4];
    	GLdouble modelview[16];
    	GLdouble projection[16];
     GLfloat winX, winY, winZ;	
    
    	glGetDoublev( GL_MODELVIEW_MATRIX, modelview );
    	glGetDoublev( GL_PROJECTION_MATRIX, projection );
    	glGetIntegerv( GL_VIEWPORT, viewport );
    
    	winX = (float)x;
    	winY = (float)viewport[3] - (float)y;
     winZ = 0.98f;
    
    	gluUnProject( winX, winY, winZ, modelview, projection, viewport, &posX, &posY, &posZ);
    }
    

    Woran liegts?

    mfg.



  • Was ist das denn für fieser Code, böse globale 😎

    Vielleicht solltest du eher mal das Verfahren beschreiben, als den dummen Code zu posten. Den kapiert man nämlich nicht, wenn man die Funktionen oder Anordnung der Daten (was ist viewport[3]?) nicht kennt. Ausserdem bin ich allergisch gegen Befehle wie "repariert meinen Code!"

    Bye, TGGC (Dem beste BdT)



  • TGGC schrieb:

    Was ist das denn für fieser Code, böse globale 😎

    Vielleicht solltest du eher mal das Verfahren beschreiben, als den dummen Code zu posten. Den kapiert man nämlich nicht, wenn man die Funktionen oder Anordnung der Daten (was ist viewport[3]?) nicht kennt. Ausserdem bin ich allergisch gegen Befehle wie "repariert meinen Code!"

    Bye, TGGC (Dem beste BdT)

    Was an globalen so böse ist versteh ich bis heute nicht, aber egal. Wie das Verfahren funktioniert hab ich keine ahnung hab einfach strg+c und strg+v gemacht und dann nach meinen wünschen angepasst. Den Artikel findest du unter http://nehe.gamedev.net/data/articles/article.asp?article=13
    Warum sollst du nicht meinen Code reparieren? Wenn ich das könnte, hätte ich hier nicht gefragt, sondern es einfach getan. Was viewport[3] ist weiß ich nicht, wie gesagt copy&past.

    mfg.



  • joomoo schrieb:

    Warum sollst du nicht meinen Code reparieren?

    Weil du zunächst die 200 € überweisen musst.

    Bye, TGGC (Dem beste BdT)



  • TGGC schrieb:

    joomoo schrieb:

    Warum sollst du nicht meinen Code reparieren?

    Weil du zunächst die 200 € überweisen musst.

    Bye, TGGC (Dem beste BdT)

    Welche 200 €?



  • Mir ist eben aufgefallen, das die Y Koordinate immer kleiner wird, je weiter unten das tiefste objekt ist. (mit unten mein ich Y Koordinate)

    mfg.


Anmelden zum Antworten