Koordinate berechnen zwischen zwei Punkten

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Hubsi

Betreff: Koordinate berechnen zwischen zwei Punkten

BeitragMi, Jul 24, 2013 12:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hai beisammen.

Ich möchte die X bzw. Y Koordinate eines Punktes zwischen zwei weiteren Punkten im zweidimesionalen Raum berechnen. Um zu verstehen was ich meine hier eine Skizze:
user posted image

Die Koordinaten der Punkte A und C sind dabei bekannt. Was ich brauche sind die Koordinaten des Punktes B unter Berücksichtigung der Linien die eine feste Länge haben. Wird sich Punkt C beispielsweise auf der X-Achse Punkt A nähern muss Punkt B sich ebenfalls in der X-Achse nach links bewegen und in der Y-Achse nach unten. Nur als Beispiel jetzt. Kann mir jemand helfen bei dem Problem? Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

feider

ehemals "Decelion"

BeitragMi, Jul 24, 2013 13:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kannst du mit dem Satz des Pythagoras machen.
Code: [AUSKLAPPEN]

a^2+b^2=c^2


c1 kann der feste Abstand zwischen A und B sein, c2 kann der feste Abstand zwischen B und C sein.
a und b sind dann Werte, die sich duch die Koordinaten der Punkte ergeben (der horizontale bzw vertikale Abstand in der Ebene). Das musst du dann nach den gewünschten Werten auflösen und erhältst eine Gleichung mit zwei Lösungen. Eine Lösung beschreibt den Punkt links der Verbindungslinie, eine den Punkt rechts der Verbindungslinie (bei dir z.B. B und B')

Um jeweils nur die x- bzw die y- Koordinate zu erhalten, wirst du Trigonometrie, d.h. in dem Fall wahrscheinlich den Cosinus benötigen.

Gruß
feider

PS:
http://de.wikipedia.org/wiki/Cosinus
http://de.wikipedia.org/wiki/Satz_des_Pythagoras
Die beiden Seiten reichen als Formelsammlung für das Problem Smile

BtbN

BeitragMi, Jul 24, 2013 18:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie soll denn Pythagoras einen weiteren Punkt liefern?
Du suchst die Schnittpunkte zweier Kreise mit bekanntem Radius um zwei bekannte Punkte.
 

feider

ehemals "Decelion"

BeitragMi, Jul 24, 2013 18:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun, du kannst einen Kreis darstellen als:

Code: [AUSKLAPPEN]

r² = x² + y²


bzw als Funktion abhängig von x:

Code: [AUSKLAPPEN]

y(x) = ±sqrt( r² - x² )


Eine Funktion mit zwei Lösungen, die im Intervall von -l bis l definiert ist und bei der an den Stellen -l und l beide Lösungen auf einen Punkt fallen.

"r" entspricht hierbei "c" beim Pythagoras und dem Radius des Kreises, x und y sind a und b. Ist ja die gleiche Formel mit anderen Variablennamen.

Dann y(x) für den "Kreis" um A aufstellen, y(x) für den Kreis um B nutzen, gleichsetzen und nach x auflösen.
Im Quellcode dann das Ergebnis für das gewünschte x (musst sehen, welchen der beiden Punkte du nutzen willst.) in eine der beiden Kreisfunktionen einsetzen und du erhältst das y. (Hierbei auf das Vorzeichen achten!)

EDIT:
So.
http://www.matheboard.de/archive/14156/thread.html
Brauchst im Gegensatz meiner ersten Idee Sinus und Cosinus nichtmal.

Hubsi

BeitragDo, Jul 25, 2013 11:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen lieben Dank erstmal für die schnelle Hilfe. Google liefert zu der Schnittpunktsache mit den Kreisen auch nette Formeln, doch übersteigt das meine Kapazitäten Smile Prinzipell bin ich kein Freund von Copy&Paste, aber hätte vielleicht jemand die Freundlichkeit das in BB zu übersetzen? Ich komm da nicht dahinter Embarassed
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Hirschin

BeitragMo, Jul 29, 2013 9:44
Antworten mit Zitat
Benutzer-Profile anzeigen
feider hat Folgendes geschrieben:
Das kannst du mit dem Satz des Pythagoras machen.
Code: [AUSKLAPPEN]

a^2+b^2=c^2


c1 kann der feste Abstand zwischen A und B sein, c2 kann der feste Abstand zwischen B und C sein.
a und b sind dann Werte, die sich duch die Koordinaten der Punkte ergeben (der horizontale bzw vertikale Abstand in der Ebene). Das musst du dann nach den gewünschten Werten auflösen und erhältst eine Gleichung mit zwei Lösungen. Eine Lösung beschreibt den Punkt links der Verbindungslinie, eine den Punkt rechts der Verbindungslinie (bei dir z.B. B und B')

Um jeweils nur die x- bzw die y- Koordinate zu erhalten, wirst du Trigonometrie, d.h. in dem Fall wahrscheinlich den Cosinus benötigen.

Gruß
feider

PS:
http://de.wikipedia.org/wiki/Cosinus
http://de.wikipedia.org/wiki/Satz_des_Pythagoras
Die beiden Seiten reichen als Formelsammlung für das Problem Smile



Man braucht noch nichtmal Trigonometrie dafür Very Happy
Am besten schreibst du bleide Gleichungen untereinander, dann lässt es sich einfacher rechnen.
Hier mal ein passendes Beispiel aus dem Matheboard - Forum, daran sollte es ziemlich ersichtlich sein.

1. Kreis: x² + y² = 4
2. Kreis: (x + 4)² + (y -3)² = 1 >>
............x² + y² + 8x -6y = - 24

Beide untereinander schreiben:

x² + y² = 4
x² + y² + 8x - 6y = -24 | * (-1)
_________________________

+x² + y² = 4
-x² - y² - 8x + 6y = 24 | nun addieren

________________________

......... -8x + 6y = 28

nun x ausdrücken und in eine der beiden Kreisgleichungen zurückeinsetzen, dann hast du nur noch eine Gleichung, wo y drin vorkommt und kommst auf eine quadratische Gleichung, die du mit p-q-Formel auflöst. Das heißt, du bekommst 2 y-Koordinaten heraus.
Die setzt du dann zurück ein und kriegst die dazugehörigen x-Koordinaten deiner 2 Schnittpunkte raus.

Plausibel?

Jan_

Ehemaliger Admin

BeitragMo, Jul 29, 2013 10:42
Antworten mit Zitat
Benutzer-Profile anzeigen
--- FEST Länge überlesen, Lösung, ohne feste länge... ---

Du hast also 2 Ortsvektoren, A und C. und 2 Richtungsvektoren
A -> B und C-> B

A + r*AB = C + m * CB

A und C hast du AB und CB hast du
Also fehlt m und r

Ax+r*abx=cx+m*cbx
Ay+r*aby=cy+m*cby

http://www.frustfrei-lernen.de...raden.html

http://en.wikipedia.org/wiki/L...tersection

Hier noch der Algo weich gekaut auf englisch dafür:
http://stackoverflow.com/quest...-intersect

wenn du dort u und V hast, (m und r bei mir) kannst du von einen der Beiden Punkte ausgehen und weißt, wie weit du AB bzw. CB gehen musst.
between angels and insects
  • Zuletzt bearbeitet von Jan_ am Mo, Jul 29, 2013 11:06, insgesamt einmal bearbeitet

Jan_

Ehemaliger Admin

BeitragMo, Jul 29, 2013 11:03
Antworten mit Zitat
Benutzer-Profile anzeigen
--- FEST Länge überlesen, Lösung, ohne feste länge... ---

ich habe für dich lieber Hubsi sogar

nochmal Blitz3d ausgekramt.

Code: [AUSKLAPPEN]
Graphics 640,460,32,2

ax#=12
ay#=34
bx#=312
by#=65

abx#=3
aby#=8

bcx#=-4
bcy#=3



dx# = bx - ax
dy# = by - ay
det# = bcx * aby - bcy * abx
u# = (dy * bcx - dx * bcy) / det
v# = (dy * abx - dx * aby) / det
DebugLog v
DebugLog u


Cls

Line ax,ay,ax+u*abx,ay+u*aby
Line bx,by,bx+v*bcx,by+v*bcy

cx=ax+u*abx
cy=ay+u*aby

Color 255,0,0

Line cx-5,cy-5,cx+5,cy+5
Line cx+5,cy-5,cx-5,cy+5

Flip

WaitKey()
between angels and insects

Hubsi

BeitragDi, Jul 30, 2013 5:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen lieben Dank an alle, damit denke ich komme ich jetzt weiter Very Happy Werd mir das mal zu Gemüte führen und editier dann eventuelle weitere Fragen dazu hier rein. Tausend Dank nochmal Smile
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group