Absender: Frank Menzel
Datum: So, 30.03.2008 13:25:39
In-reply-to:
<57C32A17-3A43-4751-A508-DB68D26733B1@xxxxxxxxxxxxxxx>
Hallo, also die Routine habe ich fast kopiert aus behaviour_goto_pos, wo es da heisst: /* Noch in die gewuenschte Blickrichtung drehen */ int16_t to_turn = (int16_t)(dest_head - (int16_t)heading) % 360; if (to_turn > 180) to_turn = 360 - to_turn; else if (to_turn < -180) to_turn += 360; LOG_DEBUG("to_turn=%d", to_turn); bot_turn(NULL, to_turn); Soll eben nur die Winkeldifferenz berechnen... Tiefschürfende Gedanken habe ich über die einzelnen Zeilen nicht verloren, da die Routine ja wie gewollt zur Differenzermittlung zwischen Winkeln funktioniert... Gruß, Frank Menzel -----Ursprüngliche Nachricht----- Von: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx [mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] Im Auftrag von Timo Sandmann Gesendet: Samstag, 29. März 2008 20:00 An: Entwicklung rund um den c't-bot Betreff: Re: [ct-bot] neues Stackverhalten zum Merken relevanter Wegepositionen Hallo, ich habe da mal eine Frage zu folgender Funktion: /*! * berechnet Winkeldifferenz zwischen aktueller Botausrichtung und einem Zielwinkel * param dest_head Zielwinkel * @return berechnete Winkeldifferenz */ int16 calc_diff_from_angles(int16 dest_head) { int16_t to_turn = (int16_t)(dest_head - (int16_t)heading) % 360; if (to_turn > 180) to_turn = 360 - to_turn; else if (to_turn < -180) to_turn += 360; to_turn = 360 - abs(to_turn); return to_turn; } Was genau soll die Funktion jetzt berechnen? Wenn die aktuelle Botausrichtung = 20 Grad ist, und ich die Funktion mit 10 aufrufe, kommt 350 heraus, wenn die aktuelle Botausrichtung = 10 Grad ist und ich die Funktion mit 20 aufrufe, kommt auch 350 heraus. Irgendwie ist das nicht das, was ich intuitiv erwarten würde nach der Dokumentation... Und warum eigentlich modulo 360? dest_head und heading liegen doch beide immer zwischen 0 und 360. Gruß Timo _______________________________________________ ct-bot-entwickler Mailingliste ct-bot-entwickler@xxxxxxxxxxxxxxxxx http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler