| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Flash-Einsteiger Registriert seit: Jun 2008 Ort: Nähe Frankfurt/M
Beiträge: 127
| Koordinatenberechung
Hallo, ich versuche mich gerade an einer eigentlich einfachen Berechnung. Gegeben ist ein zufällig positionierter Punkt 1 mit x1 und y1 sowie ein zufällig positionierter Punkt 2 mit x2, y2. Punkt 1 soll sich bis auf eine bestimmte Entfernung E geradlinig zum Punkt 2 zu bewegen. Gesucht ist nun die Koorinate x3, y3 zwischen Punkt 1 und 2 mit Abstand E zu Punkt 2. Bzw. die Formil, mit der mit so eine Koordinate berechnet. |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Nov 2005
Beiträge: 548
|
Schau mal in die Point-Klasse, speziell distance und interpolate: ActionScript:
Geändert von joeydee (16-03-2009 um 11:43 Uhr) |
| | |
| | #4 (permalink) |
| Spieler Registriert seit: Feb 2003 Ort: Hamburg/Elmshorn
Beiträge: 297
|
nur für den Fall, das jemand die Point-Klasse nicht nutzen kann/will (z.B. AS2) hier die generelle mathematisch Lösung: da du 2 Punkte hast, kannst du ein rechtwinkliges Dreieck erkennen. Das erstmal auf den Nullpunkt bringen und man erhält: Ankathete=x2-x1 Gegenkathete=y2-y1 Mit trigonometrischen Mitteln kannst du nun den Winkel beta (der an p1) errechnen: tan(beta)=Gegenkathete/Ankathete beta=arctan(Gegenkathete/Ankathete) Mit dem Winkel und der Entfernung E, die gleichbedeutend ist mit der Hypotenuse für das Dreieck von p1 und p3 ist, lassen sich nun die "neuen" Gegen- und Ankatheten berechnen: Gegenkathete=Hypotenuse*sin(beta) und Ankathete=Hypotenuse*cos(beta) Nun nur noch zurück "translatieren" :-) und du erhälst p3: x3=x1+Ankathete y3=y1+Gegenkathete Das ist schon alles :-) Mathematisch gesehen. Ich hoffe, ich hab bei den Winkelfunktionen keinen Fehler drin, aber eigentlich sollten das die richtigen trig. Funktionen sein... Man sollte jedoch im Hinterkopf haben, dass die Funktionen der Math-Klasse nicht grade für ihre Schnelligkeit bekannt sind!
__________________ MfG, FastEddie Kunde: „Alles prima, wir hätten da aber noch eine Textkorrektur in den Groblayouts. Bitte Lorem ipsum anstatt Lorem Ipsum.“ Geliehen von http://kunden.ausderhoelle.de Geändert von FastEddie (22-03-2009 um 18:28 Uhr) Grund: Schaubild angrfügt |
| | |
| | #5 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Der Vollständigkeit halber noch eine Mathematische Lösung ohne Trigonometrische Funktionen: Vector von Zielpunkt p2 zu Startpunkt p1: v: (p1.x - p2.x, p1.y - p2.y) Seine Länge ergibt sich nach Pythagoras: len_v = Math.sqrt(v.x * v.x + v.y * v.y) Diesen Vektor auf die Länge 1 normalisieren: u = (v.x / len_v, v.y / len_v) Und auf die gewünschte Entfernung skalieren: d = (u.x * distance, u.y * distance) Damit ergibt sich der Endpunkt zu p3 = (p2.x + d.x, p2.y + d.y)
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #6 (permalink) |
| Spieler Registriert seit: Feb 2003 Ort: Hamburg/Elmshorn
Beiträge: 297
|
Oha, ja, das ist gut! Vektoren hab ich gar nicht im Kopf gehabt. Er rumorte zwar im Hinterkopf, dass das auch irgendwie anders gehen müsste, aber der Funke ist nicht übergesprungen... Dafür hab ich nen schönes Schaubild
__________________ MfG, FastEddie Kunde: „Alles prima, wir hätten da aber noch eine Textkorrektur in den Groblayouts. Bitte Lorem ipsum anstatt Lorem Ipsum.“ Geliehen von http://kunden.ausderhoelle.de |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |