Bonjour.
J'aimerais recuperer les coordonnees de ma souris par rapport a mon monde.
J'utilise donc GluUnproject, mais les coordonnees retournees ne sont pas exactes, le point en 'x' pas de soucis, mais celui en 'y' pose probleme, il est toujours faux.
Je suis en projection Ortho
Voici mon code
Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub OpenGlControlKontur_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles OpenGlControlKontur.MouseMove Dim X, Y, Z As Double Dim viewport(3) As Integer Dim mvmatrix(15) As Double Dim projmatrix(15) As Double Gl.glGetIntegerv(Gl.GL_VIEWPORT, viewport) Gl.glGetDoublev(Gl.GL_MODELVIEW_MATRIX, mvmatrix) 'REINITIALISEE A CHAQUE FOIS Gl.glGetDoublev(Gl.GL_PROJECTION_MATRIX, projmatrix) Glu.gluUnProject(e.Location.X, viewport(3) - e.Location.Y, 0, mvmatrix, projmatrix, viewport, X, Y, Z) Label1.Text = X.ToString + "//" + Y.ToString + "//" + viewport(3).ToString End Sub
Et voici le code pour le reglagle de la camera (Zoom,deplacement...)
Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Gl.glMatrixMode(Gl.GL_PROJECTION) 'reglage projection Gl.glLoadIdentity() Gl.glOrtho(-2 * translatez, 2 * translatez, 2 * -translatez, 2 * translatez, 0.01, 100) Glu.gluLookAt(0, 0, 6, 0, 0, 0, 0, 1, 0) Gl.glScaled(Scalex, Scaley, 1) Gl.glTranslated(translatex, translatey, translatez - 1) Gl.glRotated(_angle, 0, 1, 0) Gl.glRotated(_anglex, 1, 0, 0)
Comment avoir des coordonnees exactes?
Merci
EDIT:
C'est bon jai trouve par moi meme, petit probleme d'initialisation et le viewport(3) - y qui manquait.
Partager