Ce face Point
Point<T extends num> din dart:math reprezintă un punct 2D cu coordonatele x și y, ambele final (nu se pot schimba după creare). Tipul se deduce: Point(3, 4) este Point<int>, Point(1.5, 2) este Point<num>.
Punctele se pot aduna (+) și scădea (-) ca vectori, se pot înmulți cu un număr (*), iar == compară coordonatele, nu obiectele. toString() afișează Point(x, y).
Pentru distanțe vezi distanceTo și magnitude. În cod nou poți folosi și un record (x: 1, y: 2), dar Point are deja operațiile gata scrise.
Parametri
| Parametru | Descriere |
|---|---|
x, y |
Coordonatele punctului. |
Exemple
Exemplul 1: Creare, citire și operații
import 'dart:math';
void main() {
const a = Point(3, 4);
const b = Point(1, 2);
print(a);
print('x = ${a.x}, y = ${a.y}');
print(a + b);
print(a - b);
print(a * 2);
print(a == const Point(3, 4));
}
Rezultat
Point(3, 4)
x = 3, y = 4
Point(4, 6)
Point(2, 2)
Point(6, 8)
true
Exemplul 2: Mutarea unui personaj pe o hartă
Fiecare pas adună un vector de deplasare la poziția curentă. Punctul nu se modifică: se creează unul nou.
import 'dart:math';
void main() {
var pozitie = const Point(0, 0);
final pasi = {'sus': const Point(0, 1), 'dreapta': const Point(1, 0)};
for (final directie in ['sus', 'sus', 'dreapta', 'sus']) {
pozitie += pasi[directie]!;
print('$directie -> (${pozitie.x}, ${pozitie.y})');
}
}
Rezultat
sus -> (0, 1)
sus -> (0, 2)
dreapta -> (1, 2)
sus -> (1, 3)
Greșeli frecvente
- Încerci
p.x = 5. Coordonatele suntfinal; creează un punct nou:p = Point(5, p.y). - Amesteci
intșidoubleîntre puncte:Point(1, 2) + Point(0.5, 0.5)nu compilează, pentru că tipurilePoint<int>șiPoint<double>diferă.
Comenzi înrudite
Point.distanceTo: distanceTo dă distanța în linie dreaptă până la alt punct; magnitude este distanța de la origine (0, 0).Rectangle: Un dreptunghi cu laturile paralele cu axele, dat prin colțul stânga-sus, lățime (width) și înălțime (height).atan2: Returnează unghiul (în radiani, între -π și π) al punctului (x, y) față de axa orizontală.