J'ai besoin d'un algorithme qui peut me donner des positions autour d'une sphère pour N points (moins de 20, probablement) qui les répartit vaguement. Il n'y a pas besoin de "perfection", mais j'ai juste besoin que aucun d'entre eux ne soit regroupé.
- Cette question a fourni un bon code, mais je n'ai pas trouvé un moyen de le rendre uniforme, car cela semblait être à 100% aléatoire.
- Cet article de blog recommandait deux façons permettant de saisir le nombre de points sur la sphère, mais l'algorithme de Saff et Kuijlaars est exactement en pseudo-code que je pourrais transcrire, et l'exemple de code que j'ai trouvé contenait "node[k]", ce que je n'ai pas vu expliqué et a ruiné cette possibilité. Le deuxième exemple de blog était la Spirale de la Section Dorée, qui m'a donné des résultats étranges et regroupés, sans moyen clair de définir un rayon constant.
- Cet algorithme de cette question semble pouvoir fonctionner, mais je ne peux pas assembler ce qui se trouve sur cette page en pseudo-code ou quoi que ce soit d'autre.
Quelques autres fils de discussion auxquels j'ai participé ont parlé de distribution uniforme aléatoire, ce qui ajoute un niveau de complexité qui ne me préoccupe pas. Je m'excuse que ce soit une question si stupide, mais je voulais montrer que j'avais vraiment cherché intensément et n'avais toujours pas trouvé.
Donc, ce que je cherche, c'est un simple pseudo-code pour distribuer de manière uniforme N points autour d'une sphère unité, renvoyant soit des coordonnées sphériques soit cartésiennes. Encore mieux s'il peut distribuer uniformément avec un peu de randomisation (pensez aux planètes autour d'une étoile, assez espacées, mais avec de la marge de manœuvre).
0 votes
Que voulez-vous dire par "avec un peu de randomisation" ? Voulez-vous dire des perturbations dans un sens quelconque ?
42 votes
OP est confus. Ce qu'il recherche, c'est placer des points sur une sphère de telle sorte que la distance minimale entre deux points soit la plus grande possible. Cela donnera l'impression que les points sont "uniformément répartis" sur toute la sphère. Cela n'a absolument rien à voir avec la création d'une distribution aléatoire uniforme sur une sphère, ce qui est le sujet de nombreux liens mentionnés, et de nombreuses réponses ci-dessous en parlent.
1 votes
20 n'est pas beaucoup de points à placer sur une sphère si vous ne voulez pas qu'ils aient l'air juste aléatoires.
2 votes
Voici une façon de le faire (il contient des exemples de code): pdfs.semanticscholar.org/97a6/… (semble utiliser des calculs de force de répulsion)
2 votes
Bien sûr, pour des valeurs de N dans {4, 6, 8, 12, 20}, il existe des solutions exactes dans lesquelles la distance de chaque point à (chacun de) ses voisins les plus proches est constante pour tous les points et tous les voisins les plus proches.