ich weiß nicht genau, ob es in dieses Brett passt, aber ich versuch’s mal:
Gegeben sei ein normales Uhrenzifferblatt mit einem Zeiger.
Gegeben sei eine Anfangsposition des Zeigers, als Beispiel 2.
Gegeben sei eine Endposition des Zeigers, als Beispiel 11.
Es ist leicht ersichtlich, dass man dein Zeiger schneller linksherum über die 12 nach 11 dreht, als rechtsherum.
Wie kann ich das in eine mathematische Funktion gießen? Eingangswerte sollen Anfangs- und Endposition sein, Ergebnis eine Zahl, die mir die minimale Schrittzahl gibt und durch das Vorzeichen die Drehrichtung, für das Beispiel also -3.
Diese Formel muss so allgemein sein, dass sie für jede Kombination aus Anfangs- und Endpunkt gültig ist.
Ich hoffe auf eure Ideen.
Danke im Voraus,
Andreas
PS: Rückfragen kann ich leider erst heute Abend beantworten. Ich bin unterwegs.
Gegeben sei ein normales Uhrenzifferblatt mit einem Zeiger.
Gegeben sei eine Anfangsposition des Zeigers, als Beispiel 2.
Gegeben sei eine Endposition des Zeigers, als Beispiel 11.
Es ist leicht ersichtlich, dass man dein Zeiger schneller
linksherum über die 12 nach 11 dreht, als rechtsherum.
Wie kann ich das in eine mathematische Funktion gießen?
um den Stundenzeiger der Uhr mit minimalem Weg zu verstellen, musst Du seine Position um
Δ = d – 12 round(d/12)
mit d := Endposition – Anfangsposition
Stunden ändern. Der Ausdruck ist vorzeichenrichtig; bei Δ > 0 ist der Zeiger vor, bei Δ
danke. Das stimmt so. Gibt einen Stern. So ähnlich hatte ich das auch schon programmiert. Ich hatte allerdings gehofft, dass es eine Lösung ohne if-then gäbe, also eine Formel, die alle Eventualitäten erschlägt.