2013-05-26 2 views
3

У меня есть массив координат, составляющий один двумерный многоугольник. Координаты упорядочены и определяют способ рисования многоугольника.Лучший способ «сопоставить» массив вершин многоугольников другому?

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

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

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

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 

Я уже более недели борюсь с этой проблемой и могу использовать некоторую помощь. Благодарю.

+1

Для меня, это, кажется, не очень хорошо определена проблема, потому что «совпасть» может означать разные вещи в разных ситуациях (хотя это ясно в примере вы дал, что 1-2-3-6 больше всего похож на 0-1-2-3 вашей первой формы). Возможно, это поможет, если вы укажете, для чего будут использоваться результаты сопоставления. – Stochastically

+0

Матчи используются для определения того, как один многоугольник будет переходить от одного к другому, и какие вершины будут перемещены, чтобы сформировать новую фигуру. Матч должен определяться расстоянием. К сожалению, вы не можете просто сопоставить их с ближайшими расстояниями, иначе это может нарушить порядок. – Vadoff

+0

Я не уверен, что это помогает, но ваша проблема кажется похожей на распознавание жеста/рукописного ввода http://www.gamedev.net/page/resources/_/technical/game-programming/recognition-of-handwritten-gestures- r2039. Тем не менее, сопоставление каждой точки первого многоугольника с ближайшим во втором только оставляет точку 2 неоднозначной. –

ответ

1

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

Эта статья должна быть полезной: http://home.deib.polimi.it/malucell/papers/NCM.pdf

Смежные вопросы