"Absolutwerte" einer Maus abfragen
-
Hallo,
in meiner Schule haben wir den auftrag bekommen ein Roboter mit einem C++ Programm zu steuern, klappt auch soweit alles wie wir es wollen, aber um ihn genau zu steuern wollen wir die Strecke "messen" die er gefahren ist.
Wir haben allerdings keine passenden sensoren und da kam uns die gloreiche idee, wir schnallen ihm eine Maus drunter und messen so die Strecke.Mit GetCursorPosition hab ich jetzt schon ein bisschen rumgespielt.
Aber damit bekommt man ja nur die Cursorposition auf dem Bildschirm.
Gibt es auch einen weg die absoluten werte der maus zu bekommen.
Weiß nicht genau wie es geht, aber denke mal die wird dem Pc einfach Signale schicken ala "hoch, hoch, hoch, rechts, runter"vielleicht kann mir einer helfen.
Danke
-
Das ist WinApi Spezifisch und kann in Standard C++ so nicht gelöst werden.
-
Nun, Ich würde einfach schauen, wie weit sich der Mauszeiger bewegt, wenn ich die Maus z.B. 5 cm bewege. Wenn ich dann einen Wert von z.B. 1000 Pixeln erhalte, weiß ich, dass 200 Pixel 1 cm entsprechen. Damit der Mauszeiger nicht an den Bildschirmrand "anstößt" könnte man den Mauszeiger mit SetCursorPos immer in die Bildschirmmitte bewegen.
Das könnte dann so aussehen:
1. Mauszeiger in Bildschirmmitte setzen.
2. Warten, bis der Mauszeiger die Position verändert.
3. Distanz zwischen neuer und alter Position bestimmen.
4. Wert verarbeiten
5. Das Ganze nochmal von vorn.MfG, Jochen
-
Es gibt auch eine Art Egoshootermodus der die absolute Bewegung deaktiviert und nur eine relative Bewegung zulässt, sodass du nicht an den Bildschirmrand anstoßen kannst. Ich finde die aber gerade nicht in der WinAPI, es gibt aber eine SDL-Funktion die das tut.
-
Ich weiss jetzt nicht was unter anderen Betriebssystemen wie geht -
unter DOS war der Interrupt 33 für die Mäuse daHier mal ein kleiner Teil der Möglichkeiten:
http://www.foo.fh-furtwangen.de/~mueller/archiv/ik4_mopsprakt/mausitr.htmlOb das unter Windows mit den Interrupts noch möglich ist, hab ich nicht getestet.
MfG f.-th.