13.11.2019, 14:31 | #1 (permalink) |
Новичок
Регистрация: 13.11.2019
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Часы на Паскале
uses crt, GraphABC; var x0, y0, x, y, R, min, sec: integer; pic:Picture; begin SetWindowSize(400,400); Hidecursor; x0:=200; y0:=200; min:=0; sec:=0; R:=0; pic:=Picture.Create('timer.jpg'); SetPenColor(clBlack); repeat pic.Draw(0,0,400,400); sec:=sec+1; min:=sec div 60; x:=x0+Round(120*sin(Pi*sec/30)); y:=y0-Round(120*cos(Pi*sec/30)); SetPenWidth(5); Line(x0,y0,x,y); x:=x0+Round(100*sin(Pi*min/30)); y:=x0-Round(100*cos)Pi*min/30)); SetPenWidth(5); Line(x0,y0,x,y); sleep(1000); until min>=60; end. Как в этом коде добавить минутную стрелку, скажите пожалуйста! |
13.11.2019, 14:31 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Пожалуйста, попробуйте поискать ответ в схожих обсуждениях Часы kit ECL-132 БД на Паскале |
13.11.2019, 16:11 | #2 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Эта команда рисует стрелку. Очевидно, что для добавления второй стрелки нужна еще одна команда Line, только с другими аргументами вместо X,Y
__________________
Убить всех человеков! |
13.11.2019, 16:21 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Так она у Вас рисуется! Вот только...
1. Для значений секунд и минут нужно ввести по паре значений — например, sec_old, sec_new, min_old, min_new, т.е. "старые" и "новые". Исходные значения "старых" минут и секунд взять нулевыми. 2. Цикл построить так: а) Сосчитать (как это сделано у Вас) новые координаты ("_new") ОБЕИХ стрелок. б) Нарисовать стрелки (линии). в) Установить цвет, соответствующий цвету фона (белый). Если значения УГЛОВ минут и секунд НЕ СОВПАДАЮТ (тут можно несколькими способами это проверять, например, введя раздельные координати Xs, Ys, Xm, Ym и поставив соответствующее условие), то нарисовать линию секунд БЕЛЫМ цветом, используя sec_old. г) Присвоить СТАРЫМ секундам значения НОВЫХ (sec_old:=sec_new). д) Если значение минут ИЗМЕНИЛОСЬ, т.е. min_new>min_old, то нарисовать линию минут БЕЛЫМ цветом с использованием min_old. Присвоить СТАРЫМ минутам значение НОВЫХ (min_old:=min_new). д) Установить контрастный (черный) цвет. ВСЁ! P.S. К сожалению, Паскаля АВС не имею. Будь это Borland-графика, я бы Вам отладил программу. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|