Étape 2: Kinetic.js : les étoiles de Clustering
Bien que pas immédiatement apparente, la galaxie n’est pas organisée au hasard.
Cliquez sur une des catégories de niveau supérieur, par exemple, et vous verrez un anneau :
Zoomer sur une voie, et vous verrez un groupe serré de projets :
Les projets sont regroupés par catégories et les canaux des Instructables. Les six anneaux de catégorie de niveau supérieur émanent vers l’extérieur du centre de l’univers, et chaque canal au sein de chaque catégorie reçoit une tarte-tranche égale de l’anneau. Il en résulte une distribution « groupée » des étoiles, étant donné que certaines catégories sont plus complètes que d’autres, et certaines chaînes au sein de catégories sont plus complètes que d’autres. Ces grappes sont à la fois le reflet de l’équilibre des projets dans les catégories et les canaux des Instructables et fournissent certains certain attrait esthétique.
Le code qui fait arriver, cela a été écrit en KineticJS, mais aurait pu être écrit en JavaScript simple, traitement ou toute autre chose. Il assigne un anneau à chacune des six catégories et un point aléatoire (zéro à 2 * pi) le long de cet anneau qui sert le point central pour chaque canal. Tout cela est fait avec les fonctions trigonométriques de base: x = r*cos(theta) et y = r * sin(theta) où sont (rayon) est dérivé de l’anneau sur lequel réside chaque projet et thêta est dérivé de l’angle « Centre » de chaque canal. Comme les projets sont traités, cinétique crée un nouveau calque pour le canal (si nécessaire) et ajoute le projet à ce calque. Le calque est ajouté au calque de la catégorie, et toutes les couches sont ajoutés à l’étape. Cinétique le rend simple pour s’effondrer tous ces numéros jusqu'à coordonnées XY universelles, raison pour laquelle le code a été réécrit jamais lorsque le projet s’installe à Three.js. Chaque projet obtient un z au hasard, dans une fourchette étroite.
Peut-être la partie la plus intéressante est la création d’une distribution gaussienne, plutôt qu’une dispersion aléatoire autour de ces axes :
Cette astuce utile fournie par les poissons de proton. Si vous avez une valeur moyenne et la déviation standard pour toute sorte de que vous essayez de générer une distribution normale, une approximation près de pratique consiste à additionner trois randoms uniformes.