• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Часы на Паскале

  • Автор темы Автор темы Bunvsem
  • Дата начала Дата начала

Bunvsem

Ученик
Регистрация
13 Ноя 2019
Сообщения
1
Реакции
0
Баллы
0
Часы на Паскале

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.

Как в этом коде добавить минутную стрелку, скажите пожалуйста!
 
Как в этом коде добавить минутную стрелку, скажите пожалуйста!
Так она у Вас рисуется! Вот только...
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-графика, я бы Вам отладил программу.
 
Назад
Сверху