Как найти матрицу вращения и перемещения, соответствующую другому 3D-объекту - PullRequest
0 голосов
/ 29 апреля 2019

Я пробовал несколько способов повернуть мой объект со ссылкой на другой стандартный объект.Это кватернионы и некоторые умножения углов и т. Д. Но ни один из этих методов не дает хороших результатов.На самом деле, я пытаюсь найти две человеческие сетки, одна из которых привязана к началу координат, а другая повернута с некоторыми углами.Я хочу получить этот повернутый объект как стандартный объект.Может кто-нибудь дать мне несколько методов для решения этой проблемы.

Спасибо

1 Ответ

0 голосов
/ 29 апреля 2019

Если две человеческие сетки имеют одинаковое количество вершин и одинаковую связность (т. Е. Это одна и та же многоугольная сетка), то вы можете найти лучшее жесткое преобразование, решающее нелинейную задачу оптимизации наименьших квадратов.

Например, проверьте эту академическую справку: https://igl.ethz.ch/projects/ARAP/svd_rot.pdf

Или это руководство с кодом Python: http://nghiaho.com/?page_id=671

Если вы хотите найти наилучшее жесткое преобразование (то есть вращение + сдвиг), которое выравнивает два облака точек (разное количество точек, разную многоугольную сетку), тогда вам нужен алгоритм ICP.

...