Zeitintervall auf Analoguhr mit Latex generieren?

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Zeitintervall auf Analoguhr mit Latex generieren?

von ckemmer » Sa 16. Apr 2016, 20:21

Vielen Dank! Das hilft mir sehr weiter!

von iTob » Sa 16. Apr 2016, 10:01

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 …

von ckemmer » Fr 15. Apr 2016, 19:51

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.

Grafische Darstellung mit entsprechenden Paketen

von Stamm- » Fr 15. Apr 2016, 19:27

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.

Zeitintervall auf Analoguhr mit Latex generieren?

von ckemmer » Fr 15. Apr 2016, 14:48

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!

Nach oben