Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 13.11.2019, 14:31   #1 (permalink)
Bunvsem
Новичок
 
Регистрация: 13.11.2019
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Часы на Паскале

program Timer;
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.

Как в этом коде добавить минутную стрелку, скажите пожалуйста!
Bunvsem вне форума   Ответить с цитированием

Старый 13.11.2019, 14:31
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Пожалуйста, попробуйте поискать ответ в схожих обсуждениях

Часы kit ECL-132
БД на Паскале

Старый 13.11.2019, 16:11   #2 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Цитата:
Сообщение от Bunvsem Посмотреть сообщение
Line(x0,y0,x,y);
Эта команда рисует стрелку. Очевидно, что для добавления второй стрелки нужна еще одна команда Line, только с другими аргументами вместо X,Y
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 13.11.2019, 16:21   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Bunvsem Посмотреть сообщение
Как в этом коде добавить минутную стрелку, скажите пожалуйста!
Так она у Вас рисуется! Вот только...
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-графика, я бы Вам отладил программу.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 23:25.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.