Ce face Rectangle
Rectangle(left, top, width, height) descrie un dreptunghi aliniat cu axele: colțul din stânga-sus este (left, top), iar width și height sunt lățimea și înălțimea. Coordonatele cresc spre dreapta și în jos, ca pe un ecran.
Are getter-ii left, top, right (left + width), bottom (top + height) și colțurile topLeft, bottomRight etc. ca Point. Rectangle.fromPoints(a, b) creează dreptunghiul dintre două colțuri opuse, în orice ordine.
Obiectul nu se poate modifica. Pentru un dreptunghi care se schimbă există MutableRectangle. Lățimea și înălțimea negative sunt transformate în 0.
Parametri
| Parametru | Descriere |
|---|---|
left, top |
Coordonatele colțului din stânga-sus. |
width, height |
Lățimea și înălțimea (nenegative). |
Exemple
Exemplul 1: Proprietățile unui dreptunghi
import 'dart:math';
void main() {
const r = Rectangle(10, 20, 100, 50);
print(r);
print('width=${r.width}, height=${r.height}');
print('right=${r.right}, bottom=${r.bottom}');
print('Arie: ${r.width * r.height}');
print(r.bottomRight);
}
Rezultat
Rectangle (10, 20) 100 x 50
width=100, height=50
right=110, bottom=70
Arie: 5000
Point(110, 70)
Exemplul 2: Dreptunghi din două colțuri
fromPoints ordonează singur colțurile.
import 'dart:math';
void main() {
final teren = Rectangle.fromPoints(const Point(40, 30), const Point(10, 5));
print(teren);
print('Gardul are ${2 * (teren.width + teren.height)} m.');
}
Rezultat
Rectangle (10, 5) 30 x 25
Gardul are 110 m.
Greșeli frecvente
- Crezi că al treilea și al patrulea argument sunt colțul din dreapta-jos. Sunt
widthșiheight; pentru colțuri foloseșteRectangle.fromPoints. - Încerci
r.width = 10.Rectangleeste imutabil; foloseșteMutableRectanglesau creează unul nou.
Comenzi înrudite
Rectangle.containsPoint: Verifică dacă un punct se află în interiorul dreptunghiului sau pe marginea lui.Rectangle.intersects: intersects spune dacă două dreptunghiuri se suprapun; intersection returnează zona comună sau null.Point: Un punct în plan, cu coordonatele x și y; suportă adunare, scădere și comparare cu ==.