Изобразить стрелочные часы - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

часы Помогите пожалуйста! На экране ровномерно распределены цифры от 1 до 12(часов) с центра экрана на цифры по очереди указывает стрелка в виде ромба. Каждый новый оборот стрелка меняет цвет. графическое изображение, анимация!

Решение задачи: «Изобразить стрелочные часы»

textual
Листинг программы
uses crt,graphABC,pointrect;
{ñòðåëêГ*-ðîìá}
procedure strelka(xc,yc,r,c:integer;u:real);
var p:array[1..5] of point;
    i:integer;
    a,r1:real;
begin
r1:=r/2/cos(pi/12);
p[1].x:=xc;
p[1].y:=yc;
p[5].x:=xc;
p[5].y:=yc;
p[3].x:=xc+round(r*cos(u));
p[3].y:=yc-round(r*sin(u));
p[2].x:=xc+round(r1*cos(u-pi/12));
p[2].y:=yc-round(r1*sin(u-pi/12));
p[4].x:=xc+round(r1*cos(u+pi/12));
p[4].y:=yc-round(r1*sin(u+pi/12));
setpencolor(c);
setbrushcolor(c);
polygon(p,5)
end;
var xc,yc,r,c,i,x,y:integer;
    u:real;
    s:string;
begin
xc:=windowwidth div 2;
yc:=windowheight div 2;
r:=150;
{Г·ГЁГ±Г«Г* îò 1 äî 12}
u:=pi/3;
for i:=1 to 12 do
 begin
  x:=xc+round((r+20)*cos(u));
  y:=yc-round((r+20)*sin(u));
  str(i,s);
  setfontsize(14);
  setbrushstyle(bsClear);
  {if i<10 then textout(x,y,s)
  else }textout(x-5,y-10,s);
  u:=u-pi/6
 end;
{îêðóæГ*îñòü Г·Г*ñîâ}
setpenwidth(3);
circle(xc,yc,r+30);
u:=pi/2;
setpencolor(clWhite);
c:=clrandom;
strelka(xc,yc,r,c,u);
{äâèæåГ*ГЁГҐ ñòðåëêè}
repeat
delay(500);
strelka(xc,yc,r,clWhite,u);
u:=u-pi/6;
strelka(xc,yc,r,c,u);
if abs(u-(-3*pi/2))<0.1 then{1 îáîðîò}
 begin
  u:=pi/2;
  c:=clrandom;
 end;
until keypressed
end.

Объяснение кода листинга программы

  1. В начале кода подключаются необходимые библиотеки crt, graphABC и pointrect.
  2. Затем объявляются переменные xc, yc, r и c, которые будут использоваться для рисования стрелочных часов. Значение r установлено на 150.
  3. Далее объявляется переменная u, которая будет использоваться для определения позиции стрелок на циферблате. Значение u установлено на π/3.
  4. Затем идет цикл for, который будет выполняться 12 раз. В каждой итерации цикла переменные x и y определяются как координаты точки на циферблате, и выводится значение i (от 1 до 12) и строка s.
  5. После этого устанавливается размер шрифта и стиль кисти на clear.
  6. Затем рисуется круг с радиусом r+30.
  7. После этого вызывается функция strelka, которая рисует стрелки часов. В качестве аргументов передаются xc, yc, r и c, а также u.
  8. После выполнения функции strelka, устанавливается цвет кисти на white и снова вызывается функция strelka, но уже с другими значениями xc, yc, r и c и u, которое изменяется на pi/2.
  9. Цикл повторяется до тех пор, пока не будет нажата клавиша.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5
Похожие ответы