0

LED の色をユーザーが入力した RGB 値の色に変更するプロジェクトに取り組んでいます。

プログラムが現在各色の明るさを変更する方法は、数値を指定することです。つまり、完全0にオン、完全にオフ、50% の明るさなどです。1010.50

for を提供するのは一種の逆のように見え0ますが、それはコードが書かれている方法です。私の質問は、値をどのように変換するかです0-2550- 993 桁の数字を で割って計算しました。これにより、オンとオフの2.58場合に適切な数字が得られますが、逆なので、どうすれば反対の値を取得できますか?これの?10

残りはこれでいいでしょうか?たとえば、240/ 2.58=93残りは7、私が使用する数ですか? 残念ながら、数学は私の得意分野ではありませんでした。この質問が特定の言語に関係していないことはわかっていますが、Cそれが書かれているのでタグ付けしCます. モジュロ演算子は知っていますが、私の場合はうまくいかないと思いますが、間違っている可能性があります。

4

2 に答える 2

2
double mapNumbers(double x, long xMin, long xMax, long yMin, long yMax)
{
  return ((double)(x - xMin) * (yMax - yMin)) / ((double)(xMax - xMin)) + yMin;
}

上記の関数を使用します。

あなたxはの間0-255にあるものをマッピングし、から対応する番号を取得することができます0-99- 実際には、任意の範囲の数値と他の任意の範囲の数値の間で:

それで: mapNumbers(10/*assuming this is x*/, 0, 255, 0, 99);

于 2013-02-24T17:52:57.853 に答える
1

0 ~ 1 の範囲を 0 ~ 255 の範囲に変換するには、255 を掛けるだけです。逆にするには、1 から最初の値を引きます。

result = (1 - x) * 255;
于 2013-02-24T17:57:27.973 に答える