Koordinate berechnen zwischen zwei Punkten
Übersicht

![]() |
HubsiBetreff: Koordinate berechnen zwischen zwei Punkten |
![]() Antworten mit Zitat ![]() |
---|---|---|
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: 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? ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
feiderehemals "Decelion" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie soll denn Pythagoras einen weiteren Punkt liefern?
Du suchst die Schnittpunkte zweier Kreise mit bekanntem Radius um zwei bekannte Punkte. |
||
feiderehemals "Decelion" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Hirschin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() Man braucht noch nichtmal Trigonometrie dafür ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
--- 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
--- 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen lieben Dank an alle, damit denke ich komme ich jetzt weiter ![]() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group