%%%%%%%%%%%%%%%%%% ifwea.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 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % weather symbols % by I.Kloeckl, ingo.kloeckl@2k-software.de pen normalpen; normalpen := pencircle scaled .75linewidth; % % centers of wind symbol % "BlueSky"; beginchar(0,4pt#,4pt#,0); pickup normalpen; draw fullcircle scaled 4pt shifted (2pt,2pt); endchar; "BlueSky3/4"; beginchar(1,4pt#,4pt#,0); pickup normalpen; draw fullcircle scaled 4pt shifted (2pt,2pt); fill quartercircle scaled 4pt shifted(2pt,2pt)--(2pt,2pt)--cycle; endchar; "BlueSky2/4"; beginchar(2,4pt#,4pt#,0); pickup normalpen; draw fullcircle scaled 4pt shifted (2pt,2pt); fill halfcircle scaled 4pt shifted (2pt,2pt)--(2pt,2pt)--cycle; endchar; "BlueSky1/4"; beginchar(3,4pt#,4pt#,0); pickup normalpen; draw fullcircle scaled 4pt shifted (2pt,2pt); fill halfcircle scaled 4pt rotated 180 shifted(2pt,2pt)--(2pt,2pt)--cycle; fill quartercircle scaled 4pt rotated -90 shifted(2pt,2pt)--(2pt,2pt)--cycle; endchar; "CloudySky"; beginchar(4,4pt#,4pt#,0); pickup normalpen; fill fullcircle scaled 4pt shifted (2pt,2pt); endchar; % % nice thermometers % def Thermo(expr n, height) = beginchar((char n),3pt#,10pt#,0); pickup pencircle scaled .5linewidth; fill fullcircle scaled 3pt shifted (1.5pt,1.5pt); pickup pencircle scaled .2linewidth; draw (0.5pt,2pt)--(0.5pt,9pt)..(1.5pt,10pt)..(2.5pt,9pt)--(2.5pt,2pt)--cycle; draw (1.5pt,2pt)--(1.5pt,9pt); path p; p := (1pt,1pt)--(2pt,1pt); for i=2 upto 8: draw p shifted(0, i*1pt); endfor; fill (1.2pt,2pt)--(1.2pt,height*1pt)--(1.8pt,height*1pt)--(1.8pt,2pt)--cycle; endchar; enddef; "Thermoa"; Thermo(5,3); "Thermob"; Thermo(6,4); "Thermoc"; Thermo(7,5); "Thermod"; Thermo(8,6); "Thermoe"; Thermo(9,7); "Thermof"; Thermo(10,8); "Thermog"; Thermo(11,9); % % popular weather symbols % "Sun"; beginchar(16,10pt#,10pt#,0); pickup normalpen; draw fullcircle scaled 5pt shifted (5pt,5pt); path p; p=(7.5pt,5pt)--(10pt,5pt); for i=0 upto 7: draw p rotatedaround ((5pt,5pt),(i*45)); endfor; endchar; "Halfsun"; beginchar(17,10pt#,10pt#,0); pickup normalpen; draw fullcircle scaled 5pt shifted (5pt,5pt); fill halfcircle--cycle scaled 5pt rotated (180) shifted (5pt,5pt); path p; p=(7.5pt,5pt)--(10pt,5pt); for i=0 upto 4: draw p rotatedaround ((5pt,5pt),(i*45)); endfor; endchar; "Nosun"; beginchar(18,10pt#,10pt#,0); pickup normalpen; fill fullcircle scaled 7pt shifted (5pt,5pt); endchar; "Fog"; beginchar(19,10pt#,10pt#,0); pickup pencircle scaled 0.5linewidth; for i=.1h step .1h until .9h: for j=0 step .3w until .7w: draw (j,i)--(j+.2w,i); endfor endfor endchar; "ThinFog"; beginchar(20,10pt#,10pt#,0); pickup pencircle scaled .25linewidth; for i=.1h step .1h until .9h: for j=0 step .3w until .7w: draw (j,i)--(j+.2w,i); endfor endfor endchar; "Rain"; beginchar(21,10pt#,10pt#,0); pickup normalpen; for i=1 step 2 until 7: draw (i*1pt,1pt)--((i+2)*1pt,4pt); draw((i+1)*1pt,5pt)--((i+3)*1pt,8pt); endfor; endchar; "WeakRain"; beginchar(22,10pt#,10pt#,0); pickup pencircle scaled .5linewidth; for i:=1 step 2 until 7: draw (i*1pt,1pt)--((i+1)*1pt,2pt); draw((i+1)*1pt,4pt)--((i+2)*1pt,5pt); draw((i+2)*1pt,7pt)--((i+3)*1pt,8pt); endfor; endchar; "Hagel"; beginchar(23,10pt#,10pt#,0); pickup pencircle scaled 4linewidth; drawdot(3pt,3pt); drawdot(1pt,8pt); drawdot(6pt,7pt); drawdot(1pt,1pt); drawdot(8pt,2pt); drawdot(3pt,6pt); drawdot(7pt,3pt); drawdot(3pt,8pt); drawdot(6pt,1pt); endchar; "Graupel"; beginchar(24,10pt#,10pt#,0); pickup pencircle scaled 2linewidth; drawdot(3pt,3pt); drawdot(1pt,8pt); drawdot(6pt,7pt); drawdot(1pt,1pt); drawdot(8pt,2pt); drawdot(3pt,6pt); drawdot(7pt,3pt); drawdot(3pt,8pt); drawdot(6pt,1pt); endchar; "Snow"; beginchar(25,10pt#,10pt#,0); pickup normalpen; path p[]; p1 = (0,0)--(4pt,0); p2 = (4pt,-1pt)--(3pt,0)--(4pt,1pt); for i:=0 upto 5: draw p1 rotated (i*60) shifted(5pt,5pt); draw p2 shifted(-2pt,0) rotated (i*60) shifted(5pt,5pt); draw p2 shifted(-1pt,0) rotated (i*60) shifted(5pt,5pt); draw p2 rotated (i*60) shifted(5pt,5pt); endfor; endchar; "Blitz"; beginchar(26,10pt#,10pt#,0); pickup normalpen; fill (6.4pt,10pt)--(8.7pt,8.4pt)--(5.6pt,4.1pt)--(4.4pt,4.9pt)--(2.4pt,2.1pt)-- (3.9pt,1.6pt)--(0,0)--(1.1pt,4pt)--(1.6pt,2.4pt)--(3.5pt,8.5pt)-- (5pt,6pt)--cycle; endchar; path cloud; cloud = (5.0pt,0.0pt){left}..{up}(0.0pt,3.2pt){up}..{right}(2.1pt,5.7pt){right}.. {dir -60}(4.0pt,4.2pt){dir 40}..{dir -40}(5.5pt,4.1pt){dir -40}.. {dir -80}(6.1pt,2.4pt){dir 60}..{right}(7.8pt,3.3pt){right}.. {down}(9.3pt,2.0pt){down}..{left}cycle; "Cloud"; beginchar(27,10pt#,6pt#,0); pickup normalpen; draw cloud; endchar; "RainCloud"; beginchar(28,10pt#,10pt#,0); pickup normalpen; draw cloud shifted(0, 4pt); for i=0 step 3 until 6: draw (i*1pt,1pt)--((i+1)*1pt,4pt); draw ((i+1)*1pt,0)--((i+2)*1pt,3pt); endfor; endchar; "WeakRainCloud"; beginchar(29,10pt#,6pt#,0); pickup normalpen; draw cloud shifted(0, 4pt); for i=0 step 3 until 6: draw (i*1pt,1pt)--((i+1)*1pt,4pt); endfor; endchar; "SunCloud"; beginchar(30,10pt#,10pt#,0); pickup normalpen; draw fullcircle scaled 4pt shifted (6pt,5pt); path p; p=(8pt,5pt)--(10pt,5pt); for i=0 upto 7: draw p rotatedaround ((6pt,5pt),(i*45)); endfor; unfill cloud; draw cloud; endchar; "SnowCloud"; beginchar(31,10pt#,10pt#,0); pickup normalpen; draw cloud shifted(0, 4pt); pickup pencircle scaled 2linewidth; drawdot(3pt,3pt); drawdot(6pt,2pt); drawdot(2pt,3pt); drawdot(1pt,0); drawdot(8pt,1pt); drawdot(9pt,3pt); drawdot(7pt,3pt); drawdot(4pt,0); drawdot(5pt,2pt); endchar; "FilledCloud"; beginchar(32,10pt#,6pt#,0); pickup normalpen; fill cloud; endchar; "FilledRainCloud"; beginchar(33,10pt#,10pt#,0); pickup normalpen; fill cloud shifted(0, 4pt); for i=0 step 3 until 6: draw (i*1pt,1pt)--((i+1)*1pt,4pt); draw ((i+1)*1pt,0)--((i+2)*1pt,3pt); endfor; endchar; "FilledWeakRainCloud"; beginchar(34,10pt#,6pt#,0); pickup normalpen; fill cloud shifted(0, 4pt); for i=0 step 3 until 6: draw (i*1pt,1pt)--((i+1)*1pt,4pt); endfor; endchar; "FilledSunCloud"; beginchar(35,10pt#,10pt#,0); pickup normalpen; draw fullcircle scaled 4pt shifted (6pt,5pt); path p; p=(8pt,5pt)--(10pt,5pt); for i=0 upto 7: draw p rotatedaround ((6pt,5pt),(i*45)); endfor; fill cloud; endchar; "FilledSnowCloud"; beginchar(36,10pt#,10pt#,0); pickup normalpen; fill cloud shifted(0, 4pt); pickup pencircle scaled 2linewidth; drawdot(3pt,3pt); drawdot(6pt,2pt); drawdot(2pt,3pt); drawdot(1pt,0); drawdot(8pt,1pt); drawdot(9pt,3pt); drawdot(7pt,3pt); drawdot(4pt,0); drawdot(5pt,2pt); endchar; %HalfWeakRainCloud 165 %CloudBlitz 166 def wind(expr n, strength) = beginchar((char n),0pt#,11pt#,0); pickup normalpen; draw (0,4pt)--(0,10pt); for k=0 upto strength/2: draw (0,(10-k)*1pt)--(-2pt,(11-k)*1pt); endfor if (strength mod 2 = 1): draw (0,(9.5-strength/2)*1pt)--(-1pt,(10-strength/2)*1pt); fi endchar; enddef; for j=0 step 1 until 10: wind(48+j,j); endfor; end. %%%%%%%%%%%%%%%%%% end of ifwea.gen %%%%%%%%%%%%%%%%%%%%%%%