Non è che questo non abbia senso, ma funziona solo per il 99% delle volte.
Spesso i rettangoli grafici 2D sono inizializzati, memorizzati e manipolati come una coppia di punti. In nessuna lingua particolare,
class Rect:
p1, p2: point
Ha più senso definire un rettangolo come due valori x e due valori y, come questo:
class Rect
xleft, xright: int
ytop, ybottom: int
Con due punti, se in qualche punto del codice sorgente vuoi usare il valore y del top, dovresti dire rect.p1.y (hmmm, fermati e pensa, è p1 o p2) ma con i quattro valori come semplici membri di dati, è chiaro e diretto: rect.ytop (nessun pensiero richiesto!) L'uso di due punti significa che nel trattare con la verticale, devi aggrovigliare l'orizzontale; c'è una relazione estranea tra elementi indipendenti.
Come è nata questa idea in due punti e perché persiste? Ha qualche vantaggio rispetto alle coordinate xey y?
NOTA AGGIUNTIVA: questa domanda è nel contesto dei rettangoli allineati X-Y, come nei gestori di finestre e nei toolkit della GUI, non nel contesto di forme arbitrarie nell'app di disegno e pittura.