Задача на тему «Рисование в QBasic».
Нарисовать узор на рисунке по вводным условиям: большой квадрат имеет сторону 160. Углы этого квадрата находятся в центрах квадратов со стороной 80. Большая окружность имеет центр в центре большого квадрата. Радиус окружности рассчитывается как сумма половин длин большого и малого квадрата. Рассмотрим решение данной задачи. На изображение код и результат его выполнения. LINE (150, 100)-(310, 260), 15, B 2. Теперь нарисуем четыре малых квадратика на углах большого. Для того, чтобы нарисовать квадрат, нужно знать координаты двух диаметрально противоположных точек. По условию задачи сторона маленького квадрата равна 80. Чтобы угол большого квадрата был в центре малого, нужно получить координаты нужных нам точек малого квадрата:(150 -40, 100-40) и (150+40, 100+40). Аналогично рассчитываются координаты остальных квадратов: если координаты угла (Х,У), то координаты диаметрально противоположных углов 3. Нарисуем окружность. Нужно определить ее центр. Сторона квадрата равна 160, значит координаты центра равны:(150+80, 100+80)=(230,180). Теперь определим радиус: возьмем координату У большого квадрата для верхней стороны и прибавим к ней половину длины малого квадрата 40. Получим:
4. Нарисовать малые окружности не составит труда: центры в углах большого квадрата с координатами(150,100) и (310,260)и радиусы равны половине длины стороны малого квадрата 80/2=40. 5. Осталось рассчитать координаты отрезков.
Рассмотрим изображение выше. Да нем точки для двух отрезков (обозначены красным). Один конец отрезка нам уже известен — это угол уже нарисованного квадратика. Другие две точки вычисляются: Другие два отрезка вычисляются аналогично. В итоге получаем следующий код 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
|