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; Button1.Top:= Button1.Top - 5; end; |
Popov - Mi 21.11.07 19:58
Titel: Re: Bewegung von A nach B
Fredchen19 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:
Object.X := 10; deutlicher bekommst du es bei dieser Fragestellung nicht ^^
Popov - Fr 23.11.07 21:02
Fredchen19 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
Fredchen19 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.
alzaimar - Sa 24.11.07 13:14
Leute, Ihr seit gemein.
F34r0fTh3D4rk 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
alzaimar hat folgendes geschrieben: |
Leute, Ihr seit gemein.
F34r0fTh3D4rk 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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!