Тема. Моделирование движения объектов.
Цель:
- изучить основные формулы для моделирования движения объектов
- написать программу моделирования стрелочных часов
Теоретическая часть
Точки на окружности
Задача. Имеется опорная точка с координатами < x0, y0 >. Необходимо нанести заданное ко-личество точек по воображаемой окружности с радиусом R вокруг опорной точки. Для ре-шения данной задачи представим себе часовой циферблат с нанесенными цифрами. Предпо-ложим, что первая точка всегда расположена на месте числа “12″. Тогда алгоритм решения будет выглядеть так:
Алгоритм 1. Нанесение точек по окружности
CircleXY (N,X0, Y0,R)
Pi=3.14159
a =360/N
g2r=pi/180
for i =0 to N do
begin
x =X0 – R* sin(a * i * g2r)
y =Y0 - R * cos(a * i * g2r)
DrawPoint(x, y)
end
Для рисования часовых отметок меток на циферблате можно использовать этот алго-ритм с N=12 а минутных – с N=60.
Имитация стрелочных часов
Задача заключается в том, чтобы выводить на экран изображение стрелочных часов, отсчитывающих время. Три стрелки – секундная, минутная и часовая должны перемещаться в соответствии с показанием компьютерных часов. Мы не будем здесь рассматривать про-грамму целиком, а остановимся лишь на принципиальных моментах.
Len_s, Len_m, Len_h – длины стрелок.
Hour, Min, Sec – текущее время.
Алгоритм 2. Расчет координат стрелок
Обладая показаниями часов можно вычислить координаты концов стрелок:
// для секундной
alfa=g2r*6*sec;
x_sec=x_center+len_s*sin(alfa);
y_sec=y_center-len_s*cos(alfa);
line(x_center, y_center, x_sec, y_sec);
// для минутной alfa=g2r*6*min; x_min=x_center+len_m*sin(alfa);
y_min=y_center-len_m*cos(alfa);
line(x_center, y_center, x_min, y_min);
// для часовой
alfa=g2r*30*sec*( Hour mod 12);
x_hour=x_center+len_h*sin(alfa);
y_hour=y_center-len_h*cos(alfa);
line(x_center, y_center, x_hour, y_hour);
Ход работы
1. Разработайте программу в соответствии со следующими требованиями:
а) возможность переключения между 12 / 24 часовым циферблатом;
б) отображение электронных часов, на циферблате;
Похожие записи
No user прокомментировали сообщение
Оставить комментарий