Quando voglio implementare rettangoli 2d allineati agli assi, passo sempre con {x, y, w, h}
, perché questo è l'approccio naturale ad esso. Con i rettangoli allineati sugli assi 3D hai bisogno di {x, y, z, w, h, d(depth)}
. Per un triangolo 2d ho bisogno di {x1, y1, x2, y2, x3, y3}
. Ma cosa mi serve per triangoli rettangoli allineati sull'asse. Come li conserveresti?
Posso immaginare di andare con gli stessi dati di un rettangolo e poi un numero da 0 a 3 che indica quale punto è opposto all'ipotenusa. Posso anche immaginare di andare con {x, y, w, h}
, dove w
e h
possono essere negativi (opposti ai normali rects).
Qual è l'approccio comune all'implementazione dei triangoli rettangoli?
EDIT:
Bene, alla fine ho deciso di andare con {x, y, w, h, r}
, dove w, h > = 0 e r sono i radianti.
Quindi in un primo momento posso concentrare r = {0, pi/2, pi, 3pi/2}
e se voglio diventare pazzo in seguito, posso farlo senza rompere la mia interfaccia.