141 lines
5.1 KiB
TeX
141 lines
5.1 KiB
TeX
|
|
\RequirePackage{contour}
|
|
\newcommand{\clockAtick}[2]{%
|
|
% colors
|
|
\colorlet{minutes color}{blue!50!cyan!70!black}
|
|
\colorlet{bg hours 0}{yellow}
|
|
\colorlet{bg hours 1}{red!50}
|
|
\colorlet{hours color}{red!80!black}
|
|
% styles
|
|
\tikzset{
|
|
minutes/.style={circle,inner sep=0,text width=5mm,align=center,font=\bfseries},
|
|
minutes 0/.style={fill=minutes color,text=white,minutes},
|
|
minutes 1/.style={text=minutes color,fill=white,minutes},
|
|
minutes font/.style={font=\normalsize},
|
|
hours/.style={font=\fontsize{60}{66}\selectfont\bfseries,text=hours color,align=center},
|
|
mini hours font/.style={font=\fontsize{40}{46}\selectfont\bfseries},
|
|
}
|
|
% radii
|
|
\def\bigradius{80mm}
|
|
\def\minuteradius{75mm}
|
|
\def\hourradius{60mm}
|
|
\def\minihourminradius{25mm}
|
|
\def\minihourmaxradius{45mm}
|
|
\pgfmathsetmacro\minihourradius{(\minihourmaxradius + \minihourminradius)*.5}
|
|
\def\hourwidth{2mm}
|
|
\def\minutewidth{1mm}
|
|
|
|
% big circle
|
|
\filldraw [fill=white,draw=minutes color] (0,0) circle (\bigradius);
|
|
|
|
% minutes marks
|
|
\foreach \angle[count=\c from 0,evaluate={\c as \hourmark using notequal(int(mod(\c,5)),0)}]
|
|
in {0,6,...,354}{ \path (-\angle:\minuteradius) node[minutes \hourmark]{\c}; }
|
|
|
|
% hours marks
|
|
\foreach \angle[count=\c from 1,evaluate={\c as \col using int(mod(\c,2))}] in {30,60,...,360}{
|
|
|
|
\path (-\angle:\hourradius) node[hours]{\c};
|
|
|
|
\path[fill=bg hours \col]
|
|
(-\angle:\minihourminradius) -- (-\angle:\minihourmaxradius)
|
|
arc(-\angle:-\angle-30:\minihourmaxradius) -- (-\angle-30:\minihourminradius)
|
|
arc(-\angle-30:-\angle:\minihourminradius) -- cycle;
|
|
|
|
\path (-\angle-15:\minihourradius pt) node[mini hours font]{\textcolor{white}{\contour{hours color}{\c}}};
|
|
}
|
|
|
|
% hands
|
|
\pgfmathsetmacro\hourangle{-#1*30-#2*.5}
|
|
\pgfmathsetmacro\minuteangle{-#2*6}
|
|
\fill[rotate=\hourangle,fill=hours color] ++(0,\hourwidth) arc(90:270:\hourwidth) -- ++(50mm,0)
|
|
-- ++(\hourwidth,\hourwidth) -- ++(-\hourwidth,\hourwidth) -- ++(-50mm,0) -- cycle ;
|
|
\fill[rotate=\minuteangle,fill=minutes color] ++(0,\minutewidth) arc(90:270:\minutewidth) -- ++(70mm,0)
|
|
-- ++(\minutewidth,\minutewidth) -- ++(-\minutewidth,\minutewidth) -- ++(-70mm,0) -- cycle ;
|
|
}
|
|
|
|
\newcommand{\clockBtick}[2]{%
|
|
\draw (0,0) circle (2cm);
|
|
\foreach \angle / \label in
|
|
{0/3, 30/2, 60/1, 90/12, 120/11, 150/10, 180/9,
|
|
210/8, 240/7, 270/6, 300/5, 330/4}
|
|
{
|
|
\draw (\angle:1.8cm) -- (\angle:2cm);
|
|
\draw (\angle:1.4cm) node{\textsf{\label}};
|
|
}
|
|
\foreach \angle[count=\c from 0] in {0,6,...,354}
|
|
{
|
|
\draw (\angle:1.9cm) -- (\angle:2cm);
|
|
}
|
|
\draw[rotate=90] (0,0) -- (-#1*30-#2*30/60:0.7cm); % hours
|
|
\draw[rotate=90] (0,0) -- (-#2*6:1.2cm); % minutes
|
|
\path [fill=black] (0,0) circle (3pt);
|
|
\path [fill=red] (0,0) circle (1.5pt);
|
|
}
|
|
|
|
\newcommand{\clockA}{%
|
|
% colors
|
|
\colorlet{minutes color}{blue!50!cyan!70!black}
|
|
\colorlet{bg hours 0}{yellow}
|
|
\colorlet{bg hours 1}{red!50}
|
|
\colorlet{hours color}{red!80!black}
|
|
% styles
|
|
\tikzset{
|
|
minutes/.style={circle,inner sep=0,text width=5mm,align=center,font=\bfseries},
|
|
minutes 0/.style={fill=minutes color,text=white,minutes},
|
|
minutes 1/.style={text=minutes color,fill=white,minutes},
|
|
minutes font/.style={font=\normalsize},
|
|
hours/.style={font=\fontsize{60}{66}\selectfont\bfseries,text=hours color,align=center},
|
|
mini hours font/.style={font=\fontsize{40}{46}\selectfont\bfseries},
|
|
}
|
|
% radii
|
|
\def\bigradius{80mm}
|
|
\def\minuteradius{75mm}
|
|
\def\hourradius{60mm}
|
|
\def\minihourminradius{25mm}
|
|
\def\minihourmaxradius{45mm}
|
|
\pgfmathsetmacro\minihourradius{(\minihourmaxradius + \minihourminradius)*.5}
|
|
\def\hourwidth{2mm}
|
|
\def\minutewidth{1mm}
|
|
|
|
% big circle
|
|
\filldraw [fill=white,draw=minutes color] (0,0) circle (\bigradius);
|
|
|
|
% minutes marks
|
|
\foreach \angle[count=\c from 0,evaluate={\c as \hourmark using notequal(int(mod(\c,5)),0)}]
|
|
in {0,6,...,354}{ \path (-\angle:\minuteradius) node[minutes \hourmark]{\c}; }
|
|
|
|
% hours marks
|
|
\foreach \angle[count=\c from 1,evaluate={\c as \col using int(mod(\c,2))}] in {30,60,...,360}{
|
|
|
|
\path (-\angle:\hourradius) node[hours]{\c};
|
|
|
|
\path[fill=bg hours \col]
|
|
(-\angle:\minihourminradius) -- (-\angle:\minihourmaxradius)
|
|
arc(-\angle:-\angle-30:\minihourmaxradius) -- (-\angle-30:\minihourminradius)
|
|
arc(-\angle-30:-\angle:\minihourminradius) -- cycle;
|
|
|
|
\path (-\angle-15:\minihourradius pt) node[mini hours font]{\textcolor{white}{\contour{hours color}{\c}}};
|
|
}
|
|
|
|
\path [fill=black] (0,0) circle (3mm);
|
|
\path [fill=red] (0,0) circle (1.5mm);
|
|
}
|
|
|
|
\newcommand{\clockB}{%
|
|
\draw (0,0) circle (2cm);
|
|
\foreach \angle / \label in
|
|
{0/3, 30/2, 60/1, 90/12, 120/11, 150/10, 180/9,
|
|
210/8, 240/7, 270/6, 300/5, 330/4}
|
|
{
|
|
\draw (\angle:1.8cm) -- (\angle:2cm);
|
|
\draw (\angle:1.4cm) node{\textsf{\label}};
|
|
}
|
|
\foreach \angle[count=\c from 0] in {0,6,...,354}
|
|
{
|
|
\draw (\angle:1.9cm) -- (\angle:2cm);
|
|
}
|
|
\path [fill=black] (0,0) circle (3pt);
|
|
\path [fill=red] (0,0) circle (1.5pt);
|
|
}
|