Hallo,
ich habe folgendes Problem. Ich versuche einen Algorithmus zu entwickeln der bei gegebenen Anfangswinkel und Endwinkel die kürzere Rotierung herausfinden soll. Sprich ob er rechts oder links herum drehen soll.
z.B.
| Anfangswinkel | Endwinkel | Rotierung
| 0 Grad | 350 Grad | Links (Gegen den Uhrzeiger)
| 0 Grad | 20 Grad | Rechts
Dieses Problem habe ich jetzt wiefolgt gelöst:
Wenn man nämlich berechnet
A:=Anfangswinkel
E:=Endwinkel
Einmal die benötigten Schritte für die rechts Umdrehung: (0+(E-A))modulo 360
Einmal die benötigten Schritte für die links Umdrehung: (0-(E-A))modulo 360
Meine Frage ist nun z.B. habe ich einen Winkel Start 90 Grad und ein Ziel 95 Grad. Hier würde man klar rechts rumdrehen leider kann der Winkel nicht z.B den Wert 92 anehmen also muss man doch links rumdrehen. Nun muss man ja eine kleiner grösser Abfrage machen um zuschauen ob 92 in dem Drehbereich liegt.
Ab hier habe ich ein Denkfehler und kriege diese Abfrage nicht hin.
Ich würde mich sehr über Eure Hilfe freuen.
ich habe folgendes Problem. Ich versuche einen Algorithmus zu entwickeln der bei gegebenen Anfangswinkel und Endwinkel die kürzere Rotierung herausfinden soll. Sprich ob er rechts oder links herum drehen soll.
z.B.
| Anfangswinkel | Endwinkel | Rotierung
| 0 Grad | 350 Grad | Links (Gegen den Uhrzeiger)
| 0 Grad | 20 Grad | Rechts
Dieses Problem habe ich jetzt wiefolgt gelöst:
Wenn man nämlich berechnet
A:=Anfangswinkel
E:=Endwinkel
Einmal die benötigten Schritte für die rechts Umdrehung: (0+(E-A))modulo 360
Einmal die benötigten Schritte für die links Umdrehung: (0-(E-A))modulo 360
Meine Frage ist nun z.B. habe ich einen Winkel Start 90 Grad und ein Ziel 95 Grad. Hier würde man klar rechts rumdrehen leider kann der Winkel nicht z.B den Wert 92 anehmen also muss man doch links rumdrehen. Nun muss man ja eine kleiner grösser Abfrage machen um zuschauen ob 92 in dem Drehbereich liegt.
Ab hier habe ich ein Denkfehler und kriege diese Abfrage nicht hin.
Ich würde mich sehr über Eure Hilfe freuen.
Comment