gpt4 book ai didi

flutter - 在 LinearGradient 中的位置获取颜色

转载 作者:行者123 更新时间:2023-12-04 13:21:30 24 4
gpt4 key购买 nike

有什么方法可以使用 LinearGradient 构建渐变,然后在其停靠点的某个位置访问它的颜色?

例子:

LinearGradient gradient = LinearGradient(
colors: [Colors.red, Colors.green, Colors.blue],
stops: [0.0,100.0,200.0],
);

如果有像 getColor(double) 这样的方法它可能像这样工作
gradient.getColor(100.0) // returns equivalent to Colors.green
gradient.getColor(150.0) // returns interpolated color between green and blue

我正在尝试使用 Flutter 生成渐变的能力来为我提供特定值的内插颜色。

编辑
Color lerp(Color a, Color b, double t);

允许您使用与渐变相同的逻辑来混合颜色,但它不允许您混合颜色列表

最佳答案

我想使用 lerp ,颜色数组和数组如果停止,您可以轻松构建该函数。像这样的东西:

Color lerpGradient(List<Color> colors, List<double> stops, double t) {
for (var s = 0; s < stops.length - 1; s++) {
final leftStop = stops[s], rightStop = stops[s + 1];
final leftColor = colors[s], rightColor = colors[s + 1];
if (t <= leftStop) {
return leftColor;
} else if (t < rightStop) {
final sectionT = (t - leftStop) / (rightStop - leftStop);
return Color.lerp(leftColor, rightColor, sectionT);
}
}
return colors.last;
}

关于flutter - 在 LinearGradient 中的位置获取颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52102554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com