Аналоговые часы 2

program Clock;
uses crt,graph,dos;
const x0=320;
      y0=240;
      r=160;
      rs=140;
var gd,gm,i,d,x,y:integer;
    xs,ys,xm,ym,xh,yh:integer;
    h,m,s,s0,hund:word;
    phi,psi,fi:real;
    ss,mm,hh,rez:string;

begin
    gd:=detect;
    initgraph(gd,gm,'C:\BP\BGI');
    setcolor(9);
    circle(x0,y0,r);
    phi:=pi/2;
    for i:=0 to 59 do begin
        if i mod 5=0 then d:=2 else d:=8;
        x:=x0+round(r*cos(phi));
        y:=y0+round(r*sin(phi));
        xs:=x0+round((rs+d)*cos(phi));
        ys:=y0+round((rs+d)*sin(phi));
        line(x,y,xs,ys);
        phi:=phi+pi/30;
    end;
    gettime(h,m,s,hund);
    settextstyle(defaultfont,horizdir,2);
    repeat
         phi:=s*pi/30-pi/2;
         psi:=m*pi/30+s/60*pi/30-pi/2;
         fi:=h*5*pi/30+m/12*pi/30-pi/2;
         str(s,ss);
         str(m,mm);
         str(h,hh);
         if s<=9 then ss:='0'+ss;
         if m<=9 then mm:='0'+mm;
         if h<=9 then hh:='0'+hh;
         rez:=hh+':'+mm+':'+ss;
         xs:=x0+round(rs*cos(phi));
         ys:=y0+round(rs*sin(phi));
         xm:=x0+round((rs-20)*cos(psi));
         ym:=y0+round((rs-20)*sin(psi));
         xh:=x0+round((rs-40)*cos(fi));
         yh:=y0+round((rs-40)*sin(fi));
         setcolor(2);
         line(x0,y0,xh,yh);
         setcolor(10);
         line(x0,y0,xm,ym);
         setcolor(14);
         line(x0,y0,xs,ys);
         setcolor(9);
         outtextxy(x0+125,y0-5,'3');
         outtextxy(x0-7,y0+125,'6');
         outtextxy(x0-140,y0-5,'9');
         outtextxy(x0-15,y0-140,'12');
         outtextxy(x0-63,y0+48,rez);
         s0:=s;
         while s=s0 do gettime(h,m,s,hund);
         setcolor(black);
         line(x0,y0,xh,yh);
         line(x0,y0,xs,ys);
         line(x0,y0,xm,ym);
         outtextxy(x0-63,y0+48,rez)
    until keypressed;
    closegraph
end.

Комментариев нет:

Отправить комментарий

Если у вас интересные исходники и вы не прочь поделиться, то присылайте daslex@yandex.ru с указанием Темы: Графика Паскаль
К вашей работе будет прикреплено ваше авторство и по желанию добавлена ссылка на ваш сайт.
На одну страницу - Одна работа. На одну работу - Одна ссылка + указание автора


Основное требование - это один файл .pas без сторонних модулей (только с родными. предпочтение Graph).
Можно использовать ассемблерные вставки.

Все что Запускается у меня и работает, я выкладываю. в этом блоге.
Яндекс.Метрика