CAD动态时钟(默认走五分钟)

C语言实现的CAD动态时钟,默认走五分钟,利用C语言生成SCR文件,然后用AutoCAD2002加载SCR文件得到结果。

代码如下:

#include<STDIO.H>
#include<STDLIB.H>

void GenerateClock(FILE* fp)//生成钟表盘
{
	fprintf(fp,"circle 100,100 100\n");//画表盘
	fprintf(fp,"line 100,100 @40<90 \n");//画时针
	fprintf(fp,"-group c hourhand \nlast \n");//对时针编号
	fprintf(fp,"line 100,100 @60<90 \n");//画分针
	fprintf(fp,"-group c minutehand \nlast \n");//对分针编号
	fprintf(fp,"line 100,100 @70<90 \n");//画秒针
	fprintf(fp,"-group c secondhand \nlast \n");//对秒针编号
	for (int i=0;i<12;i++)
	{
		fprintf(fp,"line from 100,100 @100<%d @20<%d \n",i*30,180+i*30);
	}
	fprintf(fp,";");
}

void TimeTicker(FILE* fp)//走动过程
{
	int i,j;
	int hour,minute,second;
	hour=0;minute=0;second=0;
	fprintf(fp,"text 60,40 20 0 %d:%d:%d\n",hour,minute,second);
	fprintf(fp,"-group c text \nlast \n");//对文本编号
	for (i=0;i<5;i++)
	{
		second=0;j=0;
		for (j=0;j<60;j++)
		{
			fprintf(fp,"rotate g secondhand  100,100 -%d\n",6);
			second+=1;
			fprintf(fp,"text 50,40 20 0 %d:%d:%d\n",hour,minute,second);
			fprintf(fp,"rotate g minutehand  100,100 -%f\n",0.1);
			fprintf(fp,"rotate g hourhand  100,100 -%f\n",0.1/60.0);
			fprintf(fp,"delay 1000\n");
			fprintf(fp,"erase 60,40 \n");
		}
		minute+=1;
	}
}

int main()
{
	FILE* fp;
	if ((fp=fopen("Clock.scr","w"))==NULL)
	{
		printf("Files Opens Failed!\n");
		return 0;
	}
	GenerateClock(fp);
	TimeTicker(fp);
	return 0;
}


你可能感兴趣的:(CAD动态时钟(默认走五分钟))