Закругленный угловой радиус для проблемы с кольцевой диаграммой с штриховой краской в ​​дротике

Я пробовал следующий метод расчета пути для рендеринга кольцевых диаграмм с закругленными углами, но он некорректно работает с рисованием штрихов.

      Path _getRoundedCornerArcPath(
num innerRadius,
num outerRadius,
Offset? center,
num startAngle,
num endAngle,
num? degree,
CornerStyle cornerStyle,
ChartPoint<dynamic> point) {
final Path path = Path();

Offset _midPoint;
num midStartAngle, midEndAngle;
if (cornerStyle == CornerStyle.startCurve ||
  cornerStyle == CornerStyle.bothCurve) {

  // Adding the rounded curve path by drawing circle
 _midPoint =
    _degreeToPoint(startAngle, (innerRadius + outerRadius) / 2, center!);
 midStartAngle = _degreesToRadians(180);
 midEndAngle = midStartAngle + _degreesToRadians(180);
 path.addArc(
    Rect.fromCircle(
        center: _midPoint, radius: (innerRadius - outerRadius).abs() / 2),
    midStartAngle.toDouble(),
    midEndAngle.toDouble());
}

// Adding the outer circle radius path
path.addArc(
  Rect.fromCircle(center: center!, radius: outerRadius.toDouble()),
  _degreesToRadians(startAngle).toDouble(),
  _degreesToRadians(endAngle - startAngle).toDouble());

 // Adding the inner circular radius path   
path.arcTo(
  Rect.fromCircle(center: center, radius: innerRadius.toDouble()),
  _degreesToRadians(endAngle.toDouble()).toDouble(),
  (_degreesToRadians(startAngle.toDouble()) -
          _degreesToRadians(endAngle.toDouble()))
      .toDouble(),
  false);

 return path;
}

Проблема с штриховой краской

Правильно работает с fillpaint

Может ли кто-нибудь подсказать, как правильно добиться этих закругленных углов с помощью штриховой краски?

1 ответ

измените значение strokeCap ​​для Paint.

Пример: финальная краскаArch = Paint();paintArch.strokeCap ​​= StrokeCap.round;

Другие вопросы по тегам