Langue ou package pour dessiner des diagrammes géométriques - Stack Overflow

Je suis à la recherche d'une langue, ou le package dans une langue existante, ce qui est bon pour spécifier et dessiner des diagrammes géométriques.

Quelle est la meilleure façon de le faire?







Les exemples de code, montrant comment il est facile de créer de tels schémas spécifiés géométriquement, seraient appréciés. En particulier, s'il vous plaît montrer comment il est facile de dessiner une grille hexagonale; alors que je pouvais le faire dans toutes les langues en tirant toutes les lignes à la main, je suis intéressé par les langues ou les paquets qui font ce genre de schéma géométrique simple et claire.

Ainsi, le défi, pour la générosité, est de créer le programme le plus court qui dessine une grille hexagonale avec sa grille triangulaire superposées. S'il vous plaît envoyer votre code, des liens vers la langue et les paquets que vous avez utilisé, un compte jeton rugueux si possible, et un exemple d'image de sortie. La réponse actuelle est la barre, vous devez battre pour se qualifier; il fait le travail, mais je voudrais quelque chose de plus court et plus simple.

L'exemple de code pour dessiner une grille hexagonale et trianguler est le suivant. Je dois admettre que c'est assez long, mais je pense qu'il est vraiment pas si mal.

Le code avant \ newcommand comprend juste les paquets nécessaires et met en place les arguments de mot-clé: nom définit le nom utilisé pour se référer aux hexagones, la taille définit la taille coin à coin de chaque hexagone, la position de xpos et ypos le coin supérieur gauche de l'ensemble du réseau, des lignes et des cols déterminent le nombre d'hexagones, l'option triangulée permet de trianguler Optionnellement, la grille et le début décalé option a la première ligne commence en retrait à la place de la deuxième rangée. Nous allons également permettre à l'utilisateur de passer des commandes de style dans le premier, en option, argument de \ hexgrid; chaque hex hexgrid / .style 2 args leur permettra de coiffer hexagones individuels (et même interroger la position de cet hexagone, si elles veulent), et tous les hexgrid Triangulator / .style leur permettront de style des lignes trianguler.

Sauter un peu, nous arrivons aux lignes de \ pgfsetmacro; le diamètre des hexagones est spécifié, il faut donc calculer le rayon, la longueur du côté, puis la largeur d'un côté à l'autre. Les deux \ boucles foreach suivantes sont la viande du code de dessin, et devrait, espérons être assez clair. Notez que nous devons prendre l'épaisseur des lignes en compte lors de la détermination de placement vertical. Après cela vient d'un bloc encore plus de code, entre \ ifHexgridTriangulate et \ fi; cela est responsable de trianguler la grille si une telle chose est souhaitée.







Enfin, on arrive à voir à quoi cela ressemble:

Comme d'autres l'ont dit, la plus extensible et la langue documentée qui répond à vos besoins est probablement PGF / TikZ. Je viens d'apprendre très basique TikZ il y a moins d'une semaine, alors je espère que cela démontre sa puissance:

Voici le résultat:

Modifier. En fait, la zone de découpage est légèrement mauvais. Voici une version plus amusant, en plein:

Voici le résultat:

Langue ou package pour dessiner des diagrammes géométriques - Stack Overflow

Xy-pic ou MetaPost qui sont probablement déjà installé sur votre ordinateur si vous avez TeX.

METTRE À JOUR. Après avoir essayé de se rappeler comment utiliser METAPOST et à défaut. J'ai utilisé SketchUp de Google. Trivial à la mise en page. Peut-être un autre programme de CAD pourrait vous convenir. Mais en utilisant un programme de dessin est de loin le plus facile. OpenOffice Draw, peut-être? On dirait que la tricherie, mais il fait le travail le plus rapide.

Voici une image rapide faite dans OpenOffice Dessiner en quelques minutes. A besoin d'un peu de travail sur le rapport d'aspect, mais il montre les bases.

Langue ou package pour dessiner des diagrammes géométriques - Stack Overflow

Quels sont les résultats dans ce (et je reconnais que cela pourrait être beaucoup mieux):

Langue ou package pour dessiner des diagrammes géométriques - Stack Overflow

Et oui, je aurais pu faire beaucoup de choses mieux dans le code, mais il y avait des choses screwy avec les transformations et remplir. Donc, je l'ai fait le chemin laid.

Soit dit en passant, ceci est mon premier programme de JavaFX. Je vous serais reconnaissant des corrections et des changements.

plus court et le code le plus simple, dans toute langue pré-existante et en utilisant un paquet de pré-existant, pour l'élaboration d'une grille hexagonale avec sa grille triangulaire double superposé au-dessus de celui-ci ;.

Dans la norme Mathematica 7:

Comment utiliser un polygone dans Mathematica: (lien)
Qu'est-ce que tesselation: (lien)

Sortie pour: draw2T [4, 8]

Langue ou package pour dessiner des diagrammes géométriques - Stack Overflow

Juste avant de poster, j'ai remarqué:

la double grille triangulaire est la grille triangulaire vous obtenez si vous vous connectez au centre de chaque hexagone au centre de chacun des hexagones voisins.

Pour cela, vous avez juste besoin de compenser les deuxième graphiques. Notez que avant de l'enregistrer à tout format, il est une collection de formes, et vous pouvez éditer tous les visuels à un seul élément (C'est juste branlant génial).

Langue ou package pour dessiner des diagrammes géométriques - Stack Overflow