Vektorgrafiken

Eine Vektorgrafik enthält auf schlanke Weise die Darstellung von (mathematischen) Objekten wie Linien, Kreise, etc. Ihre Auflösung bleibt im Gegensatz zu einer Rastergrafik auf jeder Ebene erhalten, was sie besonders attraktiv für zoombare Medien macht. Mittlerweile unterstützen die meisten Navigatoren das Format SVG für skalierbare Vektorgrafiken; für die Spezifikationen siehe: w3.org. Beispiel einer einfachen Grafik (.svg)/(.txt)/(.html); als Muster: (.svg) (510 Bytes), (.pdf) (5.8 kB).

Ein weiterer Vorteil ist ihre Transparenz. Vektorgrafiken eignen sich somit ausgezeichnet für die Darstellung von Moirémustern und allerlei sonstigen optischen Täuschungen!

Klappe Moiré-Effekte I

Moiré-Effekt mit dem Bildschirm ✦ Kreise, Strecken und Punkte ✦ Schwebung ✦ Strahlen (sternförmige Objekte) ✦ Geschachtelte Quadrate ✦ Emergente Zeichen: «Linseneffekt» ✦ Kurven und Pfade

“You don’t need something more to get more – that is what emergence means.” — Murray Gell-Mann, “Beauty and truth in physics”, 2007

strichefront2

Moiré-Effekt mit dem Bildschirm

Hier kann getestet werden, ob sich ein Moiré mit dem eigenen Bildschirm oder der Projektionsfläche ergibt. Achtung: grosse Unterschiede zwischen verschiedenen Applikationen!

  • Geschachtelte Quadrate oder eine Kreisschar in Bewegung (.html), Zoom-Animation (.html)

Es werden sich auch aus den folgenden Bildern unbeabsichtigte Moiré-Effekte ergeben. Die meisten Navigatoren erlauben die ganze Ansicht zu vergrössern oder zu verkleinern; damit lassen sich diese Effekte verringern oder steigern.

Kreise, Strecken und Punkte

Schwebung

  • Schwebung (.svg) hören: 440 Hz und 444 Hz erklingen zusammen (.opus) [440 Hz (.opus); 444 Hz (.opus)]
    Periodizität einer Schwebung sehen: (.html), Überlagerung durch Verschieben eines Graphen (.html)
  • Harmonische Schwingungen multiplizieren (.html)

Strahlen (sternförmige Objekte)

Einige der folgenden Vektoren werden im Navigator möglicherweise unzureichend wiedergegeben, wenn Kantenglättung (Anti-Aliasing) angewendet wird. Bitte prüfen Sie dies mit dem folgenden Bild (.pdf). Das entsprechende Vektorbild (.svg) sollte mindestens genauso gut aussehen.

Geschachtelte Quadrate

Emergente Zeichen: «Linseneffekt»

Kurven und Pfade

Klappe PostScript-Programme

Adobe PostScript® ✦ Kompakte Programme ✦ Druckreife Grafiken ✦ PyX ✦ MetaPost

Adobe PostScript Logo

PostScript® (PS) ist Turing-vollständig; die Programme ergeben eine druckreife Vektorgrafik, welche z. B. mit ghostscript.com, GSview, inkscape.org oder okular.kde.org u. a. angezeigt werden kann.

Sowohl SVG als auch die HTML Canvas haben viel von PS geerbt. Durch die Möglichkeit zu rechnen, bleiben die PS-Anweisungen mit ganzen Zahlen exakt (acht signifikante Stellen in der Ausführung); soll jedoch am Ende eine SVG-Datei entstehen, ist das direkte Schreiben dieser in puncto Lesbarkeit meistens vorzuziehen. Gleiches gilt für diverse LaTeX-Pakete (z. B. tug.org/metapost) oder das Python pyx-project.org. Die Grafiken sind redundant gruppiert und/oder enthalten unnötige Attribute: (.py)/(.svg), (.mp)/(.svg); immerhin beide ohne nutzloses Begrenzen (clipping).

Klappe Moiré-Effekte II

Schachbrettmuster ✦ Dreieckmuster ✦ Wabenstruktur (Hexagonnetz) ✦ Carreaux miraculeux ✦ Fensterrosen (rosettenartige Moirébilder) ✦ Klammern, Wellen und 3D-Effekte ✦ Maurer-Rosetten ✦ Verfolgungskurven ✦ Konforme Abbildungen ✦ Fading Effekt ✦ Glass Muster und anderes

Schachbrettmuster

Moire aus Schachbrettmuster

Dreieckmuster

Wabenstruktur (Hexagonnetz)

Fensterrosen (rosettenartige Moirébilder)

Carreaux miraculeux

Klammern, Wellen und 3D-Effekte

Maurer-Rosetten

Maurer-Rosetten

Verfolgungskurven (Polygonschachtelung)

Konforme Abbildungen

Fading Effekt

Glass Muster und anderes

Achtung! Browser auf mobilen Geräten, welche auf ‹SVG Tiny› zurückgreifen, stellen Vektorgrafiken mit dem Element ‹pattern› als grobe Rastergrafik dar.

strichefront

Klappe Rekursive Grafiken

Schachtelungen in der Vektorgrafik ✦ Pfadgrafiken ✦ Höhere Ordnungen (Pfade) in rekursiven Grafiken

Vicsek Fraktal aus Quadraten

Selbstähnliche Figuren können sowohl durch Schachtelungen im Text der Vektorgrafik selber als auch durch Erzeugen eines Pfades mit einem externen Programm erstellt werden. Kombinationen der beiden Methoden ergeben oft eine willkommene Optimierung hinsichtlich Darstellungszeit versus Datenmenge.

  • Linienbaum (.svg)/(.pdf), Drachenbaum wikimedia.org, mit Zufallsfaktor r ∈ [0.6, 1] für die Astlänge (.svg)/(.pdf), HTML Canvas (.html), H-Baum (.svg)/(.pdf)
  • von Koch-Kurven (.svg)/(.pdf), Schneeflocke (.svg)/(.pdf), baumartige Variante (.pdf), quadratische Versionen (.svg)/(.pdf), (.svg)/(.pdf), Variante mit Zufallsfaktor r ∈ [0, 1] angewandt auf Winkel und Schrittweite (.svg)/(.pdf)
  • Peano-Kurve der Ordnung 2. Besonders schlagend sind in Grafiken dieses Typs relative Pfadkoordinaten: Auswurf meiner Vektorturtle 2.2 kB (.svg), optimiert durch Scour github.com mit Python ergibt 537 Bytes (.svg), rund 75% Reduktion! Es lohnt sich hier ein extra Skalierungsfaktor, um den schönen Pfad mit praktisch nur einstelligen ganzen Zahlen zu behalten; Ordnung 4 (.svg)/(.pdf) (9 bzw. 10 kB)
  • Hilbert-Kurve der Ordnung 7 in einem Pfad (.svg)/(.pdf) (nur 32 bzw. 37 kB!), Ordnung 9, zusammengesetzt aus 4096 H4 Polygonzügen (.svg)/(.pdf) (nur 2.3(!) bzw. 19 kB). Freilich kann man auch von H1 ausgehen, allerdings mit einem etwas grösseren Dokument und einer längeren Darstellungszeit, vgl. Basisschachtelungen weiter unten (.svg)
  • Polygonzug in Sierpiński-Dreieck der Ordnung 10 (.svg)/(.pdf), erzeugt durch die einfache Funktion (.txt); Gosper-Kurve der Ordnung 5 (.svg)/(.pdf), geschlossener Pfad (Szilard 1979, O4) (.svg)/(.pdf)
  • Papierstreifenfalt- oder Drachen-Polygonzug der Ordnung 15 (.svg)/(.pdf) (nur 41 bzw. 63 kB, wobei der letzte Iterationsschritt durch SVG ‹href› erreicht wird)
  • Basisschachtelungen in SVG-Dateien Vicsek-Fraktal (.svg)/(.pdf), T-Quadrat-Fraktal O(7) (.svg), O(8) (.svg)/(.pdf), Sierpiński-Dreieck von «Wereon» O(1) bis O(5) wikimedia.org, bis O(10) (.svg)/(.pdf); Sierpiński-Teppich von Johannes Rössel «Joey-das-WBF» O(6) wikimedia.org; solche Schachtelungen sind clever und extrem platzsparend, erforden aber zum Teil reichlich Zeit beim Rendern, wie die nächste Ordnung zeigt (.pdf)/(.svg), 4 kB, die es in sich haben!
    Variante mit Schweizer Kreuz O(0) - O(6) (.html); ein Kreuz ist ein Kreuz ist ein Kreuz (.svg)/(.pdf), farbenfroh: (.svg)/(.webp), (.svg)/(.webp)
    Rekursive Anordnung eines Zeichnungselements Fünfeck (.svg)/(.pdf) (1.2 kB / 2.7 kB), Sterne in Pentagon (.svg)/(.pdf), Eckige Spiralen (.svg)/(.pdf) (1.4 kB / 2.5 kB); mit einfachem Pfad (.svg)/(.pdf)
  • Pythagorasbaum (.svg)/(.pdf): wunderschönes Programm von Guillaume Jacquenot github.com, das er auf Matlab geschrieben und ins dazu gut kompatible python.org übersetzt hat. Ermöglicht damit Hinzunahme der ‹Colormaps› der matplotlib.org und vieles mehr.
  • Anstelle von rekursiv definierten Funktionen können «Lindenmayer-Systeme» (.html) implementiert werden. Gefällig und interaktiv hat dies Marek Fišer malsys.cz umgesetzt. Mit seinem «L-system processor» ist folgende Grafik erstellt (.svg)/(.pdf)
  • Hyperbolische Geometrie mit Jeremy Tan Jie Rui, «Singapore's original vector hacker» gitlab.com/parclytaxel: (.svg)/(.pdf)

Klappe Optische Täuschungen

Neon Farbeffekt ✦ Kontrastsehen ✦ Enigma Täuschung ✦ Kanizsa (nicht euklidisch) ✦ Anaglyphe ✦ Rotoreliefs

Für weitere optische Täuschungen siehe z. B.:

Einer der ersten, der sich wissenschaftlich mit der physiologischen Optik befasst, ist Hermann von Helmholtz: e-rara-21259, en français: gallica.bnf.fr.

Aus der ‹openclipart›

Penrose «Dreieck» openclipart.org [1a], [1b], «Wellen» [2], «Rotation» [3], «3D» [4], Farbvariante der «Fraser Spirale» [5], «Adelson Schatten» [6], Farbhintergrund [7], 3D [8].

Klappe Elektronische Blätter und Hefte

Karierte Blätter & Hefte 4 mm, 5 mm ✦ Linierte Hefte 9 mm A4, A6 ✦ Notenhefte und Blätter

sin1durchx

Diese Dokumente sind für den Gebrauch auf einem Tablet oder mobilen Gerät mit Stiftfunktion gedacht. Bitte beim allfälligen Ausdrucken die Wahl auf «tatsächliche Grösse» («Fit to printable area: none») belassen. Die Lineaturstärke beträgt dem Standard von TikZ gemäss 0.4 pt. Diesen Standard habe ich, von Spezialblättern abgesehen, übernommen.

Klappe Varia

Optimierte Darstellung von PDF und SVG Dokumenten ✦ Parkettierungen ganzer Seiten ✦ Vector Art ✦ Kurven ✦ Formeln in HTML

Optimierte Darstellung von PDF und SVG Dokumenten

  • SVG-Elemente in Pfade umwandeln? (.html), Python SVG Class Documentation and Optimisation Tools (.html)
  • DVI, EPS und PDF in SVG konvertieren dvisvgm.de, Rastergrafiken mit PIL pypi.org
  • PDFKit: pdfkit.org, CairoSVG: cairosvg.org, Reportlab: reportlab.com, PDF Association: pdfa.org
  • Klein, einfach und genau: Funktionswerte direkt in SVG-Pfad schreiben (.c), (.py), (plot.svg), (plot_scour.svg). Auch beim schlanken Asymptote ist die Anzahl Punkte unter bester Kontrolle (.asy), der Export hingegen (.svg) kommt nicht ohne unnötige Transformationsmatrix aus, also lassen wir sie einfach weg (.svg)
  • Besonders wendige Formen aus Liniensegmenten können mit SVG <stroke-linecap="round"> geschmeidig gemacht werden (.svg)/(.pdf). Ein ganzer Pfad ist hier wegen der Verjüngung der Konturstärke (noch?) nicht möglich.
  • Browservergleich beim Rendern von Vektorgrafiken: Firefox 85.0 (.png), (.png), Brave 1.19.88 (Chromium) (.png), (.png)
  • Kontrolle durch den Moiré-Effekt (.html)

Einige spezielle Vektor-Realisierungen

Formeln in HTML

Mathematik und HTML ist ein weites Feld (lange kein besonders ruhmreiches und ästhetisches…). Am besten erstellt man eine Vektorgrafik oder arbeitet via MathJax.org oder KaTeX.org, welche jedoch JavaScript voraussetzen.

Python batikInkscapeCairo SkarabaeusLaTeX Asymptote gnuplot