2010-08-12 8 views
1

Je cherche un outil/une bibliothèque capable de dessiner des géométries 2D simples à partir d'un fichier texte ou par programmation. J'ai déjà trouvé List of interactive geometry software mais ce n'est pas tout à fait ce que je cherche. Je préférerais quelque chose de plus similaire à graphviz ou gnuplot. J'ai déjà écrit quelques scripts pour gnuplot mais cet outil a été conçu pour différentes raisons. Fonctionnalité requise:Outil de dessin de géométrie 2d

  • support pour différents types de géométries 2D: points, segments, lignes, cercles, polygones
  • format simple de type d'entrée peut-être similaires pour soutenir PostGIS Well Known Text
  • pour les objets de données supplémentaires comme des balises et des couleurs définition
  • sortie au format d'image commun ou une sorte d'interface graphique interactive (avec zoom avant/arrière et choisir objet)
  • grille configurable
  • autoscale ou dessiner i n zone définie

Je vais l'utiliser pour tester des algorithmes de géométrie et je ne veux pas réinventer la roue.

+1

Ceci n'est pas une réponse, mais plutôt une suggestion d'où chercher une réponse ... Vous devriez chercher des toolkits qui ont une sortie SVG. Plusieurs bons programmes de géométrie interactive (inkscape par exemple) supportent l'édition et la création SVG. Et ce n'est pas très difficile de créer des fichiers SVG. J'ai écrit des scripts Python qui le font sans l'aide d'une boîte à outils. Je voulais générer par programme une partie d'un projet artistique. – Omnifarious

+0

La tentation de suggestion [QuickDraw] (http://en.wikipedia.org/wiki/QuickDraw) a été impitoyablement supprimée. C'est tout. – dmckee

+0

QuickDraw est-il uniquement compatible avec MacOS? J'aurais dû mentionner que je suis à la recherche d'un outil Linux :) – jethro

Répondre

0

Peut-être dia, avec l'option de sortie SVG est ce que vous cherchez? Il peut être scripté en Python.

+0

Je connais dia mais j'ai toujours pensé à ce sujet comme un outil diagramme/UML et non comme une géométrie. Pouvez-vous fournir un tutoriel sur les scripts dia en python? – jethro

+0

@jethro - Je ne l'ai jamais fait. Je sais juste que cela peut être fait. Dia est plutôt mal documenté. : ( – Omnifarious

3

Matplotlib. Je ne suis pas familier avec tous les aspects de cette bibliothèque Python mais j'ai entendu dire que c'est plutôt bien.

Pour citer leur introduction,

matplotlib est une 2D de python de traçage bibliothèque qui produit des chiffres de qualité publication dans une variété de formats et interactifs sur papier des environnements à travers les plates-formes. matplotlib peut être utilisé en python scripts, le python et ipython shell (ala MATLAB® * ou Mathematica® †), les serveurs d'applications web , et six graphiques outils de l'interface utilisateur.

matplotlib essaie de faire des choses faciles choses faciles et difficiles possible. Vous pouvez générer des graphiques, des histogrammes, des spectres , des diagrammes à barres, des diagrammes d'erreurs, des diagrammes de dispersion , etc. avec seulement quelques lignes de code . Pour un échantillon, voir les captures d'écran , galerie de vignettes, et exemples répertoire

Example outputs http://matplotlib.sourceforge.net/_static/logo_sidebar_horiz.png

Par exemple, en utilisant « ipython -pylab » pour fournir un environnement interactif, à générer 10.000 gaussiennes aléatoires et nombres tracer un histogramme avec 100 bacs, il vous suffit de taper

x = randn(10000) 
hist(x, 100) 

pour l'utilisateur de puissance, vous avez plein contrôle des styles de trait, polices propriétés, propriétés axes, etc, via une interface orientée objet ou via un ensemble de fonctions familières aux utilisateurs de MATLAB .Le mode pylab fournit toutes les fonctions de traçage de pyplot listées ci-dessous, ainsi que les fonctions non-traçage de numpy et matplotlib.mlab.

+0

Cet exemple (http://matplotlib.sourceforge.net/examples/api/compound_path.html) ressemble assez à ce que je veux, je vais essayer .. – jethro

+0

réponse a été utile. :) –

+0

Avez-vous enfin utilisé cela? –

Questions connexes