Как создать случайный выпуклый многоугольник?

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

  • координаты должны быть целыми числами;
  • многоугольник должен лежать внутри квадрата с углами (0, 0) и (C, C), где задано C;
  • многоугольник должен иметь количество вершин, близкое к заданному числу N.

Например, , генерировать случайные многоугольники, имеющие 10 вершин и лежащие внутри квадрата [0..100] x [0..100].

Сложность этой задачи заключается в том, что координаты должны быть целыми числами.

Подход Я попытался создать случайный набор точек в данном квадрате и вычислить выпуклую оболочку этих точек. Но полученная выпуклая оболочка имеет очень мало вершин по сравнению с N.

Есть идеи?

12
задан l0b0 18 January 2012 в 11:52
поделиться