Рассеяние чисел в массиве JavaScript

У меня есть массив10+ номера. Они представляют координаты на окружности - в градусах, то есть каждое число находится между0 а также359.999999...

Проблема, которую я пытаюсь решить, заключается в том, что когда я рисую свои элементы по кругу (через html5 canvas api), иногда они объединяются в кластеры, и это приводит к тому, что элементы рисуются друг на друга.

Поэтому я хотел бы создать алгоритм, который равномерно распределяет элементы вокруг их начальной позиции в кластере. Допустим (и я хотел бы, чтобы это был настраиваемый параметр) минимальное расстояние между двумя элементами5 градусов.

Так что, если начальный массив[5, 41, 97, 101, 103, 158, 201, 214, 216, 217, 320] тогда я бы хотел, чтобы алгоритм придумал что-то вроде [5, 41,95, 100, 105158, 201,211, 216, 221, 320] (с полужирными предметами, рассеянными вокруг их начального «центра тяжести», независимо от того, являются ли они 2 или более предметами).

Также, что было бы необходимо, так это то, что алгоритм распознает 0 и 359 на расстоянии всего лишь 1 единицы (градуса), а также равномерно распределяет такие элементы.

Кто-нибудь когда-либо создавал такой алгоритм или хорошо представлял, как его можно достичь? Даже некоторые общие мысли приветствуются. Я уверен, что смог бы добиться этого с большим количеством проб и ошибок, но я хотел бы услышать некоторые образованные предположения, если вы будете, в первую очередь.

Ответы на вопрос(0)

Ваш ответ на вопрос