Метод intersect
Метод intersect класса Rect
возвращает прямоугольник, который лежит внутри обоих.
Если общей части нет, результат пустой.
Синтаксис
Rect.intersect(a, b)
Параметры
| Параметр | Описание |
|---|---|
a |
Первый прямоугольник. |
b |
Второй прямоугольник. |
Пример
Давайте найдём пересечение двух квадратов 100, сдвинутых на 40:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Builder(
builder: (context)
{
Rect rect = Rect.intersect(Rect.fromLTWH(0, 0, 100, 100), Rect.fromLTWH(40, 40, 100, 100));
return Text(rect.left.toStringAsFixed(0) + ' ' + rect.top.toStringAsFixed(0) + ' ' + rect.width.toStringAsFixed(0) + ' ' + rect.height.toStringAsFixed(0));
},
),
),
),
),
);
}
На экране 40 40 60 60. Общая часть начинается там, где начинается второй квадрат.
Пример
Давайте пересечём квадрат сам с собой:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Builder(
builder: (context)
{
Rect rect = Rect.intersect(Rect.fromLTWH(5, 5, 30, 20), Rect.fromLTWH(5, 5, 30, 20));
return Text(rect.left.toStringAsFixed(0) + ' ' + rect.top.toStringAsFixed(0) + ' ' + rect.width.toStringAsFixed(0) + ' ' + rect.height.toStringAsFixed(0));
},
),
),
),
),
);
}
На экране 5 5 30 20. Общая часть совпала с исходным прямоугольником.
Смотрите также
-
метод
fromLTWH,
который собирает прямоугольник из левого края, верхнего края, ширины и высоты -
метод
fromLTRB,
который собирает прямоугольник из четырёх краёв -
метод
fromCenter,
который собирает прямоугольник заданного размера вокруг точки -
класс
RRect,
который хранит прямоугольник со скруглёнными углами