Как рисовать различные оттенки в диапазоне с насыщенностью

#flutter #hsv

Вопрос:

Я хотел бы знать, есть ли способ нарисовать диапазон оттенков, в данном случае от значения 60 (желтый) до 28 (персиковый/оранжевый), по оси y, а затем нарисовать их насыщенность от 30% до 0% (по сути, белый) по оси X.

Ниже приведен код переопределения метода paint абстрактного класса CustomPainter в Flutter. Также прилагается скриншот текущего результата. У меня возникли проблемы с внедрением правильного метода, при котором окно визуализации будет окрашено в белый цвет в левой половине (или в количестве, которое потребуется при масштабировании 30% насыщенности по ширине) окна визуализации сверху вниз.

Я перепробовал все доступные режимы смешивания, к сожалению, безрезультатно.

  void paint(ui.Canvas canvas, ui.Size size) {
final whiteShader = const LinearGradient(
  begin: Alignment.topLeft,
  end: Alignment.bottomLeft,
  colors: [Colors.white, Colors.white],
).createShader(Offset.zero amp; size);

final whitePaint = Paint()..shader = whiteShader;

canvas.drawRect(Offset.zero amp; size, whitePaint);
final yellowHue = HSVColor.fromAHSV(1.0, hues[0], 0.3, 1.0);
final orangeHueColor = HSVColor.fromAHSV(1.0, hues[1], 0.3, 1.0);
final hueShader = LinearGradient(colors: [
  yellowHue.toColor(),
  orangeHueColor.toColor(),
], begin: Alignment.topRight, end: Alignment.bottomRight)
    .createShader(Offset.zero amp; size);

final huePaint = Paint()
  ..shader = hueShader
  ..blendMode = BlendMode.modulate;

canvas.drawRect(Offset.zero amp; size, huePaint);}
 

введите описание изображения здесь