Конкретный пример: возьмите карту европейских стран и список указателей на «Пути, которые представляют страны в Европейском союзе», и выведите один «Путь, представляющий Европейский союз».
напримересли у меня есть три входных пути: красный, зеленый и синий.
- Красный состоит только из отрезков прямых линий
- Зеленый состоит из отрезков и линий Безье
- Синий состоит только из Безье
... тогда мне нужно создать выходную полилинию с Безье, которая является объединением трех объектов.
ДОПОЛНИТЕЛЬНО, мне нужночтобы справиться с некоторой погрешностью во входных данных - см. изображение ниже, есть некоторые очень маленькие «промежутки» между входными формами.На изображении нижняя цифра (красная) - это желаемый результат.
![enter image description here](https://i.stack.imgur.com/84X67.png)
Это может легко пойти не так, и я потратим недели на то, чтобы я не сработал.Я пытаюсь найти относительно простой подход, который может быть «достаточно хорошим», но в настоящее время я застрял на:
- Как вы вообще начинаете объединяться с Безье?
- Какой умный способ справиться с «пробелами» / допустимым пределом ошибок - я уверен, что есть что-то хитрое, если просто округлить мои координаты с плавающей точкой - но я не вижу этого: (
Наконец ... целевой платформой является iPhone - так что у меня есть доступ ко всем Apple Quartz / QuartzCore / CoreAnimation / и т. Д., Которые предоставляют некоторые служебные методы - но обратите внимание: даже официальный от AppleРеализация основ, таких как «Пересекает ли путь A путь B?», во многих случаях довольно сильно нарушена / неверна, поэтому она не очень надежна: (.