Ho cercato di progettare una libreria per fare alcuni semplici calcoli geometrici in uno spazio euclideo, indipendentemente dalla sua dimensione. Sebbene sia facile rappresentare punti, vettori, ipersfere e iperpiani in modo generico, non riesco ancora a trovare un modo generico per rappresentare una linea (infinita), anche se le linee condividono le proprietà tra le dimensioni.
La mia ipotesi migliore è che potrei memorizzare alcuni dei parametri della sua equazione parametrica poiché è facile estendere un'equazione parametrica a una linea in uno spazio di qualsiasi dimensione:
x = x0 + at
y = y0 + bt
z = z0 + ct
// can be extended to any dimension
Ma anche con questa equazione, non riesco a trovare ciò che dovrebbe essere memorizzato e ciò che non dovrebbe essere al fine di confrontare le linee. Con una soluzione ideale, due oggetti di tipo Line
:
- sarebbe programmaticamente uguale (con
operator==
), - avrebbe le stesse rappresentazioni in memoria.
Cosa devo conservare per raggiungere questo obiettivo?