Сделаем программу, в которой цветной круг будет летать по экрану и отскакивать от краёв.
 
Что нужно знать для того, чтобы задать положение круга на экране?
Положение его центра (Х, Y) и радиус R. Для красоты круг можно рисовать некоторым цветом C
 
Что нужно знать, чтобы круг двигался?
Проекции его скорости на оси х и у: VX и VY.
 
На компьютере движение тела моделируется следующим образом:
Выбирается небольшой шаг времени DT, и с этим шагом каждый раз вычисляются новые координаты тела. Для прямолинейного движения формула будет:
X=X+VX*DT
Y=Y+VY*DT
 
Т.е. координата по оси Х будет той, что была, плюс то расстояние, на какое тело успело переместиться за время DT. Аналогично и для игрека.
 
Теперь как математически выразить отражение круга от края экрана?
Рассмотрим четыре его положения:
 
В положениях левее круга 1 и правее круга 3 происходит отражение от вертикальных границ. Это значит, что скорость VX должна поменять знак.
Если круг будет левее положения 1, то для него будет верным неравенство X<=R. Если он правее круга 3, то верно неравенство X>=600-R.
Поэтому команда отражения от вертикальных стенок будет выглядеть так:
IF X<=R OR X>=600-R THEN VX=-VX
 
В положениях ниже круга 2 и выше круга 4 менять знак должна скорость VY.
Поэтому, аналогично
IF Y<=R OR Y>=300-R THEN VY=-VY
 
Теперь сформулируем алгоритм, по которому круг будет летать по экрану
- Перевести      экран в графический режим
 
- Инициализировать      переменные
 
- Стереть      старое положение круга
 
- Просчитать      новое положение круга
 
- Нарисовать      круг
 
- Проверить      отражение
 
- Перейти      к пункту 3
 
 
Сделаем на основе алгоритма программу, используя соображения, приведённые ранее.
Пункт 1 реализуется двумя стандартными строками:
10 SCREEN 9
20 CLS
 
Пункт 2: зададим переменным случайные стартовые значения
30 X=60+RND*400
40 Y=60+RND*200
50 R=10+RND*40
60 C=INT(1+RND*15)
70 DT=0.1
80 VX=RND*20-10
90 VY=RND*20-10
 
Таким образом, координата центра круга по оси х будет в пределах от 60 до 460, по оси у – от 60 до 260, радиус круга – от 10 до 50, цвет – любым целым числом от 1 до 15 (именно до 15-ти, т.к. RND всегда строго меньше единицы).
Шаг времени задаём равным 0,1 секунды, если понадобится – отрегулируем потом. Проекции скорости по осям х и у будут в пределах от -10 до 10.
 
Пункт3. Чтобы стереть изображение, его нужно нарисовать нулевым цветом, т.е. чёрным
100 CIRCLE(X,Y),R,0
 
Пункт 4. Применяем выведенные формулы
110 X=X+VX*DT
120 Y=Y+VY*DT
 
Пункт 5 – рисуем круг в новых координатах
130 CIRCLE(X,Y),R,C
 
Пункт 6 – применяем выведенные формулы отражения
140 IF X<=R OR X>=600-R THEN VX=-VX
150 IF Y<=R OR Y>=300-R THEN VY=-VY
 
Пункт 7 – возвращаемся к пункту 3 алгоритма, т.е. к 100й строке программы
160 GOTO 100
 
Запускаем программу, наблюдаем, наслаждаемся плодами труда своего J
Итак, если вы всё внимательно делали и разобрались, то удовлетворительное написание рубежа вам обеспечено. Для хороших и отличных оценок нужно уметь моделировать гравитацию и движение нескольких тел. Это вопрос будет разобран с следующей статье.