Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Bewegung von A nach B


Fredchen19 - Mi 21.11.07 18:59
Titel: Bewegung von A nach B
Hallo

Ich möchte in delphi ein objekt von A nach B bewegen.

Fredchen


jakobwenzel - Mi 21.11.07 19:02

Schön, und was ist dein Problem?


Blackheart666 - Mi 21.11.07 19:36

Hallo und :welcome: im DF.
Vieleicht solltest Du wie jakobwenzel schon schrieb dein Vorhaben näher beschreiben.
Hier mal ein kleines Beispiel mit einem Button (Ich nehm mal an das Du Anfänger bist)

Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.Left:=Button1.Left + 5//Setzt den Button 5 Pixel nach Links
  Button1.Top:= Button1.Top  - 5//Setzt den Button 5 Pixel nach Oben
end;


Popov - Mi 21.11.07 19:58
Titel: Re: Bewegung von A nach B
user profile iconFredchen19 hat folgendes geschrieben:
Hallo

Ich möchte in delphi ein objekt von A nach B bewegen.

Fredchen


Maus, Mauszeiger auf Objekt legen, linke Maustaste drücken, Maustaste gedrückt lassen, Maus Richtung B bewegen, Objektbewegung über B stoppen, Nachjustieren, Maustaste loslassen. Objekt wurde von A nach B bewegt 8)


Fredchen19 - Fr 23.11.07 16:25

ja bin neu. ich möchte das sich ein objekt auf einer bestimmten bahn fort bewegt. ich wollte erst einmal nur wissen wie es geht.

Fredchen


Born-to-Frag - Fr 23.11.07 19:10

Erstmal :welcome: im Forum :wave:

und jetzt:
user defined image

Object.X := 10; deutlicher bekommst du es bei dieser Fragestellung nicht ^^


Popov - Fr 23.11.07 21:02

user profile iconFredchen19 hat folgendes geschrieben:
ja bin neu. ich möchte das sich ein objekt auf einer bestimmten bahn fort bewegt. ich wollte erst einmal nur wissen wie es geht.

Fredchen


Wenn du dir keine 30 Sekunden Zeit nimmst genau zu schreiben was du willst, so daß keiner umsonst deine unverständliche Frage beantwortet, wie kommst du dann auf die Idee, daß einer sich mehr als 30 Sekunden Zeit nimmt dir die Frage zu beantworten?

Was du in deine Frage investierst, daß kriegst du auch an Antworten raus.


Herr Bananerama - Fr 23.11.07 22:00

Also ich will dich jetzt mal nicht direckt runter machen, auch wenn ich den andern zustimme, aber ich denke ich habe deine Frage verstanden.
Fangen wir mal mit den Grundlagen an, denn wenn ich deine Frage richtig interpretiere ist sie echt banal:
Ich nehme an du möchtest ein Objekt, welches die Eigenschaften Left und Top hat, immer wenn ein bestimmtes Event ausgelöst wird, in eine bestimmte Richtung bewegen.
Du musst dir da die Pixel wie Punkte auf einem Koordinatensystem Vorstellen.
Left könnte man hier als x Koordinate der linken Kannte deines Objektes und Top als y Koordinate(wobei die y-Achse bei Delphi nach unten größer wird) der oberen Kannte deines O. sehen.
Wenn du also das Objekt um einen bestimmten wert in eine bestimmte Richtung bewegen willst, musst du beim auslösen eines Events ( ideal wäre z.B. das TTimer Event OnTimer) Left oder Top mit einem Wert adieren oder Subtrahieren.
Ein Beispiel soll dir mit einen Shape gegeben werden:
Shape1.Left := Shape1.Left + 1; // Shape1 endert die position um einen Pixelpunkt nach rechts
Damit sollte deine Frage geklehrt sein


GTA-Place - Sa 24.11.07 10:15

Bewegungen auf bestimmten Linien sind nicht einfach. Satz des Pythagoras ist Pflicht. Im Anhang der Source als Bild-Datei und ein Bild zur Veranschaulichung der Idee (aus meiner PowerPoint-Präsentation für Anfänger :lol: ).


F34r0fTh3D4rk - Sa 24.11.07 12:46

Angenommen, du möchtest ein Objekt mit der Position A zu einem Punkt P bewegen, dann berechnest du einfach den Vektor AP (P-A), bringst ihn auf die Länge 1 (durch seine Länge teilen). Dann kannst du ihn skalieren (bei Bewegungen mit Delta T * Geschwindigkeit) und zu deiner Position hinzuaddieren. So bekommst du eine Bewegung von A zu P.

http://www.mathdraw.de/md.php?input=ab+%3D+b-a+%3D+%28b_1%3Bb_2%29-%28a_1%3Ba_2%29+%3D+%28b_1-a_1%3Bb_2-a_2%29

(Prinzipiell ist der Vektor (AB * 1/|AB|) * Geschwindigkeit der Geschwindigkeitsvektor, da Position, Kraft, Geschwindigkeit etc. in der Physik allesamt Vektoren sind. Dabei ist es egal, ob du im R1, R2, R3 oder sonstwo arbeitest, dieses Prinzip funktioniert überall gleich)

http://www.mathdraw.de/md.php?input=ab+%2F+%7Cab%7C+%2A+v

http://www.mathdraw.de/md.php?input=%7Cab%7C%3Dsqrt%28ab_1%B2%2Bab_2%B2%29

mfg


Popov - Sa 24.11.07 13:04

Also ich möchte keinen kritisieren der sich hier Mühe gibt, auch ich gehöre zu denen die eigentlich auf die einfachste Frage antworten und nicht auf die Hilfe verweisen, aber auch ich habe meine Untergrenze. Und das hier

user profile iconFredchen19 hat folgendes geschrieben:
Hallo

Ich möchte in delphi ein objekt von A nach B bewegen.

Fredchen


ist doch verar***e pur. Gibt es etwas was noch fauler sein kann? Ich möchte in delphi ein objekt von A nach B bewegen. Soll das eine Problembeschreibung sein? 10 Sekunden in den Text investieren und dann Antwort haben wollen?

Also Leute, nicht übertreiben mit der Hilfsbereitschaft.


F34r0fTh3D4rk - Sa 24.11.07 13:06

naja er hat ja ergänzt ;) allerdings ist das wort "bahn" noch reif für Spekulationen ;)

Das hier ist auch ne Bahn:

http://www.mathdraw.de/md.php?input=f%28x%29+%3D+1%2F%282%2Bx%29+%2A+e%5E%281-x%29


alzaimar - Sa 24.11.07 13:14

Leute, Ihr seit gemein.
user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
.... So bekommst du eine Bewegung von A zu P.

Und? Hilft ihm das? Nee, er will wissen wie man von A nach B gelangt und nicht von A nach P.

Sag mal, GTA-Place, das soll wohl eine Vera***e sein, oder wie? Soll man den Sourcecode etwa APTIPPEN? Frechheit! :dunce:


F34r0fTh3D4rk - Sa 24.11.07 13:18

Lernen durch abtippen ;) hat schon immer funktioniert. Besser als Copy&Paste. :P


GTA-Place - Sa 24.11.07 13:58

Nächstes mal schreib ich den Source mit Hand, scanne ihn ein und stelle ihn dann als Bild zur Verfügung. "Learning by Handschrift-Entschlüsselung" nennt sich das dann :lol:


Popov - Sa 24.11.07 14:34

Gegen "Lörning by Kopy änd Pästing" habe ich nichts. Etwas Code ist oft hilfreicher als Stunden in der Hilfe zu suchen, aber zu faul sein um eine Problembeschreibung zu schreiben ist schon hart.

PS: nieder mit Denglisch, jetzt kommt Engdeusch ;)


F34r0fTh3D4rk - Sa 24.11.07 14:50

user profile iconalzaimar hat folgendes geschrieben:
Leute, Ihr seit gemein.
user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
.... So bekommst du eine Bewegung von A zu P.

Und? Hilft ihm das? Nee, er will wissen wie man von A nach B gelangt und nicht von A nach P.


Verdammt, da muss ich meinen ansatz nochmal komplett überdenken.

mfg