dfsubs.c

来自「gsac程序包」· C语言 代码 · 共 322 行

C
322
字号
#include <stdlib.h>#include <stddef.h>#include <string.h>#include "dosubs.h"#define LSTR 100static char str1[LSTR];static char str2[LSTR];void clospl(int mode );void openpl(int ls,char *s, int lc, char *c);#ifdef MSDOSvoid dfclip(INT *cmd, INT *X0,INT *Y0,INT *X1,INT *Y1)#elsevoid dfclip_(INT *cmd, INT *X0,INT *Y0,INT *X1,INT *Y1)#endif{	(*do_clip)( *cmd,  *X0, *Y0, *X1, *Y1);}#ifdef MSDOSvoid dfcont(INT *X0,INT *Y0)#elsevoid dfcont_(INT *X0,INT *Y0)#endif{	(*do_cont)( *X0, *Y0);}#ifdef MSDOSvoid dfcontrol(int *type, int *i1, int *i2, int *i3, int *i4)#elsevoid dfcontrol_(int *type, int *i1, int *i2, int *i3, int *i4)#endif{	(*do_control)( *type, *i1, *i2, *i3, *i4);}#ifdef MSDOSvoid dfcros(int *X0,int *Y0, char *c)#elsevoid dfcros_(int *X0,int *Y0, char *c, long lc)#endif{	(*do_cross)( X0, Y0, c);}#ifdef MSDOSvoid dfcurs(INT *curstyp)#elsevoid dfcurs_(INT *curstyp)#endif{	(*do_cursor)( *curstyp);}#ifdef MSDOSvoid dferas(INT *mode)#elsevoid dferas_(INT *mode)#endif{	INT pode;	pode = *mode;	(*do_erase)(pode);}#ifdef MSDOSvoid dffilr(INT *X0,INT *Y0,INT *X1,INT *Y1,	INT *patx,INT *paty,INT *lenx,INT *leny)#elsevoid dffilr_(INT *X0,INT *Y0,INT *X1,INT *Y1,	INT *patx,INT *paty,INT *lenx,INT *leny)#endif{	(*do_fillr)( *X0, *Y0, *X1, *Y1,		*patx, *paty, *lenx, *leny);}#ifdef MSDOSvoid dffils(INT *X0,INT *Y0,INT *ixy,INT *istnd,INT *iplmn)#elsevoid dffils_(INT *X0,INT *Y0,INT *ixy,INT *istnd,INT *iplmn)#endif{	(*do_fills)( *X0, *Y0, *ixy, *istnd, *iplmn);}#ifdef MSDOSvoid dffilt(INT *X0,INT *Y0,INT *X1,INT *Y1,INT *X2,INT *Y2,	INT *patx,INT *paty,INT *lenx,INT *leny)#elsevoid dffilt_(INT *X0,INT *Y0,INT *X1,INT *Y1,INT *X2,INT *Y2,	INT *patx,INT *paty,INT *lenx,INT *leny)#endif{	(*do_fillt)( *X0, *Y0, *X1, *Y1, *X2, *Y2,		*patx, *paty, *lenx, *leny);}#ifdef MSDOSvoid dffont(INT *Xi)#elsevoid dffont_(INT *Xi)#endif{	(*do_font)( *Xi);}#ifdef MSDOSvoid dfgsym(INT *X0,INT *Y0,INT *X1,INT *Y1,INT *n,char *s)#elsevoid dfgsym_(INT *X0,INT *Y0,INT *X1,INT *Y1,INT *n,char *s, long lstr)#endif{	(*do_gsymb)( *X0, *Y0, *X1, *Y1, *n, s);}#ifdef MSDOSvoid dfgwid(INT *wid)#elsevoid dfgwid_(INT *wid)#endif{	(*do_gwid)( *wid);}#ifdef MSDOSvoid dfinfo(INT *HasMouse,INT  *XminDev,INT  *YminDev, 	 INT *XmaxDev,INT  *YmaxDev,INT  *XminClip, 	 INT *YminClip,INT  *XmaxClip,INT  *YmaxClip, INT *Color)#elsevoid dfinfo_(INT *HasMouse,INT  *XminDev,INT  *YminDev, 	 INT *XmaxDev,INT  *YmaxDev,INT  *XminClip, 	 INT *YminClip,INT  *XmaxClip,INT  *YmaxClip, INT *Color)#endif{	(*do_info)(HasMouse,  XminDev,  YminDev, 	 	XmaxDev,  YmaxDev,  XminClip, 	 	YminClip,  XmaxClip,  YmaxClip, Color);}#ifdef MSDOSvoid dfmove(INT *X0,INT *Y0)#elsevoid dfmove_(INT *X0,INT *Y0)#endif{	(*do_move)( *X0, *Y0);}#ifdef MSDOSvoid dfpenn(INT *Xi)#elsevoid dfpenn_(INT *Xi)#endif{	(*do_pen)( *Xi);}#ifdef MSDOSvoid dfpont(INT *X0,INT *Y0)#elsevoid dfpont_(INT *X0,INT *Y0)#endif{	(*do_point)( *X0, *Y0);}#ifdef MSDOSvoid dfspce(INT *X0,INT *Y0,INT *X1,INT *Y1)#elsevoid dfspce_(INT *X0,INT *Y0,INT *X1,INT *Y1)#endif{	(*do_space)( *X0, *Y0, *X1, *Y1);}void gomesg(int cnt, char *mesg);#ifdef MSDOSvoid dfmesg(INT *lmesg,char *mesg)#elsevoid dfmesg_(INT *lmesg,char *mesg, long lstr)#endif{	int lst;	lst = *lmesg;	gomesg(*lmesg, mesg);}#ifdef MSDOSvoid dffilp(INT *narr,float *xarr,float *yarr, float * xold, float *yold,	float *xcur, float* ycur, float *xstp, float *ystp)#elsevoid dffilp_(INT *narr,float *xarr,float *yarr, float * xold, float *yold,	float *xcur, float* ycur, float *xstp, float *ystp)#endif{	float xx, yy;	INT i;	INT ilw, jlw;	INT *x, *y;	INT n;	n = *narr;	if((x = (INT *)calloc(n, sizeof(INT))) == NULL)		return;	if((y = (INT *)calloc(n, sizeof(INT))) == NULL)		return;	n = *narr;	for(i = 0 ; i < n ; i++){       		xx = 1000. * (xarr[i]* (*xstp) + *xold);       		yy = 1000. * (yarr[i]* (*ystp) + *yold);		if(xx > 1000000000.0)			ilw = 1000000000;		else if(xx < -1000000000.0)			ilw = -1000000000;		else			ilw = xx ;		if(yy > 1000000000.0)			jlw = 1000000000;		else if(yy < -1000000000.0)			jlw = -1000000000;		else			jlw = yy ;		x[i] = ilw;		y[i] = jlw;	}	(*do_fillp)(n,x,y);	free(x);	free(y);}#ifdef MSDOSvoid dfopen(char *lfname, char *lcname, INT *lstr, INT *lcon){	int lf, lc;	lf = *lstr;	lc = *lcon;	openpl(lf,lfname,lc,lcname);}#elsevoid dfopen_(char *lfname, char *lcname, INT *lstr, INT *lcon,		long lstr1, long lstr2){	int i;	int lf, lc;	lf = *lstr;	lc = *lcon;	for(i=0;i<lf;i++)		str1[i] = lfname[i];	str1[lf]='\0';	for(i=0;i<lc;i++)		str2[i] = lcname[i];	str2[lc]='\0';		openpl(lf,lfname,lc,lcname);}#endif#ifdef MSDOSvoid dfclos(int mode)#elsevoid dfclos_(int mode)#endif{	clospl(mode);}#ifdef MSDOSvoid dfgott(int *cnt, char *text)#elsevoid dfgott_(int *cnt, char *text, long lstr)#endif{	int ls;	ls = *cnt;	gottxt(ls,text);}#ifdef MSDOSvoid dfgint(long *cnt, char *s)#elsevoid dfgint_(long *cnt, char *s, long lstr)#endif{	int ls;	ls = *cnt;	gintxt(ls,s);	ls = strlen(s);#ifdef MSDOS	if(ls < *cnt)		s[ls++] = ' ';#else	s[ls] = ' ';#endif}void dv_gread(int lf,char *fname, INT NumX, INT NumY, INT LowX, INT LowY,        INT HighX, INT HighY, INT Num, INT Sclx, INT Scly);#ifdef MSDOSvoid dfread(INT *lfname,char *fname, INT *NumX, INT *NumY, INT *LowX,	INT* LowY, INT * HighX, INT *HighY, INT *Num, INT *Sclx, INT *Scly)#elsevoid dfread_(INT *lfname,char *fname, INT *NumX, INT *NumY, INT *LowX,	INT* LowY, INT * HighX, INT *HighY, INT *Num, INT *Sclx, INT *Scly, long lstr)#endif{	int lf;	lf = *lfname;	dv_gread(lf, fname, *NumX, *NumY, *LowX, *LowY,        	*HighX, *HighY, *Num, *Sclx, *Scly);}

⌨️ 快捷键说明

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