Sto lavorando su un semplice costruttore di modelli 3D nel browser che utilizza THREE.js. L'utente sceglie un corpo dell'aereo e aggiunge le ali, la cabina di guida, la coda ecc. A sua scelta, scegliendo tra più opzioni. Devo essere in grado di definire le relazioni tra molti corpi e molti componenti aggiuntivi, e ovviamente non voglio dover manualmente definire la posizione / rotazione di ciascuna combinazione di parti. Pertanto, voglio essere in grado di definire una serie di "punti di snap" sul corpo, i luoghi in cui alcuni componenti possono essere inseriti e di definire un insieme di punti corrispondenti sulle parti aggiuntive, sostanzialmente corrispondenti ai due nel software per posiziona correttamente i componenti aggiuntivi.
Ho pensato di definire un triangolo di 3 punti, in quanto ciò avrebbe bloccato tutti e 3 i gradi di libertà. Se rendo l'ordine importante, impedirò addirittura che l'oggetto "giri" sul piano definito dai tre punti. Ecco un'illustrazione:
Sto pensando di creare un "manichino" per i progettisti 3D da utilizzare per ottenere le coordinate dei punti, ma una volta che ho visto questo errore è quando i due triangoli non corrispondono esattamente l'uno all'altro. Dovrei semplicemente impostare in pietra che i punti debbano formare un triangolo equilatero di lunghezza laterale 10 unità, ad esempio, o c'è un altro modo in cui potrei fare la matematica da triangoli che non corrispondono completamente?
Forse c'è un altro modo più standard per fare ciò che voglio?
Grazie