Mausbewegung umrechnen

Neue Frage »

PierreDole Auf diesen Beitrag antworten »
Mausbewegung umrechnen
Meine Frage:
Moin,
ich habe für Mathekundige eine bestimmt ganz leichte Frage. Nun ist es über 20 Jahre her, daß ich irgendwas mit Mathe gemacht habe - ich bitte um Verständnis.

Ich schreibe gerade ein Tool, welches die Mausbewegung in einer kleinen Grafik darstellt. Ich habe einen Kreis, in der Mitte davon eine kleine grafische Maus, und je nach dem wie ich meine Maus relativ zur letzten Position bewege, bewegt sich die grafische Maus in diesem Kreis. Zum Beispiel: wenn ich meine Maus nach oben links bewege, bewegt sich die grafische Maus nach oben links an den Rand des Kreises. Wenn ich meine Maus nicht mehr bewege, kehrt die grafische Maus zurück zum Mittelpunkt. Mache ich wieder eine Bewegung, geht die grafische Maus entsprechend der Richtung wieder an den Rand des Kreises.

So weit, so gut. Nun zu meiner Frage:
Ich habe zwei Koordinaten: den Ausgangspunkt und den aktuellen Punkt und leider nicht den Ansatz eines Ansatzes, wie ich das lösen soll. Mit Winkeln? Mit Verhältnissen (x zu y)? Keine Ahnung.


Meine Ideen:

Ich habe Folgendes (etwas vereinfacht dargestellt)...

mouseImagePositionX = (kreisdurchmesser / 2) + x;
mouseImagePositionY = (kreisdurchmesser / 2) + y;

... x und y sind die Variablen, die die grafische Maus an den Rand des Kreises bringen sollen. Jetzt müssen sie irgendwie aus den beiden Koordinaten berechnet werden.
Programmiertechnisch ist alles fertig. Der mouseListener wartet nur noch auf die Berechnung.
Dopap Auf diesen Beitrag antworten »

Mir ist nicht klar was du eigentlich willst.
Was genau ist gegeben und was ist das Ziel ?
PierreDole Auf diesen Beitrag antworten »

Ich versuche es mit einem konkreten Beispiel:

Ich bewege meine Maus von Koordinate x = 50, y = 300 nach Koordinate x = 400, y = 125. Wenn man vor dem eigenen geistigen Auge zwischen diesen beiden Punkten eine Linie zieht, dann soll sich die kleine grafische Maus, von Mittelpunkt, in genau dieser Linie an den Rand des Kreises bewegen. Ich möchte die Koordinate des Punktes am Kreisrand berechnen, wo die Maus sich hinbewegt.
PierreDole Auf diesen Beitrag antworten »

Das mit der Linie brauchte mich auf eine Idee. Eigentlich brauche ich "nur" eine Formel, mit der ich Punkte auf einer Linie berechnen kann.
Ich habe eine Linie von Punkt A zu Punk B. Punkt C liegt irgend wo dazwischen.
Beispiel:
Punkt A = 1, 1
Punkt B = 300, 150
Punkt C liegt 75 Einheiten von Punkt A entfernt, in Richtung Punkt B.

Wie berechne ich Punkt C?
Dopap Auf diesen Beitrag antworten »

wenn der Mittepunkt deines Kreises und sein Durchmesser ist und der Startpunkt und der Endpunkt ist, dann berechnet der Kreispunkt zu



Das kann man in 2 Zeilen aufspalten.
PierreDole Auf diesen Beitrag antworten »

Es funktioniert! Ich hätts nicht gedacht. Vielen, vielen Dank! Gott


Hier der Listener, in C# geschrieben. Der Vollständigkeit halber, falls das jemand in paar Jahren in google findet. smile
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
private void MouseListener_MouseMoveExt(object senderMouseEventExtArgs e)
        {            
            // distance to point
            double distance = (this.mousePanel.Width/2) - 35;
            
            // mouse X
            double x this.mouseNullPos.+ (distance Math.Sqrt(Math.Pow(e.Location.this.mouseLastPos.X2) + Math.Pow(e.Location.this.mouseLastPos.Y2))) * (e.Location.this.mouseLastPos.X);
            
            // mouseY
            double y this.mouseNullPos.+ (distance Math.Sqrt(Math.Pow(e.Location.this.mouseLastPos.X2) + Math.Pow(e.Location.this.mouseLastPos.Y2))) * (e.Location.this.mouseLastPos.Y);
            
            // set new location            
            this.mouseImage.Location = new Point(Convert.ToInt32(x), Convert.ToInt32(y));    
        }
 
 
Dopap Auf diesen Beitrag antworten »

fein! Das verwundert aber nicht wenn man bedenkt, dass der Vektor

die Länge 1 hat.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »