Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите, как правельно реализовать код на С++ часы ?

88K
21 ноября 2014 года
nika18799
2 / / 21.11.2014
есть код но часовая стрелка не правильно работает. нужно добавить еще маятник, и кукушку которая будет появляться сколько раз сколько часов..
вод код: #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. помогите исправить ошибку хотя бы плиз, и механизм маятника скиньте...
88K
21 ноября 2014 года
nika18799
2 / / 21.11.2014
закоментированное cir сори забыла стиреть...
252
21 ноября 2014 года
koderAlex
1.4K / / 07.09.2005
девушка , почитайте про оформление кода : http://forum.codenet.ru/q72176/
что бы сделать в досе часы надо использовать периодическое секундное прерывание RTC - irq8 .
а для анимации прерывание интервального таймера .
маятник качается по синусоиде .
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог