heise online · c't · iX · Technology Review · Telepolis · mobil · Security · Netze · heise open · heise resale · Autos · c't-TV · Jobs · Kiosk
Zum Inhalt
c't

c't Projekte - c't-Bot und c't-Sim - Mailinglisten

c't-Bot und c't-Sim


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

Re: AW: [ct-bot] Abstandsberechnung in sensor_abstand

Absender: Benjamin Benz
Datum: Mo, 28.08.2006 16:13:06
In-reply-to: <000801c6c872$966a8cb0$fe78a8c0@mexpnew>
References: <000801c6c872$966a8cb0$fe78a8c0@mexpnew>


Frank Menzel wrote:
> Hallo,
> dies ist keine Antwort auf die Frage. Aber das Wegstecken der Division
> durch 0 ist mir auch schon aufgefallen. Ein paar Zeilen tiefer in der
> sensor.c heißt es:
> /* Schnittpunkt berechnen */
> 				xd=(a2-a1)/(s1-s2);
> 				yd=(s1*a2-s2*a1)/(s1-s2);
> 
> Und s1-s2 ist durchaus 0, bereits zum Startzeitpunkt. Die Antwort würde
> mich auch interessieren.

Die ist ganz einfach. Wenn Sie den Code ein paar Zeilen darüber mitlesen:

/* Geradeausfahrt? (s1==s2) */
if (s1==s2) { /* Bei Geradeausfahrt ist v_left==v_right==v_center */
  v_mou_left=v_mou_right=v_mou_center;
} else {
  /* y-Achsenabschnitte berechnen */
  a1=old_y-s1*old_x;
  a2=y_mou-s2*x_mou;
  /* Schnittpunkt berechnen */
  xd=(a2-a1)/(s1-s2);
  yd=(s1*a2-s2*a1)/(s1-s2);

  ...
}
So wird der Sonderfall s1==s2 vorher abgefangen.

MfG Benjamin Benz


-- 
Benjamin Benz
Heise Zeitschriften Verlag
Redaktion c't
eMail: bbe@xxxxxxxx
WWW  : http://www.heise.de





Copyright © 2007 Heise Zeitschriften Verlag Kritik, Anregungen bitte an c't-WWW Datenschutzhinweis   Impressum