4 void draw_wind(Pixmap pix,
int r,
int s,
double data)
10 extern unsigned long qmap[16];
11 int i,x[3],y[3],dir,speed,gust,x0,y0;
12 int nul,mul,staff,barb;
17 speed=(data - dir*1000000)/1000;
18 gust=(data - dir*1000000 - speed*1000);
30 XDrawLine(
display,pix,
gc,x0+2,y0+2,x0+2,y0-2);
31 XDrawLine(
display,pix,
gc,x0+2,y0+2,x0-2,y0+2);
32 XDrawLine(
display,pix,
gc,x0-2,y0-2,x0+2,y0-2);
33 XDrawLine(
display,pix,
gc,x0-2,y0-2,x0-2,y0+2);
39 staff=staff + (speed/50) * 10;
42 angle=(double)(90-(dir));
44 x[1]= (double)staff*cos(angle*rad) +x[0];
45 y[1]=-(double)staff*sin(angle*rad) +y[0];
47 XDrawLine(
display,pix,
gc,x[0],y[0],x[1],y[1]);
53 XDrawString(
display,pix,
gc,x[0]+4,y[0]+4,kbuf,strlen(kbuf));
61 x[2]= (double)barb*cos((angle-90)*rad) +x[1];
62 y[2]=-(double)barb*sin((angle-90)*rad) +y[1];
63 XDrawLine(
display,pix,
gc,x[1],y[1],x[2],y[2]);
67 x[1]= (double)staff*cos(angle*rad) + x[0];
68 y[1]=-(double)staff*sin(angle*rad) + y[0];
69 XDrawLine(
display,pix,
gc,x[1],y[1],x[2],y[2]);
79 x[1]= (double)staff*cos(angle*rad) + x[0];
80 y[1]=-(double)staff*sin(angle*rad) + y[0];
82 x[2]= (double)barb*cos((angle-90)*rad) +x[1];
83 y[2]=-(double)barb*sin((angle-90)*rad) +y[1];
85 XDrawLine(
display,pix,
gc,x[1],y[1],x[2],y[2]);
91 mul=speed- mul*50 - nul*10;
98 x[1]= (double)staff*cos(angle*rad) + x[0];
99 y[1]=-(double)staff*sin(angle*rad) + y[0];
101 x[2]= (double)barb/2*cos((angle-90)*rad) +x[1];
102 y[2]=-(double)barb/2*sin((angle-90)*rad) +y[1];
103 XDrawLine(
display,pix,
gc,x[1],y[1],x[2],y[2]);
void draw_wind(Pixmap pix, int r, int s, double data)
sprintf(fbuf,"/usr/mapper/nexrad/ngrid.%02d-%02d-%02d-%02d", year, month, day, hour)