schnittpunkt von 2 geraden

Neue Frage »

katerkarlo Auf diesen Beitrag antworten »
schnittpunkt von 2 geraden
Hallo smile
Ich Programmiere hobbymäßig und stoße dabei immer wieder auf ein mathematisches problem das mir viele türen bei der lösung öffnen würde.

Also:
Ich habe 2 geraden in einem koordinatensystem wobei mir die koordinaten der jeweiligen start -und endpositionen bekannt sind.

Ich möchte nun 2 dinge herausfinden:
Überschneiden sich die beiden geraden?
Und wenn ja wo (im koordinatensystem) ist die überschneidung.

Ich habe dieselbe frage auch schon mal hier gestellt ,glaube den lösungsansatz auch verstanden zu haben aber komme trotzdem nicht zu einem befriedigenden ergebniss verwirrt

Ein simples Programm von mir dazu gibt es auch schon hier
(maus gedrückt halten um eine linie zu zeichnen,escape zum beenden

Ich sollte noch erwähnen das ich leider nicht ganz die perfekte schullaufbahn habe also mir zbsp. das umstellen von formeln erst aneignen muß & Vektoren bis vor kurzem ein fremdwort für mich waren Augenzwinkern
riwe Auf diesen Beitrag antworten »
RE: schnittpunkt von 2 geraden
in der ebene oder im raum verwirrt
werner
mYthos Auf diesen Beitrag antworten »

Hi!

Beim Betrachten in dem andern Forum krieg' ich ja Augenschmerzen, länger als eine halbe Minute kann diese Farben doch kein Mensch aushalten! (Aber dafür kannst du ja nichts)

Im zweidimensionalen Raum kann man das auch ohne Vektoren angehen, einfach die Gleichung der Geraden ausrechnen, wenn zwei Punkte von ihr bekannt sind.

Beispiel: P(2;3), Q(5;9)

Die Gleichung der durch P, Q gehenden Geraden wird mittels der Zweipunktform berechnet:



Siehst du darin die Gesetzmäßigkeit bzw. den Zusammenhang zwischen den Koordinaten der gegebenen Punkte? Das kann man natürlich auch leicht in ein Programm einbauen. x, y sind die laufenden Koordinaten bzw. Variablen der Geradengleichung. Nun weiter vereinfachen zu





Wenn du nun zwei solcher Geraden zum Schnitt bringen willst, hast du ein System zweier solcher linearer Gleichungen zu lösen.

Dazu können folgende Fälle eintreten:


    Geraden verschieden -> Schnittpunkt existiert
    Geraden parallel -> kein Schnittpunkt
    Geraden identisch -> Jeder Punkt der Geraden ist Schnittpunkt


Im dreidimensionalen Raum können die Geraden nur in der Parameterform (mit Anfangspunkt und Richtungsvektor) angegeben werden. Der Schnittpunkt wird ermittelt, indem man - ebenfalls in einem lGS (lin. Gleich.syst.) - nach den Parametern auflöst. Auch da können prinzipiell die o.a. Auflösungsfälle eintreten, als 4. Fall kommt hinzu, dass die Geraden kreuzend (windschief) sein können, dann haben sie ebenfalls keinen Schnittpunkt.

mY+
katerkarlo Auf diesen Beitrag antworten »

Ja gottseidank bin ich für augenschäden wegen nicht haftbar zu machen, weil unschuldig Big Laugh

Ja ich meinte für den zweidimensionalen raum.

Ich gebe zu das ich ehrlich gesagt die von Dir gepostete formel nicht ganz nachvollziehen kann.
Aber das wohl eher deswgen weil mir da anscheinend so einige grundlagen fehlen.

However.
Vielen dank für eure mühen aber ich bin anderweitig fündig geworden

JUHUU Tanzen

Also für alle die noch Jahre später durch irgendeine suchmaschine (wie ich häufig) auf diese seite stoßen poste ich mal den code ( geschrieben in Freebasic)
Zitat:

function collision(ax,ay,bx,by,cx,cy,dx,dy,result,kreuzpunkt_y,kreuzpunkt_x)':bool;
dim rn as double,rd as double,sn as double,kreuzpunkt_cd as double,kreuzpunkt_ab as double 'Hilfsvariablen der Funktion
'entnommen und für Freebasic umgewandelt aus dem quellcode
'der c++ Auto-simulation
'von http://www.vanden.de/
'von
'Ralf van den Heuvel
'An Eulen 10
'47906 Kempen
'
'Mailkontakt:
'[email protected]
'//-----------------------------------------------------------------------------
'//findet Kollision zwischen zwei Linien statt?
'//Übergabe
'// ax,ay,bx,by - Linie 1
'// cx,cy,dx,dy - Linie 2
'//Ergebnis
'// Bool Result -> bei Kollision = 1
'// kreuzpunkt_x und kreuzpunkt_y -> wo fand das crossing statt
'//-----------------------------------------------------------------------------
rd=(bx-ax)*(dy-cy)-(by-ay)*(dx-cx)
If rd=0 then
result=0
else
'begin
rn=(ay-cy)*(dx-cx)-(ax-cx)*(dy-cy)
sn=(ay-cy)*(bx-ax)-(ax-cx)*(by-ay)
kreuzpunkt_ab=rn/rd
kreuzpunkt_cd=sn/rd
kreuzpunkt_x=ax+kreuzpunkt_ab*(bx-ax)
kreuzpunkt_y=ay+kreuzpunkt_ab*(by-ay)
if (kreuzpunkt_ab<0) Or (kreuzpunkt_ab>1) Or (kreuzpunkt_cd<0) Or (kreuzpunkt_cd>1) Then
result=0
else
result=1
end if
end if

line(ax,ay)-(bx,by),rgb(250,200,200)
line(cx,cy)-(dx,dy),rgb(200,200,250)
locate 5
? ax;",";ay;",";bx;",";by;",";cx;",";cy;",";dx;",";dy;",";result;",";kreuzpunkt_y;",";kreuzpunkt_x;" "
? "ax,ay,bx,by,cx,cy,dx,dy,result,kreuzpunkt_y,kreuzpunkt_x "
? "kreuzpunkt_ab";kreuzpunkt_ab;" "
? "kreuzpunkt_cd";kreuzpunkt_cd;" "
? "rn,";rn
? "rd,";rd
? "sn";sn
? "result";result
?
end function


btw ihr (admins) sucht noch mathe tools?
Ich bin bei meinen recherchen zufällig auf diese Seite hier gestossen.
Vielleicht könnt ihr ja was damit anfangen smile

Wink
mYthos Auf diesen Beitrag antworten »

Schön, dass du fündig geworden bist und danke für den Hinweis! Die Brünner-Seite dürfte unter Insidern weithin bekannt sein ..., ich finde sie toll.

Allgemein lautet die Gleichung der durch gehenden Geraden (Zweipunktform):



mY+
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »