Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Einen Punkt auf der Form zur Maus bewegen... (https://www.delphipraxis.net/57411-einen-punkt-auf-der-form-zur-maus-bewegen.html)

turboPASCAL 20. Nov 2005 23:21


Einen Punkt auf der Form zur Maus bewegen...
 
Moin,

Also es ist mir echt peinlich, aber ich bekomme es nicht hin. :oops:
Ich habe einen Punkt auf einer Form (bzw. Bitmap) nun möchte ich diesen Punkt in Richtung Maus bewegen die sich über der Form befindet. Damit ihr wisst was ich mein' hänge ich mal ein Beispiel an.
Das soll jetzt aber nicht so Sprunghaft wie im Beisiel funktionieren, sondern eher "gemütlich", aber nur wenn die Mouse über die Form kommt.

Kann mir jemand helfen ? (mit ein bissel Code wäre nett) :wall:

[edit=turboPASCAL]Anhang gelöscht.[/edit]

himitsu 20. Nov 2005 23:49

Re: Einen Punkt auf der Form zur Maus bewegen...
 
Du errechnest einfach beim bewegen der Maus den Winkel, in dessen Richtung der Punkt wandern muß, damit er auf den Pfeil zugeht.
Und diesen Winkel nimmst du und weiß ihn dem Punkt zu (für die Bewegung).

turboPASCAL 21. Nov 2005 00:04

Re: Einen Punkt auf der Form zur Maus bewegen...
 
Sorry, ich habe nur noch X,Y Plus und Minus im Kopf, habe mir mit Sqrt und Sin und Cos das Gehirn gemartert aber eine anständige Lösung kommt nicht.

Ich habe den Punkt X und Y sowie die akt. Direction also zB. dx = -1 und dy = 1 (Richtung nach Links unten), dazu kommt noch sie MausPos. (mx, my) auf dem Bitmap. Wie stelle iches an damit die Richtung auf die Maus zeigt ?

himitsu 21. Nov 2005 00:12

Re: Einen Punkt auf der Form zur Maus bewegen...
 
Mit "Maus.X - Punkt.X" und "Maus.Y - Punkt.Y" hast du ja den Abstand und die Richtung zwischen den beiden Punkten (Punkt und Maus).
Daraus kannst du doch einen Winkel errechnen?

Und diesen Winkel nimmst du und berechnest damit die neue Bewegungsrichtung (dx und dy) für den Punkt.

turboPASCAL 21. Nov 2005 00:17

Re: Einen Punkt auf der Form zur Maus bewegen...
 
Zitat:

Zitat von himitsu
Daraus kannst du doch einen Winkel errechnen?

Nein, :oops: ich bekomme es nicht gebacken.

Wie stelle ich das an ? (mal für Dumme)

himitsu 21. Nov 2005 00:26

Re: Einen Punkt auf der Form zur Maus bewegen...
 
Ich nehm gern ArcTan2 dafür ... erspart einem unnötiges rumhandtieren mit den inversen Sin/Cos-Funktionen :roll:
Delphi-Quellcode:
Winkel := ArcTan2(Y1 - Y2, X1 - X2);
und mit den erhalten Winkel kannst du dann über Sin/Cos den neuen BewegungsVektor errechnen.

turboPASCAL 22. Nov 2005 09:28

Re: Einen Punkt auf der Form zur Maus bewegen...
 
Danke für deine Hilfe.

Lösung 1
Delphi-Quellcode:
RichtungX := (MouseX-AktPosX) / sqrt( sqr(MouseX-AktPosX) + sqr(MouseY-AktPosY) ) * Schrittlänge;
RichtungY := (MouseY-AktPosY) / sqrt( sqr(MouseX-AktPosX) + sqr(MouseY-AktPosY) ) * Schrittlänge;
Lösung 2
Delphi-Quellcode:
Winkel := ArcTan2(MouseX-AktPosX, MouseY-AktPosY);
RichtungX := Sin(Winkel) * Schrittlänge;
RichtungY := Cos(Winkel) * Schrittlänge;


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 Uhr.

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