Метод quadraticBezierTo
Метод quadraticBezierTo класса Path тянет кривую к end через control point.
Одна управляющая точка задаёт изгиб, конец задаёт куда прийти.
Конец становится новой текущей точкой.
Синтаксис
Path.quadraticBezierTo()
Пример
Давайте построим контур через quadraticBezierTo:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: CustomPaint(
size: const Size(220, 100),
painter: _PathQuadraticbeziertoPainter(),
),
),
),
),
);
}
class _PathQuadraticbeziertoPainter extends CustomPainter
{
@override
void paint(Canvas canvas, Size size)
{
final path = Path();
path.moveTo(20, 70);
path.quadraticBezierTo(110, 10, 200, 70);
final paint = Paint()
..color = Colors.deepPurple
..strokeWidth = 3
..style = PaintingStyle.stroke;
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
}
На экране линия или контур, построенный через Path.
Пример
Давайте утолщим линию:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: CustomPaint(
size: const Size(220, 100),
painter: _PathQuadraticbeziertoPainter2(),
),
),
),
),
);
}
class _PathQuadraticbeziertoPainter2 extends CustomPainter
{
@override
void paint(Canvas canvas, Size size)
{
final path = Path();
path.moveTo(20, 70);
path.quadraticBezierTo(110, 10, 200, 70);
paint.strokeWidth = 6;
final paint = Paint()
..color = Colors.deepPurple
..strokeWidth = 3
..style = PaintingStyle.stroke;
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
}
На экране тот же контур с более толстой линией.
Смотрите также
-
класс
Paint,
кисть холста -
класс
Canvas,
холст внутриCustomPainter -
перечисление
BoxShape,
прямоугольник или круг -
перечисление
BorderStyle,
есть линия или нет