renephoenix.de

Rotationen mit PS-Tricks / LaTeX

Gerrit veröffentlichte heute ein Tutorial, wie man mit Adobe Illustrator es schafft, ein bestimmtes Objekt zu rotieren, also so daß es gleichmäßig im Kreis angeordnet ist und jeweils zum Kreisbogen gedreht ist – ein schönes Beispiel auch für die Leistungsfähigkeit von LaTeX. Bereits in meiner Diplomarbeit setzte ich eine einfache Abwandlung dieses Beispiels ein.

PSTricks ist ein leistungsfähiger Aufsatz für LaTeX, mit Hilfe von PostScript-Befehlen Grafiken zu erzeugen. Mit Hilfe bestimmter Erweiterungen wie pf für interne Berechnungen und multido für sich wiederholende Tätigkeiten lassen sich viele schöne Automatismen erstellen.

% Anzahl der Elemente
\newcommand*{\anzahl}{30}
% Berechnung des Winkels je Elemet 1 := 2/3
\FPdiv{\wert}{360}{\anzahl}
% Positionierung. \ra = Winkel für Position,  \rb= Drehung
\multido{\ra=0+\wert,\rb=270+\wert}{\anzahl}{\rput[c](4; \ra){\begin{rotate}{\rb}\includegraphics[width=0.3cm]{vorlage}\end{\rotate}}}

Zugegebenermaßen sind fortgeschrittene Kenntnisse in LaTeX notwendig, um diese drei Zeilen zu verstehen. In der ersten Zeile legen wir einen Parameter mit der Anzahl der Elemente fest. In der zweiten wird der Winkel zwischen zwei beliebigen Elementen bestimmt. Die dritte Zeile ist sehr komplex: (von innen nach außen)

  • includegraphics bindet die Datei „vorlage” (er sucht sich automatisch eine passende Endung, in dem Falle eps). Das Bild soll 0.3cm groß sein.
  • rotate dreht das Bild um den Winkel, der mit dem Parameter rb eingebunden wird.
  • rput positioniert das gedrehte Bild. Die Angabe erfolgt im Polarkoordinatensystem, d.h. es wird die Entfernung zum Mittelpunkt sowie der Winkel angegeben. Letzteres ist hier der Parameter ra
  • multido läßt diese Befehle wiederholen, der Parameter anzahl gibt an wie oft. Ebenso werden hier für jede Wiederholung die Werte für ra und rb festgelegt. Konkret zu lesen ist es so: im ersten Durchlauf ist ra 0, bei jedem weiteren erhöht es sich hier um den Winkel.

Da diese Grafik letztendlich programmiert ist, hat man auch die Macht, ohne nennenswerten Aufwand das Beispiel zu verändern. Nur durch Veränderung der Befehle ließe sich auch eine Spirale bauen.

Rotationen mit PS-Tricks / LaTeX - Quelltext

Datei herunterladen (LaTeX, 1.4 KiB)

\documentclass[12pt,a4paper,oneside]{scrreprt}

%% PS-Tricks
\usepackage{pst-pdf}
\usepackage{pstricks, pst-node, pst-plot, pst-math, pst-optic, pst-lens, pst-text, pst-xkey, pstricks-add}

%% Befehle wiederholbar
\usepackage{multido}
%% Drehung von einzelnen Objekten
\usepackage{rotating}
%% Mathematische Berechnungen
\usepackage{fp}

\begin{document}

\setlength{\parskip}{0.0ex}
\psset{xunit=1cm,yunit=-1cm,runit=1cm, nodesep=3pt,linewidth=1pt}
\begin{pspicture}(-5,-5)(5,5)

%% Anzahl der Elemente
\newcommand*{\anzahl}{30}
%% Berechnung des Winkels je Elemet
\FPdiv{\wert}{360}{\anzahl}
%% Positionierung. \ra = Winkel für Position, \rb = Inklusive Drehung.
\multido{\ra=0+\wert,\rb=270+\wert}{\anzahl}{\rput[c](4;\ra){\begin{rotate}{\rb}\includegraphics[width=0.3cm]{vorlage}\end{rotate}}}

\renewcommand*{\anzahl}{4}
\FPdiv{\wert}{360}{\anzahl}
\multido{\ra=0+\wert,\rb=270+\wert}{\anzahl}{\rput[c](3;\ra){\begin{rotate}{\rb}\includegraphics[width=0.6cm]{vorlage}\end{rotate}}}

\renewcommand*{\anzahl}{18}
\FPdiv{\wert}{360}{\anzahl}
\multido{\ra=0+\wert,\rb=270+\wert}{\anzahl}{\rput[c](2;\ra){\begin{rotate}{\rb}\includegraphics[width=0.2cm]{vorlage}\end{rotate}}}

\renewcommand*{\anzahl}{7}
\FPdiv{\wert}{360}{\anzahl}
\multido{\ra=0+\wert,\rb=270+\wert}{\anzahl}{\rput[c](1;\ra){\begin{rotate}{\rb}\includegraphics[width=0.3cm]{vorlage}\end{rotate}}}

\end{pspicture}
\end{document}

Bisherige Kommentare (0)

Es wurde noch kein Kommentar geschrieben!

Kommentar verfassen

Freiwillige Angabe
Freiwillige Angabe
Der Text kann mit Textile formatiert werden, z.B. *fett* _kursiv_ "link":url. Wie das geht?
Wieviel ist 40 plus 2?

Bisherige Trackbacks (0)

Es wurde noch kein Trackback empfangen!