draw_box2.c

来自「speech signal process tools」· C语言 代码 · 共 94 行

C
94
字号
/*--------------------------------------------------------------+|								|| draw_box -- draw labeled box in a form suitable for plotas	||								|| Shankar Narayan, EPI						|| Adapted by Joseph T. Buck. 					|| This version is a modification of the original draw_box.	||    by Ajaipal S. Virdy					||								|+--------------------------------------------------------------*/static char *sccs_id = "%W% %G% EPI";draw_box (xmin, xmax, xstep, xdp, ymin, ymax, ystep, ydp, ux, uy, lx, ly)double	xmin, xmax, xstep, ymin, ymax, ystep;int	ux, uy;		/* upper left corner coordinates */int	lx, ly;		/* lower right corner coordinates */{    char	xfmt[10], yfmt[10];    double	tmp;    int		ix, iy;    int		width, height;    (void) sprintf (xfmt, "%%g\n");    (void) sprintf (yfmt, "%%g\n");/*    (void) sprintf (xfmt, "%%5.%df\n", xdp);    (void) sprintf (yfmt, "%%5.%df\n", ydp);*/    printf ("\nc 1\n");    width = lx - ux;    height = ly - uy;    printf ("m %d %d\n", uy, ux);    printf ("d %d %d\n", uy, lx);    printf ("d %d %d\n", ly, lx);    printf ("d %d %d\n", ly, ux);    printf ("d %d %d\n", uy, ux);/*    printf ("d 500 5500\nd 3000 5500\nd 3000 500\nd  500 500\n"); */    printf ("c 2\n"); /* Draw vertical grid */    for (tmp = xmin; tmp <= xmax; tmp = tmp + xstep) {	ix = ux + width * (tmp - xmin) / (xmax - xmin);	printf ("m %d %4d\n", uy, ix);/*	printf ("m 500 %4d\n", ix); */	printf ("d %d %4d\n", ly, ix);/*	printf ("d 3000 %4d\n", ix); */	printf ("m %d %4d\nt 3 1\n", ly + 150, ix - 150);/*	printf ("m 3260 %4d\nt 5 1\n", ix - 150); */	printf (xfmt, tmp);    } /* Draw ticks */    for (tmp = xmin + xstep / 2; tmp <= xmax; tmp = tmp + xstep) {	ix = ux + width * (tmp - xmin) / (xmax - xmin);	printf ("m %d %4d\n", uy - 25, ix);/*	printf ("m 475 %4d\n", ix); */	printf ("d %d %4d\n", uy + 25, ix);/*	printf ("d 525 %4d\n", ix); */	printf ("m %d %4d\n", ly - 25, ix);/*	printf ("m 2975 %4d\n", ix); */	printf ("d %d %4d\n", ly + 25, ix);/*	printf ("d 3025 %4d\n", ix); */    } /* Draw horizontal grid */    for (tmp = ymin; tmp <= ymax; tmp = tmp + ystep) {	iy = ly - height * (tmp - ymin) / (ymax - ymin);	printf ("m %4d %d\n", iy, lx);/*	printf ("m %4d 5500\n", iy); */	printf ("d %4d %d\n", iy, ux);/*	printf ("d %4d 500\n", iy); */	printf ("m %4d %d\nt 3 1\n", iy + 30, 200);/*	printf ("m %4d 0\nt 5 1\n", iy + 100); */	printf (yfmt, tmp);    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?