Рівномірне розташування N точок в обмеженій області

Необхідно розробити/знайти алгоритм рівномірного розташування певного числа точок у довільній замкнутій двовимірній області. "Рівномірного" - тут означає, що N точок оптимально розташовані по всій площі фігури.

Може хтось направить на правильний шлях.

Є одновимірна область. Розміром S. Отже точки будуть віддалені один від одного на відстань S/N. Ще питання?

Щось я не зовсім зрозумів зв'язок між моїм питанням та твоєю пропозицією. Як я сказав - область двовимірна в декартовому просторі R2, причому тут одновимірна область ? А розв'язання поставленого завдання потребує розробки набагато складнішого алгоритму, ніж запропонованого тобою.

Натягніть сітку на свою фігуру. Площа комірки S/N. У вузлах сітки отримаєш точки. Ще питання?

Беремо найпростіший варіант. Є коло, у ньому треба поступово розташувати 3 точки. Припустимо площу кола становить 9 м^2. Ділимо на 3, отримуємо 3 м 2 - площа комірки. Як за цією інформацією "натягнути сітку на фігуру" та "отримати точки". ІМХО - марення.

Ну заповнюй від центру

Знаходиш цетр, малюєш у ньому крапку, потім на ліво через певний інтервал малюєш точки, коли доходиш до кінця кола, потім від цетра точно також малюєш вправо, далі на крок вгору, і знову на ліво і вправо, коли упрєшся на верху, йдеш від центру вниз

Тож прикол у тому, що кількість точок N може змінюватися. Тому "кроковий" алгоритм для довільної області тут не застосовується. При цьому: 1. "Знаходиш центр" - можна без проблем знайти для ідеальних ситуацій типу коло, квадрат. 2. "через певний інтервал" - його спершу треба знайти =))

Тобто. НЕ стоїть завдання нанесення сітки, стоїть завдання "рівномірної заливки" області деякою кількістю точок N.

Береш фігуру. Представляєш усі його пікселі у вигляді лінійного масиву. Що рівномірно і заповнюєш.

4ECHOKвідштовхуєш кожну точку від інших із силою пропорційною відстані, і так само від стінок

не найшвидший метод, але працюватиме

> Береш фігуру. Представляєш усі його пікселі у вигляді лінійного > масиву. Який рівномірно і заповнюєш.

Уявімо прямокутну область X * Y. N – кількість точок. Якщо N=X чи N=Y, то застосувавши алгоритм лінійного розташування, отримаємо, що це точки вибудовуються у ряд чи колонку. Можна знайти такі приклади.

Тому цей алгоритм теж не зовсім підходить.

> відштовхуєш кожну точку від інших із силою пропорційною > відстані, і так само від стін

А ось цей алгоритм, на мою думку, може дати результати.

> Уявімо прямокутну область X * Y. N – кількість > точок. Якщо N=X чи N=Y, то застосувавши алгоритм лінійного > розташування, отримаємо, що всі точки вишиковуються в ряд > чи колонку. Можна знайти кілька таких прикладів. Це вже зокрема, з якими потрібно і цілком можна боротися. Наприклад випадковим усуненням. Або особливим способом взяття лінійного масиву. Скажімо: спочатку беремо по горизонталі, потім вертикалі, потім знову по горизонталі, і т.д. Загалом тут експериментувати необхідно, але спосіб реально набагато швидше буде, ніж з відштовхуванням.

1. Можна вписати фігуру в більш просту - наприклад квадрат і рівномірно заповнювати його, і відкидати крапки, що не потрапляють у фігуру. 2. Можна апроксимувати фігурубагатокутником - і рівномірно заповнювати його. 3. Для квадратів, прямокутників, кіл і багатокутників - завдання розбиралися в п'ятничних завданнях МВо.