Помогите, как правельно реализовать код на С++ часы ?
вод код: #include <graphics.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <dos.h>
#include <time.h>
#define PATHTODRIVER "c:\TC\BGI"
#define G 0.0174532
void vector(int a,int l)
{
int x0,y0;//координаты початку вектора
int x1,y1;// коорд конца вектора
x0 = getx();
y0 = gety();
//l=10;
x1 = x0 + l * cos(a * G);
y1 = y0 - l * sin(a * G);
//int x2,y2;
//x2=(int)ceil(x1);
//y2=(int)ceil(y1);
lineto(x1,y1);
}
void clock1()
{
int x0 = 80;//коорд центра вектора
int y0 = 80;//коорд центра вектора
int d = 55;//диаметр
int s = 0;//время колво сек
int m = 0;// время колво мин
int ri = 0;
int as = 90;//углы наклонение стрелок
int am = 90;
int ax =90;
circle(x0,y0,d+5);
setfillstyle(SOLID_FILL,0);
do{
moveto(x0,y0);
setcolor(RED);
vector(ax,d-20);
moveto(x0,y0);
setcolor(YELLOW);
vector(as,d);
moveto(x0,y0);
setcolor(GREEN);
vector(am,d-10);
delay(1000);//1000
// steretb strelki
setcolor(BLACK);
//secyndnyy
moveto(x0,y0);
vector(ax,d-20);
moveto(x0,y0);
vector(as,d);
//min
moveto(x0,y0);
vector(am,d-10);
s++;
if(s>60)
{
m++;
s=0;
am-=6;// shag dvijenia min v gradusah
if(am<0){am=354;
ax-=33;//ax-=6;
//}
/*
if(m>60)
{
am=354;
ri++;
m=0;
ax-=30;
*/
}
}
as-=6;
if(ax<0)ax=354;
if(as<0)as=354;
// if(am<0)am=354;
}while( !kbhit() );// ojidania
}// najatia klavishi
int main()
{
int gd = DETECT;// драйвер
int gmode, i;//имя режима
int err;//имя ошибки
// int i;
initgraph(&gd, &gmode, "c:\TC\BGI\");// функция для подключения драйвера граф режима
err = graphresult();
if(err!=grOk)//ошибка подключения
{
printf("Graphics errors: %sn");
printf("Graphics error: %sn", grapherrormsg(err));
getch();
exit(1);
}
// cir[0].x1=80; cir[0].y1=30; cir[0].x2=80; cir[0].y2=40; cir[0].c=15;
//cir[1].x1=80;cir[1].y1=130;cir[1].x2=80;cir[1].y2=120; cir[1].c=15;
// cir[2].x1=30;cir[2].y1=80;cir[2].x2=40;cir[2].y2=80;cir[2].c=15;
//cir[3].x1=130;cir[3].y1=80;cir[3].x2=120;cir[3].y2=80;cir[3].c=15;// i lob
setcolor(15);
line(81,20,81,35); //verhny
line(80,140,80,125);// nuz
line(20,80,35,80); //liva
line(140,81,125,81);// prava
//vector();
clock1();
closegraph();
return 0;
}
P.S. помогите исправить ошибку хотя бы плиз, и механизм маятника скиньте...
закоментированное cir сори забыла стиреть...
что бы сделать в досе часы надо использовать периодическое секундное прерывание RTC - irq8 .
а для анимации прерывание интервального таймера .
маятник качается по синусоиде .