Рисуем в QBasic. Часть 3 (Разбор задачи)

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

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

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

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

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

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

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

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

basic18

 

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

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

basic19

 

Рассмотрим изображение выше. Да нем точки для двух отрезков (обозначены красным). Один конец отрезка нам уже известен — это угол уже нарисованного квадратика. Другие две точки вычисляются:
(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
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (4 голос, значение: 2,75 из 5)
Загрузка...
Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий

Антибот *