Класс Rect
Класс Rect хранит прямоугольник в координатах холста.
Прямоугольник по левому верхнему углу, ширине и высоте собирает метод fromLTWH.
Его передают командам Canvas, например drawRect.
Синтаксис
Rect.fromLTWH(0, 0, 120, 48)
Методы
| Метод | Описание |
|---|---|
contains |
Проверяет, лежит ли точка внутри прямоугольника. |
deflate |
Сжимает прямоугольник на одно число со всех сторон. |
expandToInclude |
Расширяет прямоугольник так, чтобы он покрыл и второй. |
fromCenter |
Центрирует rect с заданными width и height.
|
fromCircle |
Собирает квадрат, описанный вокруг круга. |
fromLTRB |
Задаёт rect через left, top, right и bottom.
|
fromLTWH |
Задаёт rect через left, top, width и height.
|
inflate |
Расширяет прямоугольник на одно число со всех сторон. |
intersect |
Оставляет общую часть двух прямоугольников. |
lerp |
Смешивает края двух прямоугольников в заданной доле. |
overlaps |
Проверяет, есть ли у двух прямоугольников общая часть. |
shift |
Сдвигает прямоугольник на точку, не меняя ширину и высоту. |
translate |
Сдвигает прямоугольник на два числа и возвращает новый. Ширина и высота не меняются. |
Пример
Давайте нарисуем Rect на Canvas:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: CustomPaint(
size: const Size(220, 100),
painter: _RectDemo(),
),
),
),
),
);
}
class _RectDemo extends CustomPainter
{
@override
void paint(Canvas canvas, Size size)
{
final rect = Rect.fromLTWH(30, 20, 160, 60);
canvas.drawRect(rect, Paint()..color = Colors.brown);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
}
На экране коричневый прямоугольник.
Пример
Давайте проверим contains:
void main()
{
print(Rect.fromLTWH(0,0,100,50).contains(Offset(10,10)));
}
В консоли true.
Смотрите также
-
класс
Size,
ширина и высота -
класс
Offset,
точка или сдвиг -
класс
RRect,
прямоугольник со скруглением -
виджет
ColoredBox,
залить дочерний виджет цветом