1

私は、時計の物理的な手を動かしているハードウェアと通信するPHPコードを開発しています。基本的に、サーボ位置000から180に対応する000から180までの数値(分)の範囲があります。

私が直面している問題は、サーボが000から165の間の値にしか移動できないことを発見したことです。

000から180の範囲の特定の数値を000から165の範囲にスケーリングする方法はありますか?私はこれに頭を悩ませてきました、どんな助けでも大歓迎です。

関数の例:

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

1 に答える 1

5

浮動小数点を取ることはできますか?

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

そうでない場合は、最も近い整数に丸めても問題ありません。

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

---編集---
コメントでほのめかされているように、3桁の文字列は次の方法で簡単に提供されます。

function convertScale($handVal)
{
    return sprintf ("%03d", round($handVal * 165.0 / 180.0));
}
于 2012-04-11T20:39:20.350 に答える