Существует ли простой способ равномерно раскидать внутри выпуклого многоугольника заданное количество точек?
Есть алгоритм Ллойда (1. накидать точки рандомно, 2. построить диаграмму Вороного, 3. сместить каждую точку в центроид соответствующего ей кластера диаграммы, 4. повторять пункты 2 и 3, пока не устаканится), он даёт хороший результат, но строить диаграмму Вороного слишком сложно.

Ну можно то же самое, но точки двигать «физикой» (отталкивать друг от друга, интегрировать, повторять).
ncuxonaT
> но строить диаграмму Вороного слишком сложно
С чего вдруг? Для каждого языка есть библиотека с уже реализованной диаграммой Вороного, используя библиотечную функцию она строится парой строчек кода.
ncuxonaT
> но строить диаграмму Вороного слишком сложно.
Я делал именно так (у меня еще центроид с весами был). Фишка в том, что строить триангуляцию можно только один раз в начале, а потом просто флипать отдельные ребра. Еще если точек надо много, то можно сначала распределить 1/4, 1/16 или 1/64 всех точек, когда устаканится, разбить все треугольники пополам и снова устаканить, повторять до достижения целевого количества точек. Только надо иметь в виду, что в результате в середине получится ровная треугольная сетка, для расстановки деревьев, например, плохо годится.
вороной + пойсон диск
Вороной
Так не катит?
https://disk.yandex.ru/d/ye8XzR-GEw_ihQ
elcar
С чего вдруг? Для каждого языка есть библиотека с уже реализованной диаграммой Вороного,
Я видел и такое, что папа с мамой плакали навзрыд.
https://disk.yandex.ru/d/g255UbNt-W5f3A (пробелом)
На канале "Звезда" обратите внимание как задник сделан.
jaguard
> но точки двигать «физикой» (отталкивать друг от друга
Это не дешевле. Т.к. проход по всем отталкивающим вершинам снова N, Так и ближайшую за N получаем. А Вороного NLogN
ягуар давно уже не ягуар.
ncuxonaT
А сколько точек надо раскидать? 2-3 или 100500 ?
Если 100500 то можно посчитать площадь многоугольника и засеять регулярной сеткой из расчета что на 1 единицу площади многоугольника придется столько точек, что на весь многоугольник придется как раз необходимое количество.
slepov
Задачи сделать дешевле поставлено не было, вопрос был попроще. Это попроще.
Не оправдывайся :)
Почему бы не просто пойсон-диск с границами?
А я так надеялся, что придумали, как последовательность Холтона или R2 перенести на многоугольники. Придумали же, как считать гладкие положительные барицентрические координаты.
elcar
> С чего вдруг? Для каждого языка есть библиотека с уже реализованной диаграммой Вороного, используя библиотечную функцию она строится парой строчек кода.
Я неясно выразился, имелась в виду вычислительная сложность.