Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
300 of 1024 menu
◀ ▶

Метод drawArc

Метод drawArc класса Canvas рисует дугу по эллипсу. Дуга лежит на эллипсе внутри Rect. Углы задают в радианах: откуда начать и какой длины дуга.

Синтаксис

canvas.drawArc(rect, startAngle, sweepAngle, useCenter, paint)

Параметры

Параметр Описание
rect Прямоугольник Rect.
startAngle Угол, с которого начинается дуга, в радианах.
sweepAngle Длина дуги в радианах. Положительное число идёт по часовой стрелке.
useCenter Истина соединяет дугу с центром, получается сектор.
paint Кисть Paint. Из неё берутся цвет, толщина и то, заливка это или контур.

Пример

Давайте вызовем drawArc на CustomPaint:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(220, 100), painter: _DrawArcPainter(), ), ), ), ), ); } class _DrawArcPainter extends CustomPainter { @override void paint(Canvas canvas, Size size) { final paint = Paint()..color = Colors.blue..style = PaintingStyle.stroke..strokeWidth = 6; canvas.drawArc(Rect.fromLTWH(20, 10, size.width - 40, size.height - 20), 0.2, 2.6, false, paint); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

На экране виден результат рисования на холсте.

Пример

Давайте повторим рисунок в области побольше:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(280, 120), painter: _DrawArcPainter2(), ), ), ), ), ); } class _DrawArcPainter2 extends CustomPainter { @override void paint(Canvas canvas, Size size) { final paint = Paint()..color = Colors.blue..style = PaintingStyle.stroke..strokeWidth = 6; canvas.drawArc(Rect.fromLTWH(20, 10, size.width - 40, size.height - 20), 0.2, 2.6, false, paint); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

На экране та же фигура в более широком CustomPaint.

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить