%%%%%%%%%%%%%%%%%% ifclk.gen %%%%%%%%%%%%%%%%%%%%%%%
% (c) Ingo Kloeckl
% This program can be redistributed and/or modified under the terms
% of the LaTeX Project Public License Distributed from CTAN
% archives in directory macros/latex/base/lppl.txt; either
% version 1 of the License, or any later version.

% History
% 20.12.1999 v1.0  IK 
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% generates clock symbols with 5 min increment
% by I.Kloeckl, ingo.kloeckl@2k-software.de
% clock for hh:mm -> \symbol{hh*12+mm/5}

picture clk,	% Zifferblatt
	clkb,	% Zifferblatt mit Zeiger 13:00
	clks;	% Stopuhr

path button; button = (5.5pt,10pt)--(5.5pt,11pt)--(6pt,11pt)..
    (6.5pt,11.5pt)..(6pt,12pt)--(4pt,12pt)..(3.5pt,11.5pt)..
    (4pt,11pt)--(4.5pt,11pt)--(4.5pt,10pt)--cycle;

% Zifferblatt
beginchar(149,10pt#,10pt#,0); 
  pickup pencircle scaled .75linewidth;
  draw fullcircle scaled 10pt shifted (5pt,5pt);
  path s; s=(8pt,5pt)--(9pt,5pt);
  for i=0 upto 11:
    draw s rotatedaround ((5pt,5pt),(i*30));
  endfor;
  clk := currentpicture;
endchar;

n := 0;
for h=3 downto -8:
  for m=15 step -5 until -40:
    beginchar((char n),10pt#,10pt#,0); 
      currentpicture := clk;
      pickup pencircle scaled .75linewidth;
      draw (5pt,5pt)--(9pt,5pt) rotatedaround ((5pt,5pt),(m*6));
      draw (5pt,5pt)--(7pt,5pt) rotatedaround ((5pt,5pt),(h*30-(15-m)/2));
    endchar;
    n := n+1;
  endfor;
endfor;

% Taschenuhr
beginchar(150,10pt#,14pt#,0); 
  currentpicture := clk;
  pickup pencircle scaled .75linewidth;
  draw (5pt,5pt)--(9pt,5pt) rotatedaround ((5pt,5pt),0);
  draw (5pt,5pt)--(7pt,5pt) rotatedaround ((5pt,5pt),22.5);
  clkb := currentpicture;
  draw fullcircle scaled 4pt shifted (5pt,12pt);
  fill button;
endchar;

% Taschenuhr2
beginchar(148,11pt#,16pt#,0); 
  currentpicture := clkb shifted(0,1pt);
  pickup pencircle scaled .75linewidth;
  draw fullcircle scaled 12pt shifted (5pt,6pt);
  draw fullcircle scaled 4pt shifted (5pt,14pt);
  fill button shifted(0,2pt);
endchar;

% stop watch start
beginchar(151,12pt#,12pt#,0); 
  currentpicture := clk;
  pickup pencircle scaled .75linewidth;
  draw fullcircle scaled 2pt shifted (5pt,11pt);
  fill button rotatedaround((5pt,5pt),40);
  fill button rotatedaround((5pt,5pt),-40);
  clks := currentpicture;
  draw (5pt,5pt)--(9pt,5pt) rotatedaround ((5pt,5pt),90);
endchar;

% stop watch stop
beginchar(152,10pt#,12pt#,0); 
  currentpicture := clks;
  pickup pencircle scaled .75linewidth;
  draw (5pt,5pt)--(9pt,5pt) rotatedaround ((5pt,5pt),-60);
endchar;

% interval
beginchar(153,10pt#,10pt#,0); 
  currentpicture := clk;
  fill quartercircle scaled 10pt shifted(5pt,5pt)--(5pt,5pt)--cycle;
  fill quartercircle rotated -30 scaled 10pt shifted(5pt,5pt)
	--(5pt,5pt)--cycle;
endchar;

% Wecker
beginchar(154,14pt#,12pt#,0); 
  fill unitsquare xscaled 14pt yscaled 12pt;
  unfill fullcircle scaled 10pt shifted(7pt,6pt);
  currentpicture := currentpicture + clkb shifted(2pt,1pt);
endchar;

% another clock
beginchar(155,10pt#,10pt#,0);
  pickup pencircle scaled .75linewidth;
  draw fullcircle scaled 10pt shifted (5pt,5pt);
  fill fullcircle scaled 1pt shifted (5pt,5pt);
  draw (5pt,5pt)--(9pt,5pt) rotatedaround ((5pt,5pt),90);
  draw (5pt,5pt)--(7pt,5pt) rotatedaround ((5pt,5pt),60);
endchar;

end.
%%%%%%%%%%%%%%%%%% end of ifclk.gen %%%%%%%%%%%%%%%%%%%%%%%