Position et vitesse de deplacement de la souris

serial warez Messages postés 14 Date d'inscription dimanche 29 février 2004 Statut Membre Dernière intervention 12 février 2006 - 30 mars 2005 à 15:55
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 - 6 avril 2005 à 16:47
Salut tous le monde.

voila j'aimerais faire un programme qui me donne:
- La postion de la souris
- La vitesse instantannée
- La vitesse moyenne

Mais je ne sais pas comment faire, je pense savoir pour récuperer la position de la souris, par contre pour la vitesse instantannée et moyenne je ne vois pas du tout comment le faire. Alors si quelqu'un saurait ça serais sympa de me le dire.

Merci d'avance

9 réponses

jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
30 mars 2005 à 16:12
0
serial warez Messages postés 14 Date d'inscription dimanche 29 février 2004 Statut Membre Dernière intervention 12 février 2006
30 mars 2005 à 18:50
merci jmp77 mais il y aurait pas du code pour savoir la vitesse instanntannée et moyenne? c'est ça qui m'intéresse le plus
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
31 mars 2005 à 11:19
Désolé je n'ai pas ca sous la main.



je vais jetter un coup d'oeil si je trouve je te fais signe.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
31 mars 2005 à 11:47
Comme tu nous as dit : "
voila j'aimerais faire un programme qui me donne:...."
, je suppose que ça t'embêtrait qu'on l'écrive à ta place .



Alors juste un conseil ou deux : utilise un timer précis (
[code.aspx?ID=24090 MMTimer] par exemple) et révise le Théorème de Pythagore.






Ken@vo


<hr size="2" width="100%">Code, Code, Codec !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Niki2001 Messages postés 85 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 17 décembre 2005 1
3 avril 2005 à 15:27
Malin... Néanmoins, arrondis nécessaires. Mais bon, ...
0
serial warez Messages postés 14 Date d'inscription dimanche 29 février 2004 Statut Membre Dernière intervention 12 février 2006
5 avril 2005 à 19:00
Kenavo si tu as une idée de code je suis prenant, parce que je dois faire ça asser rapidement. Fait comme tu veux, merci d'avance
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
6 avril 2005 à 08:41
Tiens, regarde ça :





Déclarations des variables :



X0 : Integer; // mémoire de la position précédente X

Y0 : Integer; //
--
-- Y

Vi : Real; // vitesse instantanée (pixels/sec)

Vm : Real; // vitesse moyenne
(pixels/sec)

Cumul : Double; // cumul des distaces (Pixels)

Cpt : Integer; // compteur







procedure TForm1.FormCreate(Sender: TObject);

// Initialisation des variables

begin

GetCursorPos(Pt);

X0 := Pt.X;

Y0 := Pt.Y;

Vm := 0;

Cpt := 0;

Cumul := 0;

end;







procedure TForm1.MMTimer1Timer(Sender: TObject);

Const

Filtre : Integer = 200;

var

Pt : TPoint;

d : real;

s : string;

begin

GetCursorPos(Pt);

d := Sqrt(Sqr(Pt.X-X0)+Sqr(Pt.Y-Y0)); // Distance parcourue (Pythagore)

X0 :=
Pt.X;
// Mémoire du point

Y0 := Pt.Y;



// Vitesse instantanée

Vi :d / (MMTimer1.Interval / 1000); // Vitesse distance / temps



// Vitesse moyenne : deux méthodes



// 1 - Filtre passe bas 1er ordre, se règle avec la variable filtre

Vm := (Vm *(Filtre-1) + Vi)/ Filtre; // Filtre Passe Bas



// 2 - Moyenne globale : même calcul que ci-dessus avec le déplacement moyen

// Déplacament moyen = Somme des déplacements / nombre de déplacements


Cumul := Cumul + d; //
Somme des déplacements



inc(Cpt); //
nombre de déplacements


Vm := Cumul / cpt / (MMTimer1.Interval / 1000);

end;





Il faut utiliser un timer précis comme MMtimer, ou travailler avec GetTickCount pour avoir une vraie valeur des intervalles.


Ken@vo


<hr size="2" width="100%">Code, Code, Codec !
0
serial warez Messages postés 14 Date d'inscription dimanche 29 février 2004 Statut Membre Dernière intervention 12 février 2006
6 avril 2005 à 16:01
merci [mailto:ken@vo ken@vo] mais comment je l'utilise avec MMTimer, et puis je n'ai pas compris la 1ere méthode du calcul de la vitesse moyenne (avec les filtres, je vois pas ce que ça vient faire ici les filtres) mais pour la vitesse moyenne ça sera bon avec la 2eme methode. C'est le MMTimer que j'ai du mal a comprendre.

-- Et tu saurais pas comment transformer les pixels/sec en metres par secondes?

-- Et pourquoi dans la ligne ci dessous tu met "/1000"?

// Vitesse instantanée Vi :d / (MMTimer1.Interval / 1000); // Vitesse distance / temps

-- Et "MMTimer1.Interval" ça fait référence a quoi, c'est une fonction dans MMTimer ?
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
6 avril 2005 à 16:47
1- C'est un filtre numérique passe-bas du premier ordre et un filtre permet d'obtenir une valeur moyenne s'il est bien réglé.



2 - Pous les résultats en mètres/seconde tout dépend du matériel



3 - Je mets 1000 parce que MMTimer1.Interval est en millisecondes et 50
(par exemple) milisecondes 50/1000 secondes 0.05 secondes



Et ne compte pas sur moi pour aller t'installer un composant (car
[code.aspx?ID=24090 MMTimer] est un composant)
.



Ken@vo


<hr size="2" width="100%">Code, Code, Codec !
0
Rejoignez-nous