Non è che ciò non abbia senso, ma risolve semplicemente il 99% delle volte.
Spesso nei rettangoli grafici 2D vengono inizializzati, archiviati 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 xe due valori y, in questo modo:
class Rect
xleft, xright: int
ytop, ybottom: int
Con due punti, se in qualche punto del codice sorgente vuoi usare il valore y della cima, 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 (non è necessario pensare!) L'uso di due punti significa che nel trattare con la verticale, devi ingarbugliare 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 nude xey?
NOTA AGGIUNTA: questa domanda è nel contesto dei rettangoli allineati XY, come nei gestori di finestre e nei toolkit della GUI, non nel contesto di forme arbitrarie nell'app di disegno e pittura.