【C语言】大家帮我看看呀,时钟没问题,下方的摆怎么有一部分摆过之后擦不掉(把摆单独运行没问题)

来源:百度知道 编辑:UC知道 时间:2024/06/08 09:57:24
大家帮我看看呀,时钟没问题,下方的摆怎么有一部分摆过之后擦不掉(把摆单独运行没问题),我不知道怎么回事啊,谢谢指教。

#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#include<math.h>
#include<dos.h>

#define pi 3.1415926
#define X(a,b,c) x=a*cos(b*c*pi/180-pi/2)+300;
#define Y(a,b,c) y=a*sin(b*c*pi/180-pi/2)+240;
#define d(a,b,c) X(a,b,c);Y(a,b,c);line(300,240,x,y)

void main()
{
int gd=DETECT,gm;
int x=300,y=240,r=60,i=0,j;
unsigned char h,m,s;
struct time t;
char n[12][3]={"3","2","1","12","11","10","9","8","7","6","5","4"};
initgraph(&gd,&gm,"");
circle(x,y,70);
circle(x,y,72); /*画圆*/
arc(300,250,0,180,100); /*时钟下边的钟摆框架*/
line(200,250,200,450);
line(200,450,400,450);
line(400,450,400,250);
line(200,315,400,315);
setco

以下初步改动,因为没有TC,而WIN C下的没有VGA的编程函数,所以无法给你调试.

for(j=600;j<1200;j++) /*钟下方的摆*/
{
setcolor(0);
line(300,315,300+100*cos((j-1)*M_PI/1800),315+100*sin((j-1)*M_PI/1800));
circle(300+100*cos((j-1)*M_PI/1800),315+100*sin((j-1)*M_PI/1800),5);
setcolor(1);
line(300,315,300+100*cos(j*M_PI/1800),315+100*sin(j*M_PI/1800));
circle(300+100*cos(j*M_PI/1800),315+100*sin(j*M_PI/1800),5);
}
for(j=1200;j>600;j--)//改为for(j=1199;j>=600;j--)
{
setcolor(0);
line(300,315,300+100*cos((j+1)*M_PI/1800),315+100*sin((j+1)*M_PI/1800));
circle(300+100*cos((j+1)*M_PI/1800),315+100*sin((j+1)*M_PI/1800),5);
setcolor(1);
line(300,315,300+100*cos(j*M_PI/1800),315+100*sin(j*M_PI/1800));
circle(300+100*cos(j*M_PI/1800),315+100*sin(j*M_PI/1800),5);
}

不是很清楚