Zeitintervall auf Analoguhr mit Latex generieren?

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


ckemmer
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 15. Apr 2016, 14:43

Zeitintervall auf Analoguhr mit Latex generieren?

Beitrag von ckemmer »

Hallo,

ich benötige für verschiedene Angaben von Zeitintervallen ("20 Minuten Zeit" oder "12 Minuten Zeit") eine grafische Darstellung etwa so, wie es ifsym mit \Interval für genau 20 Minuten liefert, also eine dargestellte Analoguhr mit ausgefülltem Bereich zwischen 0 und x Minuten, wobei x als natürliche Zahl übergeben wird.

Gibt es so etwas direkt in latex, damit ich nicht selbst zeichnen und Bilder einbinden muss? Ich habe nur die Pakete ifsym, analogclock und clock gefunden, die aber alle Analoguhren mit einer Uhrzeit anzeigen, nicht jedoch das ausgefüllte Intervall (wie bei einer "Eieruhr", die rückwärts läuft).

Kann jemand von euch helfen?

Danke!

Stamm-

Grafische Darstellung mit entsprechenden Paketen

Beitrag von Stamm- »

Was immer auch mit "direkt in LaTeX" gemeint sein soll gibt es so nicht. Da muss schon eine eigene Idee her. Du kannst ja einen Versuch mit »PGF/TikZ« oder »PSTricks« starten und dann an einem Minimalbeispiel auftretende Probleme veranschaulichen.

ckemmer
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 15. Apr 2016, 14:43

Beitrag von ckemmer »

Hallo,

gemeint war präziser: "Existiert ein Paket, das ich übersehen habe, das das Gewünschte liefert".

Ich werde dann mal schauen, ob ich die Bilder anderweitig erstelle oder ob ich mich ausgehend von http://tex.stackexchange.com/questions/ ... bered-face mal selbst versuche.

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Das ist eigentlich recht leicht zu implementieren:
\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage{xcolor}
\usepackage{tikz}

\colorlet{clockDraw}{black}% Umrandung der Uhr
\colorlet{clockBG}{white}% Hintegrund des Ziffernblattes
\colorlet{clockFill}{red}% Farbe des Intevalls

\def\clockSize{1.3ex}% Größe der Uhr
\def\clockShift{-0.8ex}% vertikale Verschiebung der Uhr

\newcommand{\clock}[2][0]{%
   \pgfmathsetmacro{\clockStart}{-360/60*#1+90}%
   \pgfmathsetmacro{\clockDelta}{-360/60*#2}%
   \tikz [baseline=\clockShift] {
      \fill [clockBG] circle [radius=\clockSize];
      \fill [clockFill] (0,0) -- (\clockStart:\clockSize)
         arc [radius=\clockSize, start angle=\clockStart, delta angle=\clockDelta];
      \draw [clockDraw] circle [radius=\clockSize];
   }%
}

\begin{document}
\section{Das \clock{20}-Intervall}

Es ist größer als \clock{10} und kleiner als \clock{60}.
Erst \clock{10}, dann nochmal \clock[10]{15}.

\tiny\bigskip\noindent
Es ist größer als \clock{10} und kleiner als \clock{60}.
\end{document}
Ich habe erstmal drei neue Farben definiert, dann ist es übersichtlicher, wenn man später mal die Farben ändert. Außerdem setze ich die Größe und die vertikale Verschiebung der Uhr als Variablen mit einer schriftgrößenabhängigen Einheit (deswegen kann hier auch nicht \setlength benutzt werden).

Die eigentliche Uhr zeichnet \clock, wobei das Intervall als Argument angeben wird und mit einem optionalen Argument kann zusätzlich der Startpunkt definiert werden. Der Rest ist TikZ/PGF und sollte eigentlich einigermaßen selbsterklärend sein ;-) wenn nicht: frag nach!

Viele Grüße
Tobi

PS: Es gibt jetzt keine Handhabung für Intervalle größer 60. Da sind die Kreise dann einfach komplett gefüllt …
Ich biete Hilfe, Beratung und Schulung für alle Fragen rund um TeX, Buchgestaltung und Textsatz, sowie Grafik- und Kommunikationsdesign.
Mehr Infos und Kontakt unter tobiw.de.

Hier schreibe ich über TeX: Mein Blog „TeX-Beispiel des Monats“ (Deutsch) und TeX.tips (Englisch).

ckemmer
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 15. Apr 2016, 14:43

Beitrag von ckemmer »

Vielen Dank! Das hilft mir sehr weiter!

Antworten