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