Ho un problema non comune. Ci sono 2 oggetti 3D, che sono rappresentati da matrici di vertici e triangoli (file .stl). Ciascuno di essi contiene una quantità sufficiente di vertici: 1-10 mln. Le superfici di questi modelli sono ruvide e possono contenere diversi spuntoni o cavità.
L'obiettivo è determinare il percorso di uno di questi oggetti, quando si muove con il contatto sulla superficie dell'altro. Inoltre, l'algoritmo dovrebbe considerare quanti gradi di libertà sono disponibili. In ogni caso ci sono solo 2 oggetti e uno di essi è fisso.
Esempio, l'oggetto M1
si sposta su una superficie dell'oggetto M2
, che è fisso. È necessario spostare M1 dal punto A
a B
. Per M1 è disponibile anche un altro grado di libertà: lungo l'asse (chiamiamolo AC
) perpendicolare a AB
. Quindi, il percorso può essere solo la curva nel piano (AC, AB)
. Ma a causa di questo percorso, durante il movimento M1
dovrebbe sempre avere almeno un punto di contatto.
Ho provato a eseguirlo con l'algoritmo di rilevamento delle collisioni, ma sembra che si tratti di calcoli molto complicati per i computer ordinari. Qualcuno può consigliare alcuni algoritmi, librerie o concetti su come realizzare questa idea? Post scriptum Io uso C, C ++ e Java.