2. Modèle à ressorts (dessin en 2D)

Dans cet exercice on vous demande de compléter la classe SpringDrawing_2, qui permet de calculer une représentation d'un graphe avec le paradigme connu sous le nom Force Directed Drawing. L'idée à la base de cet approche est très simple, et illustrée par la figure ci-dessous.








On considère un modèle mécanique constitué de:
Les ressorts modélisent des forces exercées entre les particules. Il y a bien sur une force attractive entre sommets adjacents (exercée par les ressort), mais aussi une force répulsive entre tous les sommets (cela pour éviter que le système collapse en un seul point). L'algorithme dit "force directed" consiste juste à



Remarque

Question (pratique) Il ne vous reste qu'à compléter la méthode computeDrawing() de la classe SpringDrawing_2.


Question (plus théorique) Qu'est-ce que vous  remarquez par rapport au dessin obtenu avec cette méthode? Le dessin est-il planaire?
Peut-on reconnaitre la structure du graphe visualisé? et pourquoi?

Sauriez-vous expliquer la "structure" des dessins qu'on obtient (question difficile... au moins jusqu'à l'exercice 3)