Schnittpunkt zweier Geraden

Fragen zu mathematischen Problemen
Empire
Beiträge: 272
Registriert: Mo Jan 26, 2009 5:36 pm

Schnittpunkt zweier Geraden

Beitrag von Empire » Sa Feb 19, 2011 8:49 pm

Hi zusammen,
ich schreib mir grade eine kleine 3D Engine. Um die Tiefe einzelner
Pixel zu berechnen muss ich ausrechnen wo sich zwei Geraden schneiden.
Eigendlich kann ich das (einfach gleich setzten).
Aber ich bekomme das nicht so umgestellt das ich das mit Java
umsetzten kann.

Kann mir das bitte jemand so schreiben das es Java frisst?

mfg
Empire

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Schnittpunkt zweier Geraden

Beitrag von Dirty Oerti » Sa Feb 19, 2011 9:49 pm

Tag :)
So, ich hab mich da mal kurz ran gesetzt:
lsg.png
Soweit die mathematische Herleitung.
Lösung 1 berechnet dabei nur, ob die Geraden sich schneiden, jedoch keinen Schnittpunkt.
Dafür bin ich mir zu 100% sicher, dass diese Lösung funktioniert.

Auf Lösung 2 bin ich so beim Drübergucken gekommen.
Müsste eigentlich auch funktionieren, und liefert zusätzlich noch Lambda und My um den Schnittpunkt zu berechnen.

Mal Lsg 2 als Code:

Code: Alles auswählen

/*
** Muss gegeben sein. a ist Aufpunkt der ersten Gerade, b Aufpunkt der zweiten.
** u ist Richtungsvektor der ersten Gerade, v der der zweiten.
double a1,a2,a3;
double b1,b2,b3;
double v1,v2,v3;
double u1,u2,u3;
*/

double D = (u1*v2 - u2*v1);
if (D != 0)
{
  //schneiden sich evtl.
  double D1 = (b1-a1)*v2 - v1*(b2-a2);
  double D2 = u1*(b2-a2) - u2*(b1-a1);
  double lambda = D1/D;
  double my = -D2/D;
  if(lambda*u3 - my*v3 == b3-a3)
  {
     //schneiden sich, Punkt lässt sich mit gegebenen Lambda oder my berechnen
     double p1 = a1 + lambda*u1;
     double p2 = a2 + lambda*u2;
     double p3 = a3 + lambda*u3;
  }
  else
  {
    // lediglich die Projektion in die x-y-Ebene schneidet sich ... falls dir das was bringt ^^
  }
}
else
{ 
  // schneiden sich nicht
}
Kannst du mir folgen?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

nouseforname
Beiträge: 236
Registriert: Do Feb 10, 2011 6:31 pm

Re: Schnittpunkt zweier Geraden

Beitrag von nouseforname » Sa Feb 19, 2011 9:54 pm

Du meinst diese Geschichte hier?

http://mathenexus.zum.de/html/analysis/ ... eraden.htm
http://www.java-forum.org/spiele-multim ... #post34761


Vielleicht hilft Dir ja das:
http://forum.worldofplayers.de/forum/sh ... p?t=783387

edit:
Das war wohl jemand schneller beim selbst schreiben als ich beim Googlen. .)

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Schnittpunkt zweier Geraden

Beitrag von Xin » Sa Feb 19, 2011 11:55 pm

Ich will das eig gerade ins Wiki packen, merke aber, dass ich heute nicht dazu in der Lage bin... ich verrechne mich andauernd... sch... Kopfschmerzen.

Ich probiere das morgen nochmal, allerdings bisher ohne Code.

Morgen ist heute: http://proggen.org/doku.php?id=theory:m ... :intersect
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Empire
Beiträge: 272
Registriert: Mo Jan 26, 2009 5:36 pm

Re: Schnittpunkt zweier Geraden

Beitrag von Empire » So Feb 20, 2011 2:26 pm

Find ich super danke.
Wie muss ich das ändern um das ganze in 2D zu berechnen?

mfg
Eempire

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Schnittpunkt zweier Geraden

Beitrag von Dirty Oerti » So Feb 20, 2011 2:44 pm

in 2D ist das dann am besten mit meiner Lösung 2 machbar, nur, dass du alles hinter "UND" vergessen kannst ;)
Im R^2 gibt es nämlich nur Parallele und sich schneidende Geraden, jedoch keine Windschiefen ;)

[quote][/quote]

Code: Alles auswählen

/*
** Muss gegeben sein. a ist Aufpunkt der ersten Gerade, b Aufpunkt der zweiten.
** u ist Richtungsvektor der ersten Gerade, v der der zweiten.
double a1,a2;
double b1,b2;
double v1,v2;
double u1,u2;
*/

double D = (u1*v2 - u2*v1);
if (D != 0)
{
  //schneiden sich evtl.
  double D1 = (b1-a1)*v2 - v1*(b2-a2);
  double D2 = u1*(b2-a2) - u2*(b1-a1);
  double lambda = D1/D;
  double my = -D2/D;
  double p1 = a1 + lambda*u1;
  double p2 = a2 + lambda*u2;
}
else
{
  // schneiden sich nicht
}
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Empire
Beiträge: 272
Registriert: Mo Jan 26, 2009 5:36 pm

Re: Schnittpunkt zweier Geraden

Beitrag von Empire » So Feb 20, 2011 3:16 pm

Danke ihr habt mich ein großes stück weiter gebracht.

mfg
Empire

nati
Beiträge: 24
Registriert: Sa Jun 06, 2009 1:35 pm
Wohnort: Österreich/Kärnten

Re: Schnittpunkt zweier Geraden

Beitrag von nati » Mi Mai 29, 2013 8:50 am

Hallo,

ich möchte auch gerne den Schnittpunkt von 2 Geraden berechnen nur möchte ich zusätzlich den Schnittpunkt wissen..könnte mir da jemand weiterhelfen!?

thx

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Schnittpunkt zweier Geraden

Beitrag von Xin » Mi Mai 29, 2013 8:54 am

nati hat geschrieben:ich möchte auch gerne den Schnittpunkt von 2 Geraden berechnen nur möchte ich zusätzlich den Schnittpunkt wissen..könnte mir da jemand weiterhelfen!?
Woran scheitert es denn?

Und in wievielen Dimensionen verlaufen diese Geraden? Im 3D Raum können die Geraden ja auch problemlos aneinander vorbei laufen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nati
Beiträge: 24
Registriert: Sa Jun 06, 2009 1:35 pm
Wohnort: Österreich/Kärnten

Re: Schnittpunkt zweier Geraden

Beitrag von nati » Mi Mai 29, 2013 9:07 am

Die Geraden sind in einem 2D Raum.
Dachte die Variblen p1 und p2 im Code von Dirty Oerti sind die Koordinaten des Schnittpunktes, hat aber mit meinem Beispiel nicht geklappt..

Antworten