Sprache oder Paket zum Zeichnen von geometrischen Diagramme - Stapelüberlauf

Ich bin auf der Suche nach einer Sprache, oder das Paket in einer vorhandenen Sprache, die für die Angabe und Zeichnen geometrische Diagramme gut ist.

Was ist der einfachste Weg, dies zu tun?







Codebeispiele, die zeigen, wie einfach es ist, solche geometrisch bestimmte Diagramme zu erstellen, würden geschätzt. Insbesondere zeigen Sie, wie einfach es ist, ein hexagonales Gitter zu ziehen; während ich durch Ziehen all Linien mit der Hand, dass in jeder Sprache tun konnte, bin ich in Sprachen oder Paketen interessiert, die diese Art von geometrischen Diagramm einfach und klar zu machen.

So ist die Herausforderung, für die Prämie, ist das kürzeste Programm zu erstellen, das ein Hex-Gitter mit seinen überlagerten Dreiecksgittern zieht. Bitte senden Sie Ihren Code, Links auf die Sprache und alle Pakete, die Sie verwendet haben, eine grobe Token zählen, wenn möglich, und ein Beispiel Ausgabebild. Die bestehende Antwort ist die Bar Sie zu qualifizieren schlagen müssen werde; es macht den Job, aber ich würde etwas kürzer und einfacher mag.

Das Code-Beispiel ein Sechseck Raster zu zeichnen und triangulieren es ist wie folgt. Ich gebe zu, dass es ziemlich lange, aber ich denke, es ist wirklich nicht so schlimm.

Der Code vor \ newcommand enthält nur die erforderlichen Pakete und richtet das Schlüsselwort Argumente: Name den Namen setzt auf die verwendeten Hexagone verweisen, Größe setzt die Ecke zu Ecke Größe jedes Sechseck, xpos und ypos Position der linken oberen Ecke der gesamten Raster, Zeilen und Spalten, die Anzahl der Sechsecke zu bestimmen, kann die triangulate Option das Gitter, um optional triangulieren und der Start verschoben Option die erste Reihe anstelle der zweiten Reihe eingekerbten beginnen hat. Wir erlauben es dem Benutzer auch Styling-Befehle in dem ersten, optional, Argumente von \ Hexgrid passieren; alle Hexgrid hex / .style 2 args wird ihnen erlauben, einzelne Hexagone, Stil (und sogar die Position dieses hex abfragen, wenn sie wollen), und jedes Hexgrid Triangulator / .style wird ihnen erlauben, die Triangulation Linien stylen.

Skipping ein wenig, kommen wir zu den \ pgfsetmacro Linien; der Durchmesser der Sechsecke angegeben ist, so müssen wir den Radius berechnen, die Seitenlänge, und dann die Breite von Seite zu Seite. Die beiden folgenden \ foreach-Schleifen sind das Fleisch der Zeichencode, und sollte hoffentlich ziemlich klar sein. Beachten Sie, dass wir die Dicke der Linien zu berücksichtigen haben, wenn die vertikale Platzierung zu bestimmen. Danach kommt einen noch längeren Codeblock, zwischen \ ifHexgridTriangulate und \ fi; dies ist verantwortlich für die Triangulation des Gitters, wenn so etwas gewünscht wird.







Schließlich bekommen wir sehen, wie das aussieht:

Wie andere gesagt haben, die erweiterbare und dokumentiert Sprache, die Ihren Bedürfnissen passt, ist wahrscheinlich PGF / TikZ. Ich habe gelernt, sehr einfach TikZ weniger als vor einer Woche, so hoffentlich demonstriert seine Macht:

Hier ist das Ergebnis:

Bearbeiten. Eigentlich sieht der Clipping-Bereich leicht schlecht. Hier ist eine mehr Spaß Version, in voller Länge:

Hier ist das Ergebnis:

Sprache oder Paket zum Zeichnen von geometrischen Diagramme - Stapelüberlauf

Xy-pic oder MetaPost die auf Ihrem Computer wahrscheinlich bereits installiert sind, wenn Sie TeX haben.

AKTUALISIEREN. Nach dem Versuch, sich zu erinnern, wie MetaPost und andernfalls zu verwenden. Ich verwendete SketchUp von Google. Trivial zu Layout. Vielleicht ein anderes CAD-Programm könnten Sie passen. Aber ein Zeichenprogramm ist bei weitem der einfachste. Open Office Draw, vielleicht? Scheint, wie Betrug, aber es bekam den Job am schnellsten erledigt.

Hier ist eine schnelle Bild gemacht in Openoffice in wenigen Minuten Draw. Braucht ein wenig Arbeit auf dem Seitenverhältnis, aber es zeigt die Grundlagen aus.

Sprache oder Paket zum Zeichnen von geometrischen Diagramme - Stapelüberlauf

Welche Ergebnisse in diesem (und ich gebe zu, dass es viel besser sein könnte):

Sprache oder Paket zum Zeichnen von geometrischen Diagramme - Stapelüberlauf

Und ja, ich im Code viele Dinge getan hätte besser sein können, aber es gab einige screwy Dinge mit den Transformationen und füllen. Also habe ich es die hässliche Art und Weise.

By the way, ist dies mein erstes javafx Programm. Ich würde Korrekturen und Änderungen zu schätzen wissen.

kürzesten und einfachsten Code, in vorbestandene Sprache und unter Verwendung einer beliebigen bereits vorhandenen Paket, für ein hexagonales Gitter mit ihrer doppelten Dreiecksgitter auf der Oberseite der Zeichnung lagert ;.

In Standard-Mathematica 7:

Wie Polygon in Mathematica verwenden: (Link)
Was ist Tesselation: (link)

Ausgang für: draw2T [4, 8]

Sprache oder Paket zum Zeichnen von geometrischen Diagramme - Stapelüberlauf

Kurz vor der Veröffentlichung, bemerkte ich:

die Doppeldreiecksgitter ist das Dreiecksgitter erhalten Sie, wenn Sie die Mitte jedes Sechseck in die Mitte jedes der benachbarten Hexagone verbinden.

Dafür müssen Sie nur die zweite Grafik versetzt. Beachten Sie, dass, bevor es zu einem beliebigen Format zu speichern, es ist eine Sammlung von Formen ist, und Sie können jedes einzelne Element Visuals (Das ist nur frigging genial) bearbeiten.

Sprache oder Paket zum Zeichnen von geometrischen Diagramme - Stapelüberlauf