在Dart / Flutter中将值从最小/最大重新映射为最大/最小

时间:2019-06-30 22:04:05

标签: android flutter dart httpapi

我正在通过Dart编程语言开发Flutter中的应用程序。 我正在尝试通过HTTP-API调用控制RGB-LED。存在的问题是,LED的特性反转。我不是该主题的专家,但我可以为您提供以下信息: 为LED设置r,g和b值时,它们每个都需要一个介于0到255之间的整数。这些值通过URL查询参数发送到LED。问题是,当值为255时,LED会关闭引脚;如果值为0,则LED会完全导通。 由于颜色选择器以相反的顺序获取值(意味着全红色为255,没有红色为0),因此我需要以某种方式将0重新映射为255,反之亦然。同样,0到255之间的每个值都需要重新映射,这意味着254例如需要为1。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这是一个数学问题,我认为这很容易。

由于您知道所需的硬编码值和限制[不大于255]

您需要

255-> 0

254-> 1 //不是2 -.-

10-> 245

您可以添加减法

255-255 = 0

255-254 = 1

255-10 = 245

并编写一个简单的函数

int invertNumber(int initialNumber){
    return 255 - initialNumber;
}

并像

那样称呼它
int invertedNumber = invertNumber(40);