GraphStream Users

Archives de la liste Aide


Re: Question concernant GraphStream à propos des fe uilles de style appliquées aux Sprites


Chronologique Discussions 
  • From: guilhelm savin <guilhelm.savin AT gmail.com>
  • To: graphstream-users AT litislab.fr
  • Subject: Re: Question concernant GraphStream à propos des fe uilles de style appliquées aux Sprites
  • Date: Sat, 16 Apr 2011 16:46:07 +0200
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=oKGH1WPfIVN24CjuiBPWok+nK5wn7M5JF2nb+Ags/vG8ObmOeCv70/HTTTAKoJv55r JfT9s95catkXrnEMadUbP9dNev252umznLfrMp1KYaEMFTyOGVv0wmqeScM3HMZvDIBV fSzFr4HRROww4E8ki+bhLyFVQt7yBZs2bFMxM=

Bonjour,

La sink images a besoin de savoir à quel moment elle
peut produire des images. C'est le rôle de outputPolicy
de définir ces moments. Si la politique de production
n'est pas adaptée au graph, il peut en résulter 
qu'aucune image n'est produite. Par défaut cette politique
est ByStepOutput, c'est à dire qu'une image est produite
lorsque la sink reçoit un stepBegins().

Je viens d'apporter quelques modifications à cette sink
pour y inclure des politiques de production liées au 
layout, ce qui est utile pour avoir une vidéo fluide.

Si les images sont produites mais vide, il se peut que
le problème vienne de l'absence de layout. Il est possible
de l'activer via setLayoutPolicy(..) en choisissant soit
ComputedInLayoutRunner qui calculera le layout dans un
thread séparé, soit ComputedAtNewImage qui calculera le
layout avant que l'image ne soit produite.

Pour faciliter la création de vidéo, vous pouvez utiliser
le script 'gs-movie' dont je joins une version mise à jour
dans ce mail. Si votre graph se trouve dans le fichier
"mon_graph.dgs", vous pouvez produire une vidéo via :

`cat mon_graph.dgs | gs-movie --source-format=DGS --do-layout`

Autrement, vous pouvez le faire en programmant :
  
  FileSourceDGS dgs = new FileSourceDGS();
  FileSinkImages img = new FileSinkImages("prefix_", OutputType.PNG, Resolutions.HD720, OutputPolicy.ByLayoutStepOutput );

  img.setLayoutPolicy(LayoutPolicy.ComputedInLayoutRunner);
  img.setLayoutStepPerFrame(4); // Permet d’accélérer la vidéo.
  
  dgs.addSink(img);
  dgs.begin("mon_graph.dgs");
  while( dgs.nextEvents() );
  dgs.end();

J'espère que cela peut vous aider. Je reste
disponible dans le cas contraire.

Bon weekend.
Guilhelm



Le 16 avril 2011 13:36, Antoine Dutot <antoine.dutot AT gmail.com> a écrit :
Bonjour.

Merci pour cette info, cela fonctionne maintenant.
Par contre, j'aurais une autre question : comment générer des images du graphe ? (pour en faire une vidéo par la suite)
J'ai essayé avec un FileSinkImages, comme donné dans le tutoriel mais je n'ai pas réussi à générer d'images, j'utilise un graphe de la classe DefaultGraph avec un viewer de la classe Viewer.
Dois-je utiliser d'autres classes pour le graphe ou le viewer ?

Merci

Cordialement,

--
Jean-Matthieu ETANCELIN

-
Élève-ingénieur 5ème année
INSA de Rouen
Département Génie Mathématique
-
Étudiant M2 MATIS
Université du Havre


2011/4/15 Antoine Dutot <antoine.dutot AT gmail.com>
Bonjour,

En fait il y a deux viewers dans GraphStream, celui par défaut est très basique (mais léger), et ne reconnaît que très peu du CSS. L'autre respecte le CSS plus complètement (il reste en développement mais est utilisable).

Vous pouvez télécharger l'archive de l'autre viewer ici :


Ensuite pour l'activer il suffit d'ajouter :

System.setProperty( "gs.ui.renderer", "org.graphstream.ui.j2dviewer.J2DGraphRenderer" );

dans le main par exemple (avant que le viewer ne soit construit).

Cordialement

Le 15 avril 2011 20:24, Jean-Matthieu ETANCELIN <jeanmatthieu.etancelin AT insa-rouen.fr> a écrit :

Bonjour,

J'utilise actuellement GraphStream dans le cadre d'un projet scolaire. Je souhaite dessiner des zone carrées autour de  certains sommets du graphe dans la visualisation. Les Sprites me sembles convenir cependant l'attribut 'shape : box' ne semble pas fonctionner (un disque est dessiné comme lorsque l'attribut 'shape' n'est pas utilisé). Ci dessous le code CSS utilisé :

"sprite {size : 20px;fill-color: #cccccc; shape:box;}"

Merci

Cordialement,


--
Jean-Matthieu ETANCELIN
-
Élève-ingénieur 5ème année
INSA de Rouen
Département Génie Mathématique
-
Étudiant M2 MATIS
Université du Havre







--
Guilhelm Savin
PhD Student of Computer Science

Attachment: gs-utils.tar.bz2
Description: BZip2 compressed data




Archives gérées par MHonArc 2.6.16.

Top of page