Спасибо!!!
А вот с этим не поможете разобраться?! Это продолжение той же программы.
for i := 0 to 23 do
begin
Dec2Polar(i * 15, Yc - 40, P);
Circle(Round(P.x), Round(P.y), 2 + 3*Byte(i mod 2 = 0));
end;
{ SetLineStyle(0, 0, 3);}
while not keypressed do
begin
{ Erase }
SetColor(0);
Line(Round(P2.x), Round(P2.y), Round(P.x), Round(P.y));
Line(Round(P4.x), Round(P4.y), Round(P3.x), Round(P3.y));
Line(Round(P6.x), Round(P6.y), Round(P5.x), Round(P5.y));
GetTime(H, M, S, Hund);
{ Second arrow }
Dec2Polar((S + Hund/100) * 6, Yc - 50, P);
Dec2Polar((S + Hund/100) * 6, 5, P2);
{ Minute arrow }
Dec2Polar((M + S/60) * 6, Yc - 100, P3);
Dec2Polar((M + S/60) * 6, 5, P4);
{ Hour arrow }
Dec2Polar((H + M/60) * 30, Yc - 150, P5);
Dec2Polar((H + M/60) * 30, 5, P6);
{ Redraw }
SetColor(15);
Line(Round(P2.x), Round(P2.y), Round(P.x), Round(P.y));
SetColor(9);
Line(Round(P4.x), Round(P4.y), Round(P3.x), Round(P3.y));
SetColor(7);
Line(Round(P6.x), Round(P6.y), Round(P5.x), Round(P5.y));
у меня получилось так:
for i := 0 to 23 do Деления циферблата
begin
Dec2Polar(i * 15, Yc - 40, P);
Circle(Round(P.x), Round(P.y), 2 + 3*Byte(i mod 2 = 0)); в Турбо Паскале есть операция MOD -
получение остатка от целочисленного деления.
end;
{ SetLineStyle(0, 0, 3);} Устанавливает текущие толщину и цвет линии. (тип, образец,
толщина линии)
Цикл вывода стрелок
while not keypressed do Оператор цикла while с предпроверкой условия: пока не нажата клавиша
делать (выполнять) оператор
keypressed (Анализирует нажатие клавиши. Результат TRUE, если на клавиатуре нажата клавиша
(кроме Alt, Ctrl и т.п.), и FALSE в противном случае. Не задерживает исполнение программы.)
begin
{ Erase }
SetColor(0); Устанавливает основной цвет, которым будет осуществляться рисование
Line(Round(P2.x), Round(P2.y), Round(P.x), Round(P.y)); ROUND округляет REAL до ближайшего целого
Line(Round(P4.x), Round(P4.y), Round(P3.x), Round(P3.y));
Line(Round(P6.x), Round(P6.y), Round(P5.x), Round(P5.y));
GetTime(H, M, S, Hund); Процедура для работы с датой и временем, возвращает текущее время,
установленное в операционной системе. GetTime занимается тем, что берет текущую дату/время и
преобразует его к виду, переданному как параметр.
Затем полученная строка передается внешней программе или записывается в файл.
{ Second arrow } Стрелка часа
Dec2Polar((S + Hund/100) * 6, Yc - 50, P);
Dec2Polar((S + Hund/100) * 6, 5, P2);
{ Minute arrow } Стрелка минут
Dec2Polar((M + S/60) * 6, Yc - 100, P3);
Dec2Polar((M + S/60) * 6, 5, P4);
{ Hour arrow } Стрелка секунд
Dec2Polar((H + M/60) * 30, Yc - 150, P5);
Dec2Polar((H + M/60) * 30, 5, P6);
{ Redraw } Перерисовка
SetColor(15);
Line(Round(P2.x), Round(P2.y), Round(P.x), Round(P.y)); рисует линию от точки P2.x, P2.y к точке P.x, P.y
SetColor(9);
Line(Round(P4.x), Round(P4.y), Round(P3.x), Round(P3.y));
SetColor(7);
Line(Round(P6.x), Round(P6.y), Round(P5.x), Round(P5.y));
Round - это как бы цикл совершается вокруг этих точек :