Il modo migliore per definire "punti di snap" tra due oggetti arbitrari in 3D?

1

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

    
posta Matt Jadczak 04.10.2013 - 00:59
fonte

1 risposta

1

Vado con il seguente.

Questo sistema si basa sui punti di snap (nel senso di punto = luogo , non un punto 3D) essendo un gruppo di 3 punti disposti in un triangolo equilatero. Per evitare confusione, questi triangoli verranno chiamati snap hooks . Un core può avere un numero arbitrario di snap hook, ciascuno con il proprio ID. Un modulo può avere solo un gancio a scatto, il punto con cui si collega al core.

I moschettoni sono specificati con i punti definiti in senso orario. Questo ordine è importante, in quanto definisce il normale allineamento dei moschettoni. Si suggerisce che i triangoli siano equilateri con una lunghezza laterale di 10 mm. Tuttavia, sono supportati tutti i triangoli, come definito nell'algoritmo.

(In questo modo, il nucleo rimane stazionario.Il modulo viene spostato in modo da corrispondere al punto di snap corrispondente sul core.)

  1. Vengono calcolati due piani,
risposta data 06.10.2013 - 21:57
fonte

Leggi altre domande sui tag