2010-11-04 21 views
11

Jeśli mam arbitralny zestaw punktów, a następnie ten sam zbiór punktów obrócony w pewnym stopniu, czy ktoś wie o jakichkolwiek algorytmach do obliczenia/oszacowania, gdzie środek obrotu jest ? Lub obszar badań, gdzie potrzebne są tego rodzaju algorytmy? Mam problem ze znalezieniem istotnych informacji.Znajdowanie środka obrotu dla zestawu punktów

Dzięki

+0

Ziemia _rotates_ na swojej osi. Rozdziela się wokół Słońca. Do czego się odnosisz? –

+0

Czy znana jest zgodność między punktami? – nav

+0

To pytanie wydaje się być nie na temat, ponieważ dotyczy matematyki, a nie programowania. – bmargulies

Odpowiedz

9

Powiedzmy, że masz jeden punkt (x, y), który przeniósł się do (x 'y').

Następnie środek obrotu musi leżeć na linii, która jest prostopadła do (x, y) - (x ', y'), i która przecina środek (x, y) - (x ', y') .

Teraz weź kolejny punkt, (x2, y2), który przesunął się do (x'2, y'2). To również prowadzi do linii, na której musi znajdować się środek obrotu.

Teraz wykonaj te dwie linie i oblicz skrzyżowanie. Tam masz środek obrotu.


Aktualizacja: Jeśli nie masz korespondencji z której punktu doszło, nie powinno być zbyt trudne do wymyślenia. Oto sugestia z mojej głowy: Znajdź środek masy "przed" punktów. Zamów punkty zgodnie z ich odległością od tego punktu. Teraz zrób to samo z punktami "po". Kolejność dwóch zestawów powinna się teraz zgadzać. (Chodzi najbliżej środka masy przed obrotu, powinien być punktem najbliżej środka masy po rotacji.)

+0

ten algorytm jest dobry, gdy zna związek między punktami. w dwóch różnych pozycjach. –

+0

To dobry proces, jeśli rozumiesz korelację między punktami, tj. Jeśli są one oznaczone, ale jeśli są arbitralne wcześniej i później, pytanie staje się znacznie trudniejsze (z powodu problemu tożsamości, jak rozpoznać, że punkt jest taki sam przed i po obrocie?). –

+0

Kto powiedział, że nie ma? I nawet jeśli nie ma tego związku, musi to zrozumieć zanim rozwiąże cały problem, i od tego, co on * zrozumiał *, ten algorytm mu pomoże. – aioobe

1

Bardzo ciekawy problem. Moja wiedza na ten temat jest nieco nieaktualna, ale jak pamiętam, jest kilka badań dotyczących wykorzystania analizy podpigrafów; to jest, charakteryzowanie podsekcji zestawu punktów odległościami między punktami i zawartymi w nich wariancjami, a następnie korelowanie tych analiz podgraphów między obrotami przed i po.

Jest to oczywiście przyjęcie bardzo złożonego zestawu punktów o nierównomiernym rozkładzie.

3

Byłby szalony przesadą dla tego typu problemu, ale myślę, że funkcjonalność generalized Hough transform wykrywania obiektów obejmuje co najmniej to, co chcesz, nawet jeśli nie jest to przeznaczone do tego celu.

Przyjmując dowolny kształt utworzony z zestawu punktów i inny dowolny zestaw punktów, próbuje znaleźć kształt w zbiorze punktów, mimo że został obrócony, skalowany i przetłumaczony. Możesz być w stanie usunąć skalowanie i tłumaczenie i uzyskać to, co chcesz.

Zasadniczo chodziło o brutalne wymuszenie możliwych punktów obrotu, aby sprawdzić, który z nich najlepiej pasuje do drugiego zestawu punktów.

0

Musisz znaleźć sygnaturę na swoim zbiorze danych, która pozwala zidentyfikować punkty z pierwszego zestawu (A) z tymi z drugiego zestawu (B).

łatwy sposób jest następujący:

  • dla każdego elementu E w online dwóch najbliższych punktów (N1, N2) i obliczyć kąt między N1, E, N2 wynikającej z trzech wartości: kąt i odległości od E do N1 i N2 (ang, d1, d2).

  • Znajdź 3 punkty w A z unikalnymi krotkami (ang, d1, d2).

  • Dla każdego elementu w B oblicz także odległość do dwóch najbliższych sąsiadów i kąt. Znajdź 3 punkty odpowiadające wybranym z A.

  • Obliczanie obrotu jest tylko kwestią analizy geometrycznej.

aktualizacja musisz 3 punkty, aby określić obrót w przestrzeni 3D. W 2D dwie zrobią.

Aktualizacja 2: jak inni pisali na innych stanowiskach, nie może być symetrie w A że zatrzyma cię do znalezienia 3 unikalne dla trojaczków (ang, d1, d2). W takim przypadku, dla każdego z wybranych trzech punktów w A, będziesz musiał przeszukać wszystkie elementy w B odpowiadające ich trojaczkom, aż do momentu, gdy jakaś kombinacja spowoduje obrót, który działa dla wszystkich elementów w A.