У меня есть массив координат, составляющий один двумерный многоугольник. Координаты упорядочены и определяют способ рисования многоугольника.Лучший способ «сопоставить» массив вершин многоугольников другому?
У меня есть аналогичный массив координат для другого двумерного многоугольника, который имеет больше вершин, чем первый.
Предположим, что оба полигона расположены друг над другом в двухмерном пространстве.
Как я могу найти, какие вершины из более мелкой формы «совпадают» с большей формой, сохраняя порядок согласования полигонов? Сопоставление основывается на том, насколько близко вершина от одного полигона к другому.
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-2-3-6 больше всего похож на 0-1-2-3 вашей первой формы). Возможно, это поможет, если вы укажете, для чего будут использоваться результаты сопоставления. – Stochastically
Матчи используются для определения того, как один многоугольник будет переходить от одного к другому, и какие вершины будут перемещены, чтобы сформировать новую фигуру. Матч должен определяться расстоянием. К сожалению, вы не можете просто сопоставить их с ближайшими расстояниями, иначе это может нарушить порядок. – Vadoff
Я не уверен, что это помогает, но ваша проблема кажется похожей на распознавание жеста/рукописного ввода http://www.gamedev.net/page/resources/_/technical/game-programming/recognition-of-handwritten-gestures- r2039. Тем не менее, сопоставление каждой точки первого многоугольника с ближайшим во втором только оставляет точку 2 неоднозначной. –