Bonjour
Je développe un outil de visualisation de réseau en Java. Chacun de mes éléments est un noeud symbolisé par un cercle d'u nrayon donné, disons r. Ce que je veux, c'est disposer mes noeuds de manière à ce qu'il forment un cercle. Pour ce faire, j'ai écrit la méthode suivante :
Ceci est satisfaisant pour un petit nombre d'éléments. Mais cela devient difficile de distinguer chaque élément dès lors que j'ai un grand nombre de noeuds.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 private static void makeCircle(PNode nodes[], LinkedList ll){ double y0; double x; double y; double x0 = y0 = x = y = 0.0D; double rayon = 500D; int nbProt = 0; Vector vector = new Vector(); Iterator i = ll.iterator(); while(i.hasNext()) { Protein P = (Protein)i.next(); String s = P.id; vector.add(s); nbProt++; } for(int j = 0; j < nbProt; j++) { String s = (String)vector.get(j); double angle = ((double)(j * 2) * 3.1415926535897931D) / (double)nbProt; x = x0 + rayon * Math.cos(angle); y = y0 + rayon * Math.sin(angle); for(int k = 0; k < nodes.length; k++) if(s.compareTo(proteinText[k].getText()) == 0) { nodes[k].animateToPositionScaleRotation(x, y, 1.0D, 0.0D, 1000L); } } pcam.animateViewToCenterBounds(layer.getGlobalFullBounds(), true, 1000L); }
Comment faire alors pour varier le rayon de mon cercle trigonométrique en fonction de mon nombre de noeuds ?
Merci d'avance de vos réponses.
@++
Partager