Dispersando números em uma matriz javascript

Eu tenho uma matriz de10+ números. Eles representam coordenadas em um círculo - em graus, ou seja, cada número está entre0 e359.999999...

O problema que estou tentando resolver é que, quando desenho meus itens no círculo (via html5 canvas api), às vezes eles são agrupados e isso resulta em itens sendo atraídos um para o outro.

Então, eu gostaria de criar um algoritmo que disperse os itens uniformemente em torno de sua posição inicial do cluster. Digamos (e eu gostaria que isso fosse uma opção configurável) a distância mínima entre dois itens é5 graus.

Portanto, se a matriz inicial for[5, 41, 97, 101, 103, 158, 201, 214, 216, 217, 320] então eu gostaria que o algoritmo apresentasse algo como [5, 41,95, 100, 105158, 201,211, 216, 221, 320] (com itens em negrito sendo dispersos em torno de seu "centro de gravidade" inicial, independentemente de serem dois ou mais itens).

Além disso, o que seria necessário é que o algoritmo reconheça 0 e 359 como sendo apenas 1 unidade (grau) e também espalhe esses itens uniformemente.

Alguém já criou esse algoritmo ou tem uma boa idéia de como ele pode ser alcançado? Mesmo alguns pensamentos gerais são bem-vindos. Tenho certeza de que conseguiria isso com muitas tentativas e erros, mas gostaria de ouvir algumas suposições, primeiro.

questionAnswers(3)

yourAnswerToTheQuestion