powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Равномерное распределение точек на окружности
12 сообщений из 37, страница 2 из 2
Равномерное распределение точек на окружности
    #37878595
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AbstractionПрограмёрпропущено...


может не оптимально, но просто.... делим окружность на k дуг опорными точками..., а далее в цикле (пока не закончатся точки) по принипу:
1. Ищем дугу, которая делится нашими (не опорными) точками на самые длинные промежутки (дуги)
2. Добавляем к числу точек на этой дуге ещё одну

В итоге получим k чисел, каждое соответствует числу точек на данной дуге... распределяем их равномерно по дуге (как и было сказано ранее) и ... готово :)И Вам пирожок с верхней полки.
12861765
сорри... не заметил...
...
Рейтинг: 0 / 0
Равномерное распределение точек на окружности
    #37878603
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Димитрий85Програмёрможет не оптимально, но просто.... делим окружность на k дуг опорными точками..., а далее в цикле (пока не закончатся точки) по принипу:
1. Ищем дугу, которая делится нашими (не опорными) точками на самые длинные промежутки (дуги)
2. Добавляем к числу точек на этой дуге ещё одну

В итоге получим k чисел, каждое соответствует числу точек на данной дуге... распределяем их равномерно по дуге (как и было сказано ранее) и ... готово :)

Не получится ли, что все наши точки напихаются в один интервал между двумя опорными, а другие интервалы окажутся не заполненными подвижными точками?

если один из интервалов будет в разы (десятки раз) больше других - то так и получится. НО... размещение точек в любом случае будет оптимальным
...
Рейтинг: 0 / 0
Равномерное распределение точек на окружности
    #37878628
Gwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Димитрий85,
а как в Вашей задаче соотносятся число интервалов (Ni) и число точек (Nt)
Nt >> Ni
Nt ~ Ni
Nt < Ni ?
...
Рейтинг: 0 / 0
Равномерное распределение точек на окружности
    #37878654
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрДимитрий85пропущено...


Не получится ли, что все наши точки напихаются в один интервал между двумя опорными, а другие интервалы окажутся не заполненными подвижными точками?

если один из интервалов будет в разы (десятки раз) больше других - то так и получится. НО... размещение точек в любом случае будет оптимальнымНе всегда оптимальным. Пусть есть две точки, интервалы 1 и 1.8, мы можем добавить две точки.
Жадный алгоритм дает 0.5, 0.5, 0.9, 0.9 ("неидеальность" 0.8);
Возможен вариант 1, 0.6, 0.6, 0.6 ("неидеальность" 0.6);
Но отклонение жадного алгоритма от идеального решения легко оценивается сверху.
...
Рейтинг: 0 / 0
Равномерное распределение точек на окружности
    #37878665
Димитрий85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GwaДимитрий85,
а как в Вашей задаче соотносятся число интервалов (Ni) и число точек (Nt)
Nt >> Ni
Nt ~ Ni
Nt < Ni ?
Число опорных точек N>=1.
Число подвижных точек n>=0.

N и n, как правило, <= 10
...
Рейтинг: 0 / 0
Равномерное распределение точек на окружности
    #37879038
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И? Рассуждения-то о чём?
Имеем, например, K точек (соответственно, отрезков/углов).
Аппроксимируем. разностью квадратов, например.
Накладываем новые N точек на полученную прямую... Случайно, причём.
Чистый подсчёт в любом случае вернёт наименьшее отклонение.

Проверять просто надо не на K=3 и N=3
...
Рейтинг: 0 / 0
Равномерное распределение точек на окружности
    #37879045
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впрочем, учитывая нынешние вычислительные мощности...
Можно сделать так: взять не N, а N^2 , или K*N , или min(K^2,N^2)*max(K,N) "новых" точек и отбросить затем самые близкие к "опорным", добившись оставшихся N...
...
Рейтинг: 0 / 0
Равномерное распределение точек на окружности
    #37879684
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AbstractionПрограмёрпропущено...


если один из интервалов будет в разы (десятки раз) больше других - то так и получится. НО... размещение точек в любом случае будет оптимальнымНе всегда оптимальным. Пусть есть две точки, интервалы 1 и 1.8, мы можем добавить две точки.
Жадный алгоритм дает 0.5, 0.5, 0.9, 0.9 ("неидеальность" 0.8);
Возможен вариант 1, 0.6, 0.6, 0.6 ("неидеальность" 0.6);
Но отклонение жадного алгоритма от идеального решения легко оценивается сверху.

да... согласен))) надо проверять на 1 шаг вперёд... то есть, мы стараемся добавить 1 к каждому интервалу, и там где промежутки между точками окажутся больше (при уже добавленной точке) - туда её и добавляем... и т.д. ))) при таком алгоритме и получим именно то, что надо :)
...
Рейтинг: 0 / 0
Равномерное распределение точек на окружности
    #37881393
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Димитрий85Вычислять "равномерность" планирую по формуле - находим среднюю длину дуг окружности между соседними точками в каждой из комбинаций распределения. Далее считаем сумму абсолютных отклонений длин дуг от среднего значения.
Боюсь, далеко вы с таким критерием не уедете. Простой пример: две точки брошены на окружность очень близко друг к другу, надо "равномерно" бросить ещё третью. Средняя длина, соответственно, окр/3, длина короткой дуги дана нам в ощущениях, а теперь вуаля - где бы мы ни разместили точку на большой дуге, "сумма абсолютных отклонений" будет одинакова.
...
Рейтинг: 0 / 0
Равномерное распределение точек на окружности
    #37881460
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerгде бы мы ни разместили точку на большой дуге, "сумма абсолютных отклонений" будет одинакова.Про что я и говорил... 12865806
Вообще, раз Димитрий85 сказал, что "n и N (как правило) <= 10" , то использование не "точных абсолютных расчетов", а именно "выборка из перекрывающего набора" будет более оптимальной. Сугубое ИМХО, конечно...
...
Рейтинг: 0 / 0
Равномерное распределение точек на окружности
    #37881622
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Добавление точек по одной не кажется оптимальным. Можно сразу посчитать, что "идеальный" угол между точками 2*PI/(N+n). Берем самую большую дугу между опорными точками и через равные углы ставим на нее round(N*длина_дуги1/2PI) точек. Взяли следующую по величине дугу и поместили на нее round(N_оставшееся * длина_дуги2 / оставшаяся_нераспределенной_часть_окружности) точек.
...
Рейтинг: 0 / 0
Равномерное распределение точек на окружности
    #37881761
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оптимальный алгоритм зависит от критерия равномерности. Скажем, возьмём два критерия:

1. Для каждой пары соседних дуг строим отношение длин (большей к меньшей). Стремимся минимизировать сумму этих отношений.
2. Стремимся минимизировать среднеквадратичное отклонение.

Думается мне, и распределение точек, и даже алгоритмы их поиска будут сильно разными.
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Равномерное распределение точек на окружности
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]