как выровнять две сетки

У меня для вас очень хороший и сложный вопрос. Мне нужно выровнять две сетки с помощью очень быстрого алгоритма. Даны mesh1 и mesh2, я хочу найти, как мне нужно трасформировать и повернуть mesh1, чтобы она оказалась в том же положении, что и mesh2. Сначала я делал это, используя моменты инерции двух сеток, но алгоритм не работает, если вторая сетка похожа на первую, но с некоторыми недостающими частями. Другими словами, возьмите две одинаковые сетки и от одной из них отрежьте одинаковые части.

Я хотел бы написать код на C, потому что мне нужно выполнить это на многоплатформенных машинах (linux/win) и сделать это очень быстро: это должно быть помещено в алгоритм GA.

Две сетки находятся в формате STL (стереолитография) (двоичном или ascii), но, возможно, может быть полезно использовать другой формат файла.

Есть ли у вас идеи, как это сделать?

обновление вопроса:

прежде всего, я хочу поблагодарить вас, ребята, за все ваши предложения. Я скачал и установил PCL на свою машину и успешно скомпилировал алгоритм ICP (учебник), взятый с сайта PCL. Но теперь у меня есть несколько вопросов по этому поводу, возможно, потому что для меня это совершенно новая вещь. что означает выход матрицы 4x4 для фитнеса? Я должен ожидать вращательную матрицу и трасляционный вектор...

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

5
задан Nicholas 9 February 2012 в 10:06
поделиться