vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Die (erste) Lösung 
Autor: reini69
Datum: 16.04.09 15:02

Hab es mittlerweile selbst gelöst. Hier meine Vorgehensweise, falls es jemanden interessiert.
Wie in meiner ursprünglichen Frage schon beschrieben, werte ich das Drücken der rechten Maustaste (MouseDown-Event), das Ziehen der Maus (MouseMove-Event) und das Loslassen der rechten Masustaste (MouseUp-Event) aus. Alle Events liefern mir die Koordinaten der Maus. Jedes Koordinatenpaar lege ich als eigenes Objekt in einer Collection ab. Weiterhin hab ich mir vier Merker-Variablen angelegt, in denen ich mir merke, an welcher Stelle innerhalb der Collection das Element mit dem jeweils größten und kleinsten X- bzw. Y-Wert liegt. Ich merke mir aber, wie gesagt, nur den Index dieses Objekts innerhalb der Collection. Immer wenn ich ein neues Objekt zur Collection hinzufüge, vergleiche ich den X- und Y-Wert dieses neuen Objekts mit den X- und Y-Werten der Collection-Elemente die durch die beschriebenen Indizes als die größten und kleinsten ausgewiesen werden. Wenn nötig, werden die Indizes dann aktualisiert. Wenn die ganze Mausbewegung beendet ist (Loslassen der rechten Maustaste), werte ich alles aus. Ich habe als Bedingung festgelegt, dass die Kreisbewegung immer "oben", also praktisch "auf 12 Uhr" beginnen muss. Somit muss das mein YMinIndex (YMin, weil VB6-Koordinatensystem den Y-Nullpunkt oben hat) den kleinsten aller MinMax-Indizes haben. Ist diese Bedingung nicht erfüllt, dann war es keine Kreisbewegung und ich breche sofort ab (es gibt eine Ausnahme, aber der Einfachheit lass ich die mal aus der Beschreibung weg). Um eine normale Kreisbewegung zu haben muss der nächstkleinere Indexwert der des XMin (bei Gegenuhrzeigersinn-Bewegung) oder der XMax (Uhrzeigersinn) sein. Ist dies nicht der Fall (also wenn YMaxIndex den nächstkleineren Index hat) ist es auch keine schöne Kreisbewegung und ich breche wieder ab. Andernfalls kann ich auch sofort entscheiden in welche Richtung die Kreisbewegung ausgeführt wurde. Als nächstkleinerer Index muss dann der YMax (also der unterste Punkt des Kreises "auf 6 Uhr") kommen. Ist das der Fall bleibt nur doch der andere XIndex übrig und fertig ist der Kreis.
Einfch, oder?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Kreisende Mausbewegung erfassen2.285reini6908.04.09 17:02
Re: Kreisende Mausbewegung erfassen1.600SenZe09.04.09 19:45
Die (erste) Lösung1.625reini6916.04.09 15:02

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel