Задача на тему «Рисование в QBasic».  Нарисовать узор на рисунке по вводным условиям: большой квадрат имеет сторону 160. Углы этого квадрата находятся в центрах квадратов со стороной 80. Большая окружность имеет центр в центре большого квадрата. Радиус окружности рассчитывается как сумма половин длин большого и малого квадрата.

Рассмотрим решение данной задачи. На изображение код и результат его выполнения.


1. Нарисуем большой квадрат со стороной 160. Левый верхний угол пусть имеет координаты (150,100) тогда правый нижний угол — (310,260).

LINE (150, 100)-(310, 260), 15, B

2. Теперь нарисуем четыре малых квадратика на углах большого. Для того, чтобы нарисовать квадрат, нужно знать координаты двух диаметрально противоположных точек. По условию задачи сторона маленького квадрата равна 80. Чтобы угол большого квадрата был в центре малого, нужно получить  координаты нужных нам точек малого квадрата: (150 -40, 100-40) и (150+40,  100+40).

Аналогично рассчитываются координаты остальных квадратов: если координаты угла (Х,У), то координаты диаметрально противоположных углов
(Х-40, У-40) и (Х+40, У+40)

3. Нарисуем окружность. Нужно определить ее центр. Сторона квадрата равна 160, значит координаты центра равны: (150+80, 100+80)=(230,180).

Теперь определим радиус: возьмем координату У большого квадрата для верхней стороны и прибавим к ней половину длины малого квадрата 40. Получим:
100+40=140

 

4. Нарисовать малые окружности не составит труда: центры в углах большого квадрата с координатами (150,100) и (310,260) и радиусы равны половине длины стороны малого квадрата 80/2=40.

5. Осталось рассчитать координаты отрезков.

 

Рассмотрим изображение выше. Да нем точки для двух отрезков (обозначены красным). Один конец отрезка нам уже известен — это угол уже нарисованного квадратика. Другие две точки вычисляются:
(150,100+40) и (150+40, 100).
40  — половинка длины малого квадратика.

Другие два отрезка вычисляются аналогично.

В итоге получаем следующий код

SCREEN 12

LINE (150, 100)-(310, 260), 15, B
LINE (110, 60)-(190, 140), 15, B
LINE (270, 60)-(350, 140), 15, B
LINE (110, 220)-(190, 300), 15, B
LINE (270, 220)-(350, 300), 15, B
CIRCLE (230, 180), 120, 15
LINE (310, 220)-(190, 140), 15
LINE (190, 140)-(270, 260), 15
CIRCLE (310, 260), 40, 14
CIRCLE (150, 100), 40, 14
LINE (270, 220)-(150, 140), 15
LINE (270, 220)-(190, 100), 15
Andrey K

Recent Posts

Решение задачи №6 и задачи №22 ЕГЭ по информатике 2021

Настала пора написать серию мини-обучалок по решению задач ЕГЭ по информатике версии 2021 года. В…

4 года ago

Внеурочное занятие по информатике. Пишем игру «Поле чудес» на Python.

Данная статья будет полезна для учителей информатики, которые занимаются программированием с детьми внеурочно. Опыт  показывает, …

4 года ago

Основные алгоритмы в помощь школьнику. Часть 1

Рассмотрим набор наиболее часто встречающихся задач на программирование в школьном курсе информатики. Добавляйте свои задачи…

5 лет ago

Школьный тур Всероссийской олимпиады школьников по информатике 9-11 класс (2018-2019). Разбор задач. Часть 2

В прошлый раз мы разобрали первые две задачи школьного тура Всероссийской олимпиады школьников, проводимой в…

6 лет ago

Школьный тур Всероссийской олимпиады школьников по информатике 9-11 класс (2018-2019). Разбор задач. Часть 1

Закончился школьный тур Всероссийской олимпиады школьников. Разберем первую и вторую задачи тура, проводимого в московских…

6 лет ago

Школьный этап Всероссийской олимпиады школьников по информатике 2017 (9-11 классы). Задача №4. «Плацкартный вагон»

Задача. В плацкартном вагоне 54 места, пронумерованных числами от 1 до 54. Вагон разбит на 9…

7 лет ago