在 Flutter 自定义绘画中,如何部分填充自定义形状的主体

In Flutter custom paint, how to fill a custom shape's body partially

我有一个进度指示器,如下所示。我想用绿色填充它(根据给定的任务进度),如下图所示。我怎样才能有效地做到这一点?

我的做法:

  1. 我计算了曲线和曲线的方程;
  2. 从左到右,对于上下曲线的每个点,我正在从上曲线到下曲线画一条线。

有效。但是有个问题。

问题: 绿色进度表示形状的边缘不平滑。

我的决定:

  1. 现在,我再次从左到右为底部曲线的每个点绘制了长度为 200 像素的垂直线。
  2. 并用形状的原始方程剪掉多余的部分。
  3. 但这一次,一旦进度条逐渐填满,帧速率就会显着下降

那么正确的做法是什么

  1. 绘制绿色矩形
  2. 使用 ClipPath 来裁剪(像上面那样将绿色矩形转换为曲线)带有自定义路径的绿色矩形