30.12.2012 Aufrufe

Dissertation-Endstand3 - KLUEDO - Universität Kaiserslautern

Dissertation-Endstand3 - KLUEDO - Universität Kaiserslautern

Dissertation-Endstand3 - KLUEDO - Universität Kaiserslautern

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Anhang 79<br />

else {<br />

Px = -999.9;<br />

Py = -999.9;<br />

return false;<br />

}<br />

}<br />

bool SchnittGradeGrade(const double Ax,const double Ay,<br />

const double Bx,const double By,<br />

const double Cx,const double Cy,<br />

const double Dx,const double Dy,<br />

double& Px,double& Py)<br />

{<br />

double nenner = (Bx-Ax)*(Dy-Cy)-(By-Ay)*(Dx-Cx);<br />

if (nenner == 0) {<br />

Px = -999.9;<br />

Py = -999.9;<br />

return false;<br />

}<br />

double r = ( (Ay-Cy)*(Dx-Cx)-(Ax-Cx)*(Dy-Cy) ) / nenner ;<br />

Px = Ax + r * (Bx-Ax);<br />

Py = Ay + r * (By-Ay);<br />

return true;<br />

}<br />

double Abstand(const double Ax,const double Ay,<br />

const double Bx,const double By)<br />

{<br />

return sqrt( (Bx-Ax)*(Bx-Ax) + (By-Ay) * (By-Ay) ) ;<br />

}<br />

//-------------------------------------------------------------------<br />

// Hilfsfunktionen fuer die Zeitberechnung<br />

double ZeitBeiDurchstoss (const double Ax,const double Ay,<br />

const double Bx,const double By,<br />

const double Px,const double Py,<br />

const double At,const double Bt)<br />

{<br />

double dAB = Abstand(Ax, Ay, Bx, By);<br />

double dAP = Abstand(Ax, Ay, Px, Py);<br />

return ( dAP/dAB * (Bt - At) ) + At;<br />

}<br />

double ZeitExtrapoliert(const double Ax,const double Ay,<br />

const double Bx,const double By,<br />

const double Px,const double Py,<br />

const double At,const double Bt)<br />

{<br />

double dAP = Abstand(Ax, Ay, Px, Py);<br />

double dBP = Abstand(Bx, By, Px, Py);<br />

return ( dAP*Bt - dBP*At ) / ( dAP- dBP) ;<br />

}<br />

//-------------------------------------------------------------------<br />

// Datenspeicher fuer Fahrzeug-Positionen<br />

struct Position {<br />

static const double INVALIDDOUBLE;<br />

double x,y;<br />

bool valid;<br />

Position() {<br />

x = INVALIDDOUBLE ;<br />

y = INVALIDDOUBLE ;<br />

valid = false;<br />

}<br />

friend ostream& operator

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!