Сформировать квадрат, закрашенный разными цветами - QBasic
Формулировка задачи:
Сформировать квадрат, закрашенный разными цветами с обеих сторон, вращающийся вокруг горизонтальной оси, расположенной в середине экрана.
Решение задачи: «Сформировать квадрат, закрашенный разными цветами»
textual
Листинг программы
SCREEN 9, , 1, 0 CONST pi = 3.14159265358# cv1 = 9: cv2 = 14: u = 0: spd = .5 DO: t = TIMER IF t <> TIMER THEN 'Sync u = u + spd: t = TIMER IF u > 2 * pi THEN u = u - 2 * pi IF u > pi THEN COLOR cv1 ELSE COLOR cv2 CLS 2 LINE (320 - 50, 175)-(320 + 50, 175 - SIN(u) * 100), , BF PCOPY 1, 0 'flip END IF LOOP WHILE INKEY$ = ""
Объяснение кода листинга программы
- Синтаксис и основные команды
SCREEN 9, , 1, 0
- начало работы программы, установка цвета фона на 9-й (белый), 14-й (чёрный), 1-й (синий) и 0-й (выключен) цвет соответственно.DO:
- начало цикла.IF t <> TIMER THEN 'Sync
- проверка, изменился ли таймер. Если это так, то происходит синхронизация.u = u + spd: t = TIMER
- увеличение переменнойu
на скоростьspd
, а затем обновление таймера.IF u > 2 * pi THEN u = u - 2 * pi
- проверка, не превышает ли значение переменнойu
2π. Если это так, то значение переменнойu
уменьшается на 2π.IF u > pi THEN COLOR cv1 ELSE COLOR cv2
- установка цвета на основе значения переменнойu
. Еслиu
больше π, то цвет становится 9-м (белым), в противном случае - 14-м (чёрным).CLS 2
- очистка экрана.LINE (320 - 50, 175)-(320 + 50, 175 - SIN(u) * 100), , BF
- рисование линии от (320-50,175) до (320+50,175-SIN(u)*100) с помощью функцииSIN
из константыpi
(π). Последний аргументBF
означает, что линия будет сплошной.PCOPY 1, 0
- поворот изображения на 180 градусов.
- Переменные
pi
- константа, равная 3.14159265358. Используется в формулеSIN(u)
.cv1
иcv2
- переменные, содержащие цвета 9 и 14 соответственно.u
- переменная, используемая для хранения угла.spd
- переменная, содержащая скорость, равную 0.5.
- Цикл
Цикл выполняется до тех пор, пока
INKEY$
не станет пустым. Это может произойти, когда пользователь нажимает клавишу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д