2012-04-11 23 views
1

Ich entwickle etwas PHP-Code, der mit einer Hardware kommuniziert, die eine physische Hand auf eine Uhr bewegt. Grundsätzlich habe ich eine Reihe von Zahlen (Minuten) zwischen 000 und 180, die den Servopositionen 000 bis 180 entsprechen.Skalierung einer Reihe von Zahlen in PHP?

Das Problem, mit dem ich konfrontiert bin, ist jetzt, dass das Servo nur Werte zwischen 000 bewegen kann und 165.

Gibt es eine Möglichkeit, eine gegebene Zahl im Bereich von 000 bis 180 auf einen Bereich von 000 bis 165 zu skalieren? Ich habe mir den Kopf zerbrochen, jede Hilfe wäre sehr willkommen.

Beispiel Funktion:

function convertScale($handVal) 
{ 
//some code to convert scale from 000-180 to 000-165 
return $convertedPos; 
} 
+0

Danke für die Hilfe, es ist viel einfacher als es scheint! Ich bin in Ordnung mit Programmierung, ich bin nur Müll bei Mathe-Problemen! – kirgy

Antwort

5

Kann es Gleitkomma nehmen?

function convertScale($handVal) 
{ 
    return $handVal * 165.0/180.0; 
} 

Wenn nicht, auf die nächste ganze Zahl gerundet ist hoffentlich in Ordnung:

function convertScale($handVal) 
{ 
    return round($handVal * 165.0/180.0); 
} 

--- --- Bearbeiten
Wie in den Kommentaren angedeutet, eine 3-stellige Zeichenfolge leicht bereitgestellt von:

function convertScale($handVal) 
{ 
    return sprintf ("%03d", round($handVal * 165.0/180.0)); 
} 
+0

Ich habe versucht herauszufinden, ob ich dumm bin und die Frage falsch lese. Schätze, es war wirklich so einfach von einer Frage, oder du liest es auch falsch. Hehe. – ceejayoz

+0

Es kann keinen Fließkommawert annehmen und muss trotz der Nummer drei Ziffern lang sein, also wäre 10 010. Aber ich habe eine vor geschriebene Funktion, die auf die nächste Zahl rundet und eine dreistellige Zahl erstellt Konvertieren in eine Zeichenfolge und Verwenden der Strlen-Funktion. Danke für diese Hilfe. Ich bin in Ordnung mit Programmierung, ich bin nur Müll bei Mathe-Problemen! – kirgy

+0

@ceejayoz: Ich nehme Fragen zum Nennwert, es sei denn, das scheint nicht die Absicht zu sein. Geradlinige Einfachheit ist in unseren persönlichen Interaktionen nur zu selten. – wallyk

Verwandte Themen