GraphStream Users

Archives de la liste Aide


RE : RE : rapprocher les noeuds / les mettre au 1er plan


Chronologique Discussions 
  • From: Dafflon Yaroslaw <Yaroslaw.Dafflon AT edu.hefr.ch>
  • To: "graphstream-users AT litislab.fr" <graphstream-users AT litislab.fr>
  • Subject: RE : RE : rapprocher les noeuds / les mettre au 1er plan
  • Date: Fri, 24 Jun 2011 17:54:02 +0200
  • Accept-language: fr-FR, fr-CH
  • Acceptlanguage: fr-FR, fr-CH

bonjour,

non il y a pas de changement .


Dafflon Yaroslaw
________________________________________
De : Antoine Dutot
[antoine.dutot AT gmail.com]
Date d'envoi : vendredi, 24. juin 2011 16:16
À :
graphstream-users AT litislab.fr
Objet : Re: RE : rapprocher les noeuds / les mettre au 1er plan

Bonjour,

En fait c'était surtout pour tester et essayer de trouver le bug. Sinon la
technique que vous utilisez semble être la bonne.

Le graphe ne bouge plus une fois mis en forme, même si vous opérez des
changement dans celui-ci ?

Salutations,

Antoine

Le 24 juin 2011 09:46, Dafflon Yaroslaw
<Yaroslaw.Dafflon AT edu.hefr.ch<mailto:Yaroslaw.Dafflon AT edu.hefr.ch>>
a écrit :
bonjour,

je peux vous montrer ma méthode qui sélectionne les noeud et les regroupes
mais je vais pas vous envoyer le programme car il est assez gros et va
chercher les informations sur une base de données.
voila ma méthode je sais pas si vous pouvez plus m'aider avec :

// MISE EN EVIDENCE D'UN NOEUD, DE SES VOISINS ET DE LEURS LIENS
public void setActiveNode(String as){
Node n;
// RETOUR A LA NORMALE DU NOEUD CHOISI PRECEDEMMENT
if(this.activeNode != null){
n = this.activeNode;
for(Edge e:n.getEachEdge()) {
e.setAttribute("ui.color", 0); // Couleur noeud
e.getOpposite(n).setAttribute("ui.color", 0);
// Couleur voisin
e.setAttribute("ui.size", 1); // Largeur lien
}
n.setAttribute("ui.color", 0); // Couleur neoud actif
}
// MISE EN EVIDENCE
n = this.activeNode = g.getNode(as); // Changement noeud actif
for(Edge e:n.getEachEdge()) {
e.setAttribute("ui.color", 0.5);
e.getOpposite(n).setAttribute("ui.color", 0.3);
e.setAttribute("ui.size", 2);
e.setAttribute("layout.weight", 0.1);//attire les
noeuds
}
n.setAttribute("ui.color", 1);
}

merci

salutation

Dafflon Yaroslaw
________________________________________
De : Antoine Dutot
[antoine.dutot AT gmail.com<mailto:antoine.dutot AT gmail.com>]
Date d'envoi : jeudi, 23. juin 2011 14:21
À :
graphstream-users AT litislab.fr<mailto:graphstream-users AT litislab.fr>
Objet : Re: rapprocher les noeuds / les mettre au 1er plan

Bonjour,

Le 22 juin 2011 11:08,
<yaroslaw.dafflon AT edu.hefr.ch<mailto:yaroslaw.dafflon AT edu.hefr.ch><mailto:yaroslaw.dafflon AT edu.hefr.ch<mailto:yaroslaw.dafflon AT edu.hefr.ch>>>
a écrit :
bonjour,

je souhaite rapprocher les nœuds sélectionnés dans mon application et les
mettre au premier plan.

j'ai utilisé : e.setAttribute("layout.weight", 0.1);//attire les noeuds e=Edge

C'est la bonne méthode, cela devrait fonctionner. Cependant,
l'algorithme de mise en forme automatique du graphe est basé sur un système de
forces "attraction/répulsion", et certains arcs sont plus ou moins longs. Le
poids
change cette longueur mais ne permet pas d'assigner la même longueur à tous
les
arcs.

Si vous avez un exemple plus complet, on peut éventuellement tester, si vous
le désirez.

mais les nœuds ne se rapproche pas, je dois le faire autrement?

Ma deuxième question serait de savoir comment mettre les nœuds au premier
plan, dans mon application qui comporte plein de nœuds, je voudrais en mettre
certains au premier plan mais je n'ai pas trouvé d'attribut pour cela. Il y en
a?

Vous pouvez utiliser une feuille de style avec la propriété "z-index".
L'afficheur dessine
les éléments du graphe dans un ordre "Z" particulier, on peut voir cela comme
des calques.
Si un objet a un niveau Z élevé il est dessiné au dessus de ceux qui ont un
niveau Z bas.
Par défaut, tous les arcs sont au niveau 1 et tous les nœuds au niveau 2.
(http://graphstream-project.org/doc/Tutorials/GraphStream-CSS-Reference_1.0/#properties-common-to-nodes-edges-and-sprites)

En revanche deux objets qui ont le même niveau Z sont dessinés dans un ordre
arbitraire. Pour
éviter cela, grosso-modo, vous pouvez procéder ainsi:
...
// Au début du programme.
graph.addAttribute("ui.stylehseet", "node.important { z-index: 10; }");
...
// Lors de la création des nœuds ou quand vous souhaitez les mettre au
premier plan, lors de
// la sélection par exemple:
node.addAttribute("ui.class", "important");

Salutations

Antoine




Archives gérées par MHonArc 2.6.16.

Top of page