Метод cubicTo
Метод cubicTo класса Path использует две control points перед конечной точкой.
Две управляющие точки тянут кривую, третья пара чисел это конец.
Конец становится новой текущей точкой.
Синтаксис
Path.cubicTo()
Пример
Давайте построим контур через cubicTo:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: CustomPaint(
size: const Size(220, 100),
painter: _PathCubictoPainter(),
),
),
),
),
);
}
class _PathCubictoPainter extends CustomPainter
{
@override
void paint(Canvas canvas, Size size)
{
final path = Path();
path.moveTo(20, 60);
path.cubicTo(60, 10, 140, 110, 200, 60);
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: _PathCubictoPainter2(),
),
),
),
),
);
}
class _PathCubictoPainter2 extends CustomPainter
{
@override
void paint(Canvas canvas, Size size)
{
final path = Path();
path.moveTo(20, 60);
path.cubicTo(60, 10, 140, 110, 200, 60);
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,
есть линия или нет