Как сделать рисунок в qbasic

Обновлено: 07.07.2024

Иногда при изучении этой темы приходится сталкиваться с непониманием учащихся. "А зачем так сложно, если в любом графическом редакторе можно сделать то же самое?" Взгляд автора здесь таков. Да, в графическом редакторе можно нарисовать практически что угодно. Но, зная приемы программирования, создаются быстро такие элементы, на которые в графическом редакторе уйдет очень много времени и не будет возможности многократного повторения и внесения быстрых изменений в рисунок.

Прежде всего, необходимо сказать несколько слов о включении графических режимов. При входе в оболочку Бейсика по умолчанию включается текстовый режим, в котором можно производить вычисления и выводить результаты на экран. Но если мы хотим пользоваться графическими возможностями языка, то должны объяснить это компьютеру посредством включения графического режима командой screen 9.

Таких режимов несколько, но автор рекомендует пользоваться девятым режимом, потому что он обладает наибольшей разрешающей способностью и позволяет получать качественные графические объекты. После включения графического режима мы можем давать компьютеру команды рисования графических примитивов.

Замечание
Графический режим включается только один раз
.

В режиме screen 9 экран представляет собой координатную сетку с началом в левом верхнем углу, вправо от которого увеличивается координата X, а вниз – координата Y. Максимальное значение X на экране 640, a Y – 350 (рис. 1.4).


Рис. 1.4. Размеры и координаты экрана в режиме screen 9

Оценить 1437 0

Муниципальное бюджетное общеобразовательное учреждение

QBasic Графика

Соловьёва Екатерина Викторовна,

учитель высшей квалификационной категории

Урок 1. Введение в графический режим QBasic.

Знания и умения:Знать порядок установки графического режима, систему координат экрана, уметь определять координаты точек.

Существует два возможных режимах работы дисплея: текстовом и графическом. Помимо алфавитно-цифрового возможно еще и графическое представление результатов работы программ: построение графиков различных зависимостей, диаграмм, чертежей и т. д.

Оператор SCREEN N позволяет объявить нужный режим экрана. Номер N может меняться от 0 до 13.

В графическом режиме изображение представлено совокупностью отдельных точек – пиксель. В разных графических экранах разная разрешимость.

Например, команда SCREEN 7 задаёт экран разрешимостью320 х 200 пиксель –самое низкое разрешение, изображение получается грубое. Режим SCREEN 12 имеет разрешение в два раза больше. Но для начала работы стоит выбрать более простой режим SCREEN 7.

Система координат аналогична прямоугольной декартовой. Начало координат находится в левом верхнем углу, это точка с координатой (0, 0). Координаты могут быть только положительными и целочисленными, так как единицей изменения является одна экранная точка.

Графические операторы QBasic позволяют использовать 16 цветов. Цвет задаётся номером, который называется параметром цвета. Например, операторCOLOR C1, C2,где С1 – цвет рисунка, С2 – цвет фона, задаёт цвет фона и цвет рисунка.

Этот оператор рисует рамку-прямоугольник со сторонами, параллельными границам экрана. Точки (x1, y1) и (x2, y2) суть две вершины прямоугольника, расположенные по одной из его диагоналей. Если параметр цвет отсутствует, то будет нарисована белая рамка. (Но “лишняя” запятая должна остаться!)

Поскольку точки экрана представляют собой маленькие прямоугольнички, то попытка нарисовать квадрат оператором

LINE (20, 20)-(120, 120), , B

потерпит неудачу. Высота этого “квадрата” окажется больше, чем ширина, хотя обе стороны содержат одинаковое число пикселей. Уменьшим число точек в высоте “квадрата” в 1.2 раза (для SCREEN 1!) или во столько же раз увеличим ширину “квадрата” - только тогда мы получим истинный квадрат. Поправочный коэффициент назовем “коэффициентом вытянутости” пикселя.

Оператор LINE (x1, y1)-(x2, y2), [цвет], BF рисует такой же, но закрашенный прямоугольник.

Задача. Нарисовать на экране пирамиду из 10 ступенек-прямоугольников.

Решение. Воспользуемся тем, что пирамида имеет осевую симметрию. Расположим ось пирамиды посредине экрана. Пронумеруем прямоугольники сверху вниз числами от 1 до 10. Очевидно, что значения x1, y1, x2, y2 зависят от номера прямоугольника. В силу симметрии, чтобы получить x1, нужно от 160 вычесть что-то, а чтобы получить x2 - прибавить столько же.

Составим вспомогательную табличку.

Если обозначить через k номер ступеньки, получим формулы для вычисления x1 и x2:

x1 = 160 - 10*k
x2 = 160 + 10*k

Значения y1 и y2 также зависят от номера и высоты ступеньки h, где h - некоторая заранее заданная величина (например, h = 10):

y1 = 40 + h*k
y2 = y1 + h

Теперь можно составить программу. Задание. Запишите программу под именем PIRAMIDA.BAS. Измените высоту, ширину, цвет ступенек. Составьте пирамиду из закрашенных прямоугольников; из закрашенных прямоугольников с рамкой другого цвета.

Заметим, что использование переменной h для обозначения высоты ступенек позволяет проще изменять высоту ступеньки.

Новый язык быстро завоевал популярность благодаря своей простоте в изучении, особенно среди начинающих. Собственно, как и Pascal, Basic был предназначен для обучения.

Изначально разработка была по большей части теоретической. Но уже в середине 70-х годов появились первые персональные компьютеры, язык Basic подошел для них наилучшим образом - ведь он тогда занимал всего 4 Кб памяти.

В 1975 году два молодых программиста - Пол Аллен и Уильям Гейтс начали разрабатывать интерпретатор Бейсика для персонального компьютера Altair 8800. Вскоре родилась и компания Microsoft, а Basic оказался первым продуктом, выпущенным ею.

Basic был успешно перенесен на другие модели компьютеров, такие как Apple, Commodore и Atari. Затем интерпретатор был написан для только что появившегося IBM PC.

Будучи действительно весьма простым средством программирования,

Писать программы на ранних версиях Basic осложняли нумерованные строки, отсутствие структурных конструкций и типизации, а также интерпретируемость.

В середине 80-х годов компанией Microsoft был разработан QuickBasic (последняя версия 4.5). Это уже был полностью компилируемый язык, с структурными конструкциями, пользовательскими типами данных, причем еще и совместимый со старыми версиями (Basic и GW Basic). В конце 80-х годов насчитывалось около десятка систем Basic различных фирм-разработчиков [13, с. 57].

QBasic, в отличие от более ранних версий языка Basic, уже поддерживал современные средства модульного программирования. Это свойство поднимает его до современных языков программирования. К достоинствам этого языка также следует отнести то, что он: содержит хороший экранный редактор; не ограничивает длину программы; отменяет необходимость нумерации строк; предлагает операторы, позволяющие организовывать структуры внутри программ; поддерживает программные процедуры, вызываемые из основной программы; позволяет использовать локальные переменные.

С появлением Windows новая версия Basic названа Visual Basic.

Язык Basic менялся, приспосабливался к возможностям различных (все более мощных) машин. В конце 1993 года, одновременно с официальным объявлением о прекращении развития Basic/DOS, корпорация Microsoft объявила о намерении создать на основе VB новую универсальную систему программирования для прикладных программ, которая получила название Visual Basic for Applications (VB для приложений).

Первый вариант VBA 1.0 появился в составе MS Office 4.0, но лишь в программах Excel 4.0 и Project 6.0. В других же приложениях - Word 6.0 и Access 2.0 - были собственные варианты Basic. К тому же VBA 1.0 довольно сильно отличался (причем он имел ряд существенных преимуществ) от используемой тогда универсальной системы VB 3.0.

В конце 1996 года - после выпуска MS Office 97, в котором была реализована единая среда программирования VBA 5.0, включенная в программы Word, Excel и PowerPoint. Более того, VBA 5.0 использовала тот же самый языковый механизм и среду разработки, что и универсальная система VB 5.0.

В состав выпущенного пакета MS Office 2000 вошла соответственно версия VBA 6.0, используемая в шести программах - Word, Excel, PowerPoint, Access, Outlook, FrontPage.

QBasic - диалект языка программирования Basic, разработанный компанией Microsoft, а также среда разработки, позволяющая писать, запускать и отлаживать программы на этом языке.

Для запуска среды программирования QBasic необходимо перейти qbasic.exe. На экране появляется оболочка QBasic (рисунок 4).

Основное поле (голубого цвета) - окно редактора, в этом окне набирается текст программ. В верхней строке экрана расположены слова, образующие главное меню QBasic.

Среда разработки QBasic 4.5

Рис. 4. Среда разработки QBasic 4.5.

Программа на QBasic состоит из последовательности операторов. Оператор является основным элементом языка и описывает действия, которые необходимо выполнить для реализации алгоритма решения задачи. Он содержит служебное слово (имя оператора) и параметры.

Программные средства языка QBasic позволяют с графической информацией. Это обеспечивается языком графики, набором операторов и функций. Графические программные средства позволяют создавать на экране дисплея сложные изображения с различной глубиной свечения точек экрана, а также выводить одновременно с графической текстовую информацию [49, с. 101].

Как и в Turbo Pascal 7.0 элементарным изобразительным средством графического экрана в QBasic является чёрно-белая или цветная точка разной степени свечения. Местоположение всех точек на экране образует прямоугольную систему координат из горизонтальных строк (x) и вертикальных колонок (y).

Количество точек, которое может быть размещено на экране, зависит от разрешающей способности (средней или высокой). Разрешающая способность устанавливается оператором Screen.

При средней разрешающей способности горизонтальная строка содержит 320 точек, вертикальная - 200 точек. Точки нумеруются слева направо от х=0 до х=319 и сверху вниз от у=0 до у=199. Местоположение каждой точки задаётся её координатой. Имеются две формы задания координат точки: абсолютная и относительная. Абсолютная форма задания координаты точки имеет вид (х,у). Например, координата точки, которая находится в левом верхнем углу экрана, равна (0,0); координата точки в правом верхнем углу при средней разрешающей способности экрана дисплея равна (319,0); координата точки в левом нижнем углу при средней и высокой разрешающей способности равна (0,199).

Относительная форма предполагает задание координат относительно последней выведенной точки, осуществляемое с помощью операнда Step(x1, y1), где x1 и y1 - значения, которые прибавляются к координатам последней выведенной точки. Значения x1 и y1 могут быть положительными и отрицательными [51, с. 89].

При загрузке системы QBasic дисплей устанавливается системой в текстовый режим работы. Для задания графического режима используется оператор Screen, который устанавливает режим и параметры работы дисплея:

Screen режим, режим - целое выражение, устанавливающее режим экрана:

Screen 0 - текстовый режим;

Screen 1 - 320х200 графический режим.

Монитор воспроизводить 16 цветов, оператор Color [c],[f] позволяет выбрать цвет символов и цвет фона, где [c] - цвет символов, [f] - цвет фона.

Формат команд одинаков: сначала указываются координаты точки, а затем, если необходимо - номер цвета точки [45, с. 86].

Пример 1. Изобразить на экране бегущий отрезок.

For x=1 to 640

Preset (x-10,240)

Операторы Pset и Preset могут иметь еще следующие формы:

Pset Step (x, y)

Preset Step (x, y)

Step в этих операторах указывает на смещение точки относительно координат последней точки.

Оператор Line (x1,y1)-(x2,y2),[c] предназначен для рисования отрезка, соединяющего две произвольные точки экрана, где x1, y1 - координаты начала отрезка, а x2, y2 - координаты конца отрезка, c - цвет.

Если координаты начала отрезка опущены, то отрезок будет начинаться с координат последней точки.

В операторе Line можно использовать относительные координаты для начала или конца отрезка. Например:

Line Step (10, 10) - (100,165) будет нарисован отрезок от точки с координатами последней точки + 10, 10 до точки с координатами 100,165.

Конечно, можно нарисовать прямоугольник с помощью операторов Line,

повторяя их четыре раза для рисования четырех сторон, но можно для этой цели выбрать, более простой путь: Line (x1, y1)-(x2, y2), [c], B, Line (x1, y1)-(x2, y2), [c], BF, где:

B - параметр, указывающий на рисование прямоугольника;

BF - параметр, указывающий на рисование закрашенного прямоугольника;

x1,y1 - координаты верхнего левого угла прямоугольника;

x2, y2 - координаты правого нижнего угла прямоугольника.

В случае пропуска какого-либо параметра или параметров необходимо сохранить нужное количество разделительными запятыми.

Пример 2. Нарисовать несколько вложенных прямоугольников.

For i=1 to 5

Line Step (10, 10)-(200-I*10,200-I*10)

Результатом выполнения программы будет (рисунок 5):

Рис. 5. Результат выполнения программы.

С помощью оператора Circle (x,y),r,[c] можно нарисовать окружность, где x,y - координаты или смещение центра окружности r - радиус окружности.

Чтобы нарисовать дугу, эллипс или сектор окружности необходимо добавить новые параметры в оператор Circle (x,y),r,c,n,k,a, где:

x,y - координаты центра окружности;

r - радиус окружности;

n - начальная точка дуги, заданная в радианах;

k - конечная точка дуги, заданная в радианах;

a - отношение значений y- радиуса и x - радиуса. Для рисования окружности используются только параметры x,y и радиус. Для рисования дуги необходимо добавить значения параметров начальной и конечной точек [29, с. 56].

Значения параметров начальной и конечной точек задаются в радианах и должны иметь значения между 0 и радиан (2р =6.28). При рисовании дуги отсчет идет от начальной точки дуги до конечной в направлении против часовой стрелки. При отрицательных значениях этих параметров начальные и конечные точки дуги соединяются с центром соответствующей окружности. Таким образом, на экране получается изображение сектора окружности. Если отрицательным является значение только одного параметра, то и соединяться с центром окружности будет только одна точка дуги.

Rem рисование окружности, дуги и сектора

Circle (100,100), 30 ? окружность?

Circle (180,100), 30, 3, 1, 2 ? дуга?

Circle (260,100), 30, 3, -2, -1 ? сектор?

Для рисования эллипса нужно ввести в оператор Circle коэффициент отношения радиусов по осям y и x. Этот параметр определяет степень сжатия эллипса и может иметь любое положительное значение. Следующая программа представляет оператор Circle с использованием различных параметров:

Rem Рисование мордашки

Circle (100,100), 70

Circle (75, 75), 10, , ,2

Circle (125, 75), 10, , ,2

Circle (100,100), 5, , ,2

Line (100, 40) - (90, 60)

Line (100, 40) - (110, 60)

Line (100, 40) - (100, 60)

Circle (100,110), 20, , , 3.14, 0

Результатом выполнения программы будет (рисунок 6):

Рис. 6. Результатом выполнения программы

С помощью оператора Paint (x,y),c1,c2 можно закрасить замкнутую область в заданный цвет:

x, y - координаты любой точки из замкнутой области;

c1 - цвет, в который надо закрасить область;

c2 - цвет, которым нарисована граница области.

В графическом режиме можно выводить текст командой Print. Каждый видеорежим имеет собственное деление экрана на строки и столбцы. Например, в режиме 9 экран делится на 25 строк и 80 столбцов (как бы имитация текстового режима). Матрица символа имеет размеры 8х14 - восемь столбцов и 14 строк (640/80 и 350/25). Координаты выводимого текста можно указать с помощью обычной команды Locate, например [36, с. 155]:

Locate 12,44

На экране будет: А = 48. Текст выводится текущим цветом символов, который указан в последней выданной команде Color.

В строке символов записывается последовательность графических команд, причем каждая команда обозначена латинской буквой и целым числом (например, e10, c2 и т.д.). Движение пера начинается с текущей позиции курсора, а эту позицию можно установить оператором Pset или Preset.

Читайте также: