C 颜色代码值转换为2位数字
我正在进行一个项目,将LED的颜色更改为用户输入的RGB值的颜色 程序现在改变每种颜色亮度的工作方式是为其提供一个数字C 颜色代码值转换为2位数字,c,math,C,Math,我正在进行一个项目,将LED的颜色更改为用户输入的RGB值的颜色 程序现在改变每种颜色亮度的工作方式是为其提供一个数字0-1,使0完全打开1完全关闭0.50是50%亮度等 为on提供0似乎有点倒退,但这只是编写代码的方式。我的问题是如何将值0-255转换为0-99我已经通过将3位数字除以2.58完成了数学运算,如果它是1表示打开,是0表示关闭,则给出了正确的数字,但既然它是向后的,我怎么才能得到相反的结果呢 这是剩下的吗?比如说240/2.58=93剩下的是7,那么我会用这个数字吗?不幸的是,数
0
-1
,使0
完全打开1
完全关闭0.50
是50%亮度等
为on提供0
似乎有点倒退,但这只是编写代码的方式。我的问题是如何将值0
-255
转换为0
-99
我已经通过将3位数字除以2.58
完成了数学运算,如果它是1
表示打开,是0
表示关闭,则给出了正确的数字,但既然它是向后的,我怎么才能得到相反的结果呢
这是剩下的吗?比如说240
/2.58
=93
剩下的是7
,那么我会用这个数字吗?不幸的是,数学从来不是我的强项。我知道这个问题不适用于某一种语言,但我将用C
来标记它,因为这就是它要用的语言。如果有人能提供一个使用C
获取数字剩余部分的例子,那就太棒了。我知道模算子,但我认为这在我的情况下不起作用,但我可能错了
double mapNumbers(double x, long xMin, long xMax, long yMin, long yMax)
{
return ((double)(x - xMin) * (yMax - yMin)) / ((double)(xMax - xMin)) + yMin;
}
使用上述功能:
您可以映射介于0-255
之间的x
,并从0-99
中获取相应的数字-影响任何数字范围和任何其他数字范围:
因此:
mapNumbers(10/*假设这是x*/,0,255,0,99)代码>
使用上述功能:
您可以映射介于0-255
之间的x
,并从0-99
中获取相应的数字-影响任何数字范围和任何其他数字范围:
因此:
mapNumbers(10/*假设这是x*/,0,255,0,99)代码>好的,从0-1范围转换为0-255范围,只需乘以255即可。相反,只需从1中减去第一个值
result = (1 - x) * 255;
那么,要从0-1范围转换为0-255范围,只需乘以255即可。相反,只需从1中减去第一个值
result = (1 - x) * 255;
1-color/2.58
,不是吗?1-color/2.58
,不是吗?