Вычисление наиболее подходящего многоугольника из формы с заданным количеством целевых сторон (или ребер)

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

polygon computePolygon(Shape shape, int numberOfSides)
 {
  ...
  return polygon; // return polygon with numberOfSides sides
 }

Например, предположим, что я хочу получить четырехугольник из фигуры, нарисованной пользователем (скажем, GeneralPath), тогда я ввожу вычислениеPolygon(generalPath, 4).

Как бы я поступил по этому поводу?


person Tamori    schedule 10.12.2010    source источник


Ответы (1)


Эта статья может помочь вам.

Ссылка: Гибридный генетический алгоритм для двух типов задач полигональной аппроксимации, Бинь Ван и Чаоцзянь Ши.

person John    schedule 10.12.2010
comment
Спасибо за это. Я вижу, что эта проблема называется проблемой min-ε или проблемой минимального искажения в полигональном приближении. Однако предложенные в научной литературе алгоритмы кажутся довольно сложными. Я ищу что-то легкое в реализации, если это возможно. Он не должен быть оптимальным. - person Tamori; 13.12.2010