Asymptote (Vektorgrafik-Sprache)
Asymptote
| |
---|---|
Basisdaten
| |
Entwickler | Andy Hammerlindl, John C. Bowman, Tom Prince |
Erscheinungsjahr | 2004 |
Aktuelle Version | 2.94[1] (14. November 2024) |
Betriebssystem | verschiedene |
Programmiersprache | C++ |
Kategorie | Vektorgrafik |
Lizenz | GNU Lesser General Public License, Version 3.0 oder später[2] |
asymptote.sourceforge.io |
Asymptote ist eine Vektorgrafik-Sprache, die von Andy Hammerlindl, John C. Bowman (University of Alberta) und Tom Prince entwickelt wurde. Sie bildet ein koordinatenbasiertes Grundgerüst für die Erstellung technischer Zeichnungen. Es ist ferner der Name einer Software, um diese Sprache zu interpretieren. Diese gibt es in Versionen für alle verbreiteten Plattformen wie Unix, MacOS und Windows. Die Software ist quelloffen und unter der GNU Lesser General Public License (LGPL) veröffentlicht.
Syntax und wesentliche Merkmale
[Bearbeiten | Quelltext bearbeiten]Für die Darstellung von Beschriftungen und Gleichungen nutzt Asymptote LaTeX. Die Ausgabe erfolgt in PostScript, PDF, SVG oder 3D Product Representation Compact,[3] einem Format, das es erlaubt, 3D-Daten in ein PDF-Dokument einzubetten. Asymptote hat MetaPost als Vorbild, aber eine Syntax, die Ähnlichkeit mit C++ aufweist. So wie TeX/LaTeX eine Sprache für den Schriftsatz von mathematischen Gleichungen ist, ist Asymptote eine Sprache für die Darstellung der daraus resultierenden Funktionsgraphen und anderer geometrischer Figuren.
Asymptote ist in jeder Hinsicht auf mathematische Anwendungen zugeschnitten. So können z. B. Vektoren mit Hilfe komplexer Multiplikation gedreht werden. Um Konflikte zwischen Elementen, die vom Maßstab abhängen, und Elementen, die vom Maßstab unabhängig sind, aufzulösen (z. B. Beschriftungen und Pfeilspitzen von Vektoren), wird ein Simplex-Algorithmus genutzt. Die Möglichkeiten von MetaPost, Funktionsverläufe darzustellen, werden von Asymptote auf 3-dimensionale Darstellungen erweitert.[4] Die Grafikbeschreibungen werden von Asymptote zu einem Code kompiliert, der auf einer virtuellen Maschine lauffähig ist, so dass eine einfache Portierbarkeit gewährleistet ist.
In Asymptote sind komplexe Grafik-Befehle direkt in der Sprache implementiert, so dass Anwendungen mit geringem Aufwand erstellt werden können. Es kann daher als das erste Software-Paket angesehen werden, das die Domäne der dreidimensionalen Grafiken in TeX zugänglich macht.[5][6] Asymptote Quelltext eignet sich damit als Dateiformat für 3D-Grafiken.
Verbreitung und Anwendung
[Bearbeiten | Quelltext bearbeiten]In Verbindung mit LaTeX ist Asymptote in der wissenschaftlichen Gemeinschaft weniger weit verbreitet als beispielsweise PGF/TikZ.[7] Dennoch ist es in den Paketquellen aktueller Linux-Betriebssysteme (z. B. Fedora und Ubuntu) enthalten und als Download für Microsoft Windows erhältlich.
Asymptote wird zusammen mit Xasy geliefert. Mit dieser in Python (einschließlich Tk-Toolkit) geschriebenen GUI-Anwendung lassen sich rudimentäre Asymptote-Grafiken erstellen. Diese können als .asy-Sourcecode exportiert werden. Dieser kann anschließend von Hand modifiziert oder erweitert werden.
Beispielcode
[Bearbeiten | Quelltext bearbeiten]import graph;
size(6cm);
draw((-1,0) -- (-0.5,1) -- (0.5,1) -- (1,0) -- cycle);
dot((-1,0),green);
dot((+1,0),green);
dot((-0.5,1),blue);
dot((+0.5,1),blue);
real f(real x) {return 0.1*cos(2*pi*10*x)*cos(2*pi*1*x) +3/8;}
path g = graph(f,-3/4,3/4,n=1000, join=operator --);
draw(g, gray);
label("Hello world!", (0,0.1));
Durch den Asymptote-Code wird ein Trapez mit „Hello World“-Label und hervorgehobenen Eckpunkten erzeugt. Zudem ist die Nutzung der Bibliothek „graph“, mit der Funktionen geplottet werden können, gezeigt.
Das folgende Ausgabe PDF-Dokument kann durch den Aufruf von asy -f pdf helloWorld.asy
erzeugt werden.
Literatur
[Bearbeiten | Quelltext bearbeiten]- Jim Hefferon: First impressions of Asymptote. 26. Mai 2024 (ctan.org [abgerufen am 29. Juli 2024] = Paket asy-overview auf CTAN).
Siehe auch
[Bearbeiten | Quelltext bearbeiten]- Literatur über Freie und Open-Source-Software
- GeoGebra – Freie Software für Dynamische Geometrie mit Export-Möglichkeit nach Asymptote
- PSTricks – Makro-Sammlung, um PostScript-Grafiken in TeX oder LaTeX einzubinden
- PGF/TikZ – Kombination zweier Programmiersprachen zur Darstellung von Vektorgrafiken
- Grafikformate
Weblinks
[Bearbeiten | Quelltext bearbeiten]- Projektübersicht zu Asymptote bei SourceForge
- Asymptote auf GitHub
- Philippe Ivaldi: Asymptote: The Vector Graphics Language. 2009, abgerufen am 30. April 2014 (englisch).
- Philippe Ivaldi: ASYMPTOTE un puissant langage de graphisme vectoriel. 4. August 2013, abgerufen am 30. April 2014 (französisch, mehrere hundert Programmierbeispiele mit Kommentaren auf Französisch).
- Art of Problem Solving
- Asymptote (Vector Graphics Language). In: Art of Problem Solving (Wiki). Abgerufen am 30. April 2014 (englisch). (inaktiv)
- Asymptote and GeoGebra. In: Art of Problem Solving (Forum). Abgerufen am 30. April 2014 (englisch).
- Wilfried van Hirtum: Asymptote. 31. Oktober 2012, abgerufen am 30. April 2014 (niederländisch).
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Release 2.94. 14. November 2024 (abgerufen am 21. November 2024).
- ↑ github.com. (abgerufen am 27. Juli 2020).
- ↑ J. C. Bowman and A. Hammerlindl: Asymptote: A vector graphics language. (PDF) In: TUGBOAT: The Communications of the TeX Users Group, 29:2. 2008, S. 288–294, abgerufen am 30. April 2014 (englisch).
- ↑ J. C. Bowman: The 3D Asymptote Generalization of MetaPost Bézier Interpolation. (PDF) In: Proceedings in Applied Mathematics and Mechanics, 7:1. 2007, S. 2010021–2010022, abgerufen am 30. April 2014 (englisch).
- ↑ J. C. Bowman and Orest Shardt: Asymptote: Lifting TeX to three dimensions. (PDF) In: TUGBOAT: The Communications of the TeX Users Group, 30:1. 2009, S. 58–63, abgerufen am 30. April 2014 (englisch).
- ↑ O. Shardt and J. C. Bowman: Surface Parametrization of Nonsimply Connected Planar Bézier Regions. (PDF) In: Computer-Aided Design, 44:5. 2012, abgerufen am 30. April 2014.
- ↑ Drawing with TeX. Abgerufen am 3. Mai 2019 (amerikanisches Englisch).