La variable pix détermine la valeur de la couleur sous le pointeur
Ce code peut servir pour des jeu ou ce style de repérage est nécessaire
La commande point (x,y) seule n'est pas satisfaisante car les événements déclanchés par la souris sont trop distants dans le temps par rapport à la vitesse de déplacement du pointeur.
Il faut donc déterminer la couleur de chaque pixel sur un segment compris entre les points repérés par deux évenements consécutifs.
Le fonctionnement du code est optimisé par le calcul de la pente du segment qui détermine si l'on incrémente l'axe des x ou celui des y pour prendre en compte tous les pixels.
Source / Exemple :
Private Sub form_mousemove(button As Integer, shift As Integer, x As Single, y As Single)
Image1.Move x, y
cstex = x - x1: If cstex = 0 Then Exit Sub: If a = 0 Then Exit Sub
cstey = y - y1
a = (y - y1) / cstex
b = y - (a * x)
If Abs(cstex) > Abs(cstey) Then
Select Case cstex
Case Is >= 0
For i = 1 To cstex
z = a * (x - i) + b
pix = Point((x - i), z)
Next i
Case Is < 0
For i = 1 To Abs(cstex)
z = a * (x + i) + b
pix = Point((x + i), z)
Next i
End Select
Text1.Text = pix
Else
Select Case cstey
Case Is >= 0
For i = 1 To cstey
z = ((y - i) - b) / a
pix = Point(z, (y - i))
Next i
Case Is < 0
For i = 1 To Abs(cstey)
z = ((y + i) - b) / a
pix = Point(z, (y + i))
Next i
End Select
Text1.Text = pix
End If
x1 = x
y1 = y
End Sub
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.