Schnitt von 2 Geraden

Status
Nicht offen für weitere Antworten.

VipViper2000

Aktives Mitglied
Hey Leute,

also ich hab derzeit ein Problem: Und zwar muss ich den Schnittpunkt von 2 Geraden berechnen, die in der Zweipunkteform vorliegen. Beim berechnen der Geradengleichungen habe ich ja jetzt das Problem mit Waagerechten Geraden.

Könnt ihr mir da mal nen Tip geben? Ich kann zwar toll prüfen ob 2 Geraden sich schneiden, aber ich den Punkt haben, wo sie sich schneiden.

Danke und Gruß,
VipViper2000
 

Wildcard

Top Contributor
VipViper2000 hat gesagt.:
Beim berechnen der Geradengleichungen habe ich ja jetzt das Problem mit Waagerechten Geraden.
Da gibts in einer 2D Ebene nur 2 Möglichkeiten:
1. Sie sind identisch
2. Sie sind parallel und schneiden sich nicht.

Was hat das eigentlich mit Java zu tun?
Gehört wohl eher zu Mathe ???:L
 

Ark

Top Contributor
Dazu gibt es z. B. Vektorrechnung. Für eine Gerade durch zwei Punkte A und B gilt:
x = xa + r * (xb-xa)
y = ya + r * (yb-ya)

Du kannst auch mit Gleichungen der Form
y = m * x + n

arbeiten, wobei m der Differenzenquotient
m = (yb-ya) / (xb-xa)

ist, usw. Mit Matrizen und Determinanten kann man auch arbeiten. In welcher Form hättest Du es denn gerne?

MfG
Ark
 
G

Guest

Gast
@Wildcard

Sorry, klar ist natürlich eine eher mathematische Frage. Sie ziehlte aber darauf ab, dass es vllt. eine Klasse / Methode in Java gibt die das für mich übernimmt. Ausserdem gibt es bei Geraden nicht nur 2 Möglichkeiten in der Ebene: Sie können nämlich auch Windschief sein ;).

@Ark

Keine Angst - so schlecht bin ich in Mathe nicht :lol: Das Problem ist ganz einfach wenn eine Gerade parallel zur Y-Achse steht.

@Beni

Genau das schaue ich mir jetzt mal an. Das wird mir weiterhelfen denke ich. Danke dir.
 

FelixB

Bekanntes Mitglied
Anonymous hat gesagt.:
Ausserdem gibt es bei Geraden nicht nur 2 Möglichkeiten in der Ebene: Sie können nämlich auch Windschief sein ;).

ach? kannst du mir da mal ne Skizze malen? Ich kenne nur windschiefe Geraden im dreidimensionalen Raum, nicht in einer Ebene...
 

Ark

Top Contributor
Anonymous hat gesagt.:
Keine Angst - so schlecht bin ich in Mathe nicht :lol: Das Problem ist ganz einfach wenn eine Gerade parallel zur Y-Achse steht.
VipViper2000 hat gesagt.:
Beim berechnen der Geradengleichungen habe ich ja jetzt das Problem mit Waagerechten Geraden.
:shock:

Keine Ahnung, wohin Deine Achsen zeigen …


VipViper2000 hat gesagt.:
Ich kann zwar toll prüfen ob 2 Geraden sich schneiden, aber ich den Punkt haben, wo sie sich schneiden.
Wenn Du weißt, dass sie sich schneiden, dann weißt Du auch, wo sie sich schneiden. :meld:
:arrow: Her mit Deinem bisherigen Code!

MfG
Ark

P.S.: Die windschiefen Geraden möchte ich auch sehen. :lol:
 
G

Gast

Gast
Wenn eine gerade parallel zur Y-Achse ist, dann ist es keine Funktion mehr. Und beim Schneiden merkt man dann auch warum.
 

FelixB

Bekanntes Mitglied
Gast hat gesagt.:
Wenn eine gerade parallel zur Y-Achse ist, dann ist es keine Funktion mehr. Und beim Schneiden merkt man dann auch warum.

???

g1: x=10 parallel zur Y-Achse
g2: y = f(x) irgendwas anderes

dann ist der Schnittpunkt mit gerade g2: y = f(x) in jedem Fall (10, f(10) )

falls g2 auch parallel zur Y-Achse, dann ist auch g1 || g2
 

Ark

Top Contributor
1. Es stimmt, dass x=10 keine Funktion ist.
2. Eine Funktion muss sich nicht unbedingt mit x=10 schneiden:

f(x) = 1/(10-x)

Diese Funktion ist für x=10 nicht definiert.


Aber das spielt in der Vektorrechnung sowieso keine Rolle — und auch nicht in diesem Fall, es geht ja um Geraden. :lol:

Na ja, wie gesagt, es wäre gut, wenn Du uns denn Deinen bisherigen Ansatz zeigen würdest.

MfG
Ark
 

FelixB

Bekanntes Mitglied
Ark hat gesagt.:
Aber das spielt in der Vektorrechnung sowieso keine Rolle — und auch nicht in diesem Fall, es geht ja um Geraden. :lol:

ich war jetzt nur etwas verwirrt, dass er auf einmal mit Funktionen ankommt - erst ging es ihm doch zunächst lediglich um Geraden :)
 

ChaosE

Mitglied
Gast hat gesagt.:
Wenn eine gerade parallel zur Y-Achse ist, dann ist es keine Funktion mehr. Und beim Schneiden merkt man dann auch warum.

Also, um das Antwortenkuddelmuddel hier etwas zu entwirren.

Eine Gerade, die parallel zur Y-Achse verläuft, ist natürlich auch eine Funktion. Nur nicht über x - sondern halt über y. Ist auch völlig irrellevant für die ursprüngliche Frage, wo es um eine Gerade in 2-Punktdarstellung geht. Die Lösung dafür ist wie folgt:

Jede Gerade wird durch zwei Punkte definiert. Sei A = (x1, y1) und B = (x2, y2) die zwei Punkte der ersten Gerade.
  1. Steigung für beide Geraden berechnen: (y2-y1) / (x2-y1)
  2. Fallunterscheidung: Steigung gleich ?
    [list:2f218d3ede]
  3. Ja: Parallel oder Identisch
  4. Nein: 2 Punkt-Darstellung in normale Geradengleichung umformen: g = A + d(B-A), d aus R
    Zwei Gleichungen, zwei Unbekannte -> einfaches Gleichungssystem.
[/list:eek::2f218d3ede]
Ist einfach zu programmieren, bedarf nur ziemlich vieler Fallunterscheidungen die man zuerst gerne übersieht (z.B. bei den schon erwähnten Geraden die parallel zur Y-Achse verlaufen, also immer prüfen ob x2-x1 nicht Null ist). Außerdem weisst Du nichts über die Reihenfolge der Punkte, die sollten der Einfachheit halber vorher immer so sortiert werden das x2>x1 gilt, um weitere Fallunterscheidungn zu vermeiden.

Die Frage hat aber in der Tat so ziemlich gar nichts mit Java an sich zu tun sondern nur mit linearer Algebra ;)

MfG;
ChaosE
 

Ark

Top Contributor
ChaosE hat gesagt.:
Außerdem weisst Du nichts über die Reihenfolge der Punkte, die sollten der Einfachheit halber vorher immer so sortiert werden das x2>x1 gilt, um weitere Fallunterscheidungn zu vermeiden.
Das ist egal, da das Vorzeichen des Differenzenquotienten von beiden Differenzen abhängt, weil es eben ein Quotient ist.
(y2-y1) / (x2-x1) = - (y1-y2) / (x1-x2)

Oder anders ausgedrückt:
(a-b) / (b-a) = -1
;)

ChaosE hat gesagt.:
Die Frage hat aber in der Tat so ziemlich gar nichts mit Java an sich zu tun sondern nur mit linearer Algebra ;)
Stimmt auffallend. ;)

MfG
Ark
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben