Coordonnée X,Y après un translatetransform [Résolu]

alainh2401 7 Messages postés mardi 2 mars 2004Date d'inscription 2 juillet 2008 Dernière intervention - 25 nov. 2007 à 17:15 - Dernière réponse : cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention
- 26 nov. 2007 à 08:45
Bonjour à tous,

Je voudrais savoir comment il est possible d'obtenir les coordonées exactes après avoir utilisé la fonction translatetransform.

Voici mon petit programme qui centre le dessin d'un rectangle sur un control PictureBox

Public

Class Form1

Private ech
As
Single = 1

Private W
As
Single = 800

Private H
As
Single = 600

Private
Sub Form1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load

'initialise mes 2 textboxtxt1.Text W.ToStringtxt2.Text H.ToString

End
Sub

Private
Sub bnt_click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Bnt.Click

Dim eW
As
Single = Pic.Width

Dim eH
As
Single = Pic.Height

Dim sW
As
Single = 0

Dim sH
As
Single = 0
'je recupere les valeurs hauteur, largeurW CSng(txt1.Text)H

CSng(txt2.Text)
'Verifie si la largeur du rectangle est plus grande que celle du picturebox et calcule l'echelle

If eW <= W
ThensW = eW / (W + 100)

ElsesW = W + 100

End
If

'Verifie si la hauteur du rectangle est plus grande que celle du picturebox et calcule l'echelle

If eH <= H
ThensH = eH / (H + 100)

ElsesH = H + 100

End
If

'Recupere la valeur de l'échelle
If sH > sW
Thenech = sW

Elseech = sH

End
If

'Dessine le rectangle centré sur mon picturebox
Dim g
As Graphics = Pic.CreateGraphicsg.Clear(Color.AntiqueWhite)

g.TranslateTransform(((eW - (W * ech)) / 2), (eH - (H * ech)) / 2)

g.DrawRectangle(Pens.Black, 0, 0, W * ech, H * ech)

g.Dispose()

End
Sub

Private
Sub Pic_MouseMove(
ByVal sender
As System.Object,
ByVal e
As System.Windows.Forms.MouseEventArgs)
Handles Pic.MouseMove'Recupe les coordonnées de la souris sur le pictureBox
'Celle-ci ne sont pas correctes, comment puis-je faire
Lb.Text = (e.X * ech).ToString &

"," & (e.Y * ech).ToString

End
SubEnd

ClassD'avance merci pour votre aide,
Alain
Afficher la suite 

1 réponse

Répondre au sujet
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 26 nov. 2007 à 08:45
+3
Utile
Salut,
Tu t'attends à avoir quel résultat exactement?
Car c'est clair que ce que va te retourner l'event MouseMove, c'est les coordonnées "par rapport à GDI+", soit le point en haut à gauche. Si tu as fait un TranslateTransform pour dessiner sur ta picture box, tu devras donc refaire la conversion...

<hr />
-My Blog-
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Bidou

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.