starałem się wypracować jak rozwiązać następujący problem przy użyciu Pythona:implementacja Pythona 3D sztywnego tłumaczenia ciała i rotacji
- Mamy punkty A, B, C, D, które tworzą sztywny korpus
- Jakiś nieznany 3D tłumaczenie i obrót nakłada się na ciało sztywne
- teraz wiemy współrzędne a, b, c
- Chcemy obliczyć współrzędne d
co wiem do tej pory:
- Próbuje to zrobić z „prostych” obliczeniach kątów Eulera wydaje się to zły pomysł ze względu na blokady przegubu itp
Krok 4 będzie zatem obejmować macierz transformacji, a gdy wiesz, rotacji i translacji macierzy wygląda ten etap jest łatwe przy użyciu jednego z nich:
Co nie mogę pracować na to, jak mogę obliczyć rotacji i translacji macierzy podanych „nowych” współrzędnych a, b, c.
Widzę, że w ogólnym przypadku (ciało niesztywne) część obrotowa tego jest Wahba's problem, ale myślę, że dla ciał sztywnych powinien istnieć jakiś szybszy sposób obliczenia go bezpośrednio przez opracowanie zbioru ortogonalnego wektory jednostek używające punktów.
Można obliczyć macierz "nieznane tłumaczenie i obrót 3D" za pomocą opcji "affine_matrix_from_points" (abc, abc_new, shear = False, scale = False) 'from http://www.lfd.uci.edu/~gohlke/code/transformations .py.html # line-882 i zastosować go do 'd' – cgohlke
Dzięki - faktycznie wygląda na to, że' superimposition_matrix' w rzeczywistości zrobi to dla mojego przypadku, tak myślę? Jeśli zrobisz komentarz powyżej odpowiedzi, zaakceptuję to! – lost