Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Mausbewegung aufzeichnen (https://www.delphipraxis.net/176200-mausbewegung-aufzeichnen.html)

Gruber_Hans_12345 19. Aug 2013 13:07

Mausbewegung aufzeichnen
 
Hallo
Habe ne frage, ich wollte mal den User mit der Maus was zeichnen lassen, bin aber draufgekommen, das es mit den MouseMove Events viel zu ungenau wird, wenn der User die maus etwas schneller bewegt ....

Wie greife ich da besser drauf zu auf die Maus?

Ausgelastet ist das Programm nur mit max 10% also es liegt nicht daran das es zu langsam wäre ...

Der schöne Günther 19. Aug 2013 13:22

AW: Mausbewegung aufzeichnen
 
Also soweit ich nicht grandios danebenliege hat das schon seine Richtigkeit. Bei einer Bildwiederholrate von 60 fps kann der Benutzer doch die Maus so bewegen, dass sie sich von einem zum nächsten Bild weitaus mehr als nur einen Pixel bewegt. Oder was ist "ungenau"?

Gruber_Hans_12345 19. Aug 2013 13:24

AW: Mausbewegung aufzeichnen
 
das wäre schon in ordnung

und programme ala Paint zb da sieht ein gezeichneter Kreis wie ein Kreis aus ... bei mir sind es gerade mal 5 Points so ca.
wenn ich es gleich schnell bewege ... Also es kommen auf keinen Fall soviele Messages an wie ich möchte ;)

Gruber_Hans_12345 19. Aug 2013 13:39

AW: Mausbewegung aufzeichnen
 
hab mal ca. gezählt

also es kommen maxmial 10 MouseMove Events in der Sekunde an ... (bei mir zumindest)

Der schöne Günther 19. Aug 2013 14:14

AW: Mausbewegung aufzeichnen
 
Kann ich so nicht nachvollziehen. Grade mal eine Paintbox genommen und onMouseMove-Aufrufe gezählt. Wenn ich schnell bin, ging es Richtung 60 pro Sekunde und alles sah aus wie erwartet.

Perlsau 19. Aug 2013 14:19

AW: Mausbewegung aufzeichnen
 
Zitat:

Zitat von Gruber_Hans_12345 (Beitrag 1225332)
hab mal ca. gezählt

also es kommen maxmial 10 MouseMove Events in der Sekunde an ... (bei mir zumindest)

Kommt drauf an, wie du zählst. Etwa via ShowMessage?

Popov 19. Aug 2013 14:25

AW: Mausbewegung aufzeichnen
 
Ich meine, auch wenn du die Maus schneller bewegst, die Frage ist ob es da tatsächlich Zwischenschritte gibt, oder ob du in dem 1/10 Sekunde wischen Punkt A und B lediglich eine Gerade gezogen hast?

Aber evtl. ein anderer Ansatz. Die Maus Maus sein lassen und akzeptieren, dass du zwischen A, B, C, D, E und F technisch gesehen nur Geraden hast, aber statt die Punkte mit einer Linie zu verbinden, die wäre es mit einer Bezierkurve? Punkte hast du genug, so dass die Kurve berechnet werden kann.

Der schöne Günther 19. Aug 2013 14:30

AW: Mausbewegung aufzeichnen
 
Das hatte ich jetzt vorausgesetzt. Einzelne Pixel setzen bei mouseMove gibt nur Fliegendreck, das ist normal. Die müssen immer mit einer Linie verbunden werden.

Mit Bezierkurven die letzten paar Punkte zu verbinden ist ja schon deluxe (wahrscheinlich sieht man trotz der tollen Methode keinen Unterschied :-D).

Gruber_Hans_12345 19. Aug 2013 14:31

AW: Mausbewegung aufzeichnen
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1225335)
Kann ich so nicht nachvollziehen. Grade mal eine Paintbox genommen und onMouseMove-Aufrufe gezählt. Wenn ich schnell bin, ging es Richtung 60 pro Sekunde und alles sah aus wie erwartet.

danke -> habs gefunden ;)
War da ich auf einer Remote Maschine per RemoteDesktop entwickle, und da gibts nicht mehr Messages ... lokal gehts nun mit sehr sehr vielen MEssages .. wobei ich mir sicher war das ich es auch mal lokal getestet habe

aber nun gehts auf jeden fall wie erwartet ....

Medium 19. Aug 2013 16:51

AW: Mausbewegung aufzeichnen
 
Man könnte sogar noch mit Subpixel-Präzision arbeiten, wenn man sich einen LowLevel Mousehook schnappt. Der löst imho den gesamten Desktop in 65536x65536 auf, so dass Besitzer von hochauflösenden Mäusen profitieren würde. Allerdings nur wenn es um Vektorgrafik geht; wird direkt 1:1 auf Pixel einer Rastergrafik abgebildet, lohnt das nicht wirklich :) (zumindest wenn kein Zoom mitspielt!)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:50 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz