Лучший способ сопоставить массив вершин многоугольника с другим?

У меня есть массив координат, составляющий один 2D-многоугольник. Координаты указаны в порядке и определяют способ рисования многоугольника.

У меня есть аналогичный массив координат для другого 2D-многоугольника, у которого больше вершин, чем у первого.

Предположим, что оба полигона центрированы друг над другом в 2D-пространстве.

Как я могу найти, какие вершины меньшей формы «совпадают» с большей формой, сохраняя при этом порядок полигонов согласованным? Соответствие основывается на том, насколько близко вершина находится от одного многоугольника к другому.

0____________1
|------------|
|------------|
|------------|
3____________2

------0---------
-----/-\--------
---1/---\____6--
---|----7----|--
---|------4__|--
---|-------\-5--
---2________3---

EX solution:
0 : Null
1 : 0
2 : 3
3 : 2
4 : Null
5 : Null
6 : 1
7 : Null

Я борюсь с этой проблемой уже больше недели, и мне нужна помощь. Спасибо.


person Vadoff    schedule 26.05.2013    source источник
comment
Мне кажется, что это не очень четко определенная проблема, потому что совпадение может означать разные вещи в разных ситуациях (хотя в приведенном вами примере ясно, что 1-2-3-6 больше всего похожи на 0-1. -2-3 вашей первой формы). Возможно, поможет, если вы укажете, для чего будут использованы результаты матча.   -  person Stochastically    schedule 26.05.2013
comment
Совпадения используются для определения того, как один многоугольник трансформируется из одного в другой, и какие вершины будут перемещены, чтобы сформировать новую форму. Матч должен определяться расстоянием. К сожалению, вы не можете просто сопоставить их с ближайшими расстояниями, иначе это может нарушить порядок.   -  person Vadoff    schedule 26.05.2013
comment
Не уверен, поможет ли это, но ваша проблема похожа на распознавание жестов / рукописного ввода gamedev.net/page/resources / _ / Technical / game-programming /. Тем не менее, сопоставление каждой точки первого многоугольника с ближайшей точкой второго оставляет только точку 2 неоднозначной.   -  person Ulrich Eckhardt    schedule 26.05.2013


Ответы (1)


Проблема может быть выражена как попытка найти соответствие с минимальной стоимостью и максимумом между вершинами в первом многоугольнике и вершинами во втором многоугольнике с дополнительным требованием отсутствия пересекающихся ребер.

Этот документ должен быть полезным: http://home.deib.polimi.it/malucell/papers/NCM.pdf

person Imre Kerr    schedule 26.05.2013