将梯度映射到数值
map gradient to number value
本文关键字:映射 更新时间:2023-09-26
我需要在div/canvas或其他东西上绘制渐变。渐变将以一种颜色开始,以另一种颜色结束。所以只有两种颜色(以及中间的颜色)。假设它以白色开始,以黑色结束。
正在处理的应用程序调用返回1-100之间的数字的API。我认为渐变的宽度应该是100%,这样计算起来"容易"。
我从API得到的数字应该映射到渐变中的位置和十六进制代码,并返回这两个。
我该怎么做呢?有什么想法或代码吗?
如果我理解正确的话,你有:
startColor at 0%
endColor at 100%
chosenColor at x%
让我们假设你保存十六进制颜色如下(这里白色是startColor):
startColor.red = 255;
startColor.green = 255;
startColor.blue = 255;
计算两种颜色的差值:
diffColor.red = endColor.red - startColor.red;
diffColor.green = endColor.green - startColor.green;
diffColor.blue = endColor.blue - startColor.blue;
然后根据你的x值给startColor添加差值:
markerColor.red = startColor.red + diffColor.red * x / 100;
markerColor.green = startColor.green + diffColor.green * x / 100;
markerColor.blue = startColor.blue + diffColor.blue * x / 100;
如果你需要计算位置,它会以同样的方式:
markerPosition = startPosition + distance / x * 100
我不知道这是不是你要找的。我不知道你的问题是超级复杂还是真的很简单。
相关文章:
- 如何在映射数组中添加换行符
- ng映射方向备选方案
- 无法通过数组映射绑定
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 使用Scala Play Framework视图中的键检索映射值
- 淘汰映射;不起作用
- 映射数组ES6时考虑空值
- Lodash映射并返回唯一
- 如何对映射插件创建的敲除对象进行深度复制
- 在javascript中按映射中的值排序
- 使用带有两个参数的函数的javascript映射
- 在内部映射值时渲染方法中断
- JSON:获取映射数据
- HTML Dropdownlist未映射到MVC模型
- 使用Google Maps JavaScript API v3和Geocoding API映射多个位置
- immutable.js与嵌套映射/对象的比较/相等性能
- 从映射返回React渲染数组
- 使用Google'设置ID属性;s映射API
- 使用Browserify和Typescript的源映射进行Webstorm调试
- Knockout映射创建/更新出现问题