СПО в российских школах

Команда ALT Linux рассказывает о внедрении свободного программного обеспечения в школах России
Декабрь 24, 2010

BASIC-256 Глава 8

Методические материалы
Автор: Владимир Черный

Продолжаем публиковать перевод книги Джеймса Рено. Эту главу перевел Сергей Ирюпин.
Оглавление:

Где взять BASIC-256

Глава 8: Графика на заказ — создание фигур своими руками

В этой главе мы покажем вам, как рисовать красочные слова и специальные фигуры в окне для вывода графики. Будут рассмотрены следующие моменты: форматированный текст, рисование многоугольников, оператор stamp, изменяющий расположение, размеры и даже способный вращать нарисованные фигуры. А также вы научитесь измерять углы в радианах.

Форматированный текст в окне для вывода графики

В первой главе вы познакомились с оператором print и смогли выводить строки и числа в окно ввода-вывода текста. Команды text и font позволяют размещать цифры и текст в окне для вывода графики.

1 # graphichello.kbs
2 clg
3 color red
4 font "Tahoma",33,100
5 text 50,50,"Привет."
5 font "Impact",33,50
6 text 50,100,"Привет."
7 font "Courier New",33,50
8 text 50,150,"Привет."

Программа 43: «Привет» в окне для вывода графики


Вывод программы 43: «Привет» в окне для вывода графики

font имя_шрифта, размер, насыщенность

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

Аргумент Описание
имя_шрифта Строка, содержащая имя системного шрифта. Шрифт должен быть предварительно установлен в системе. Общеупотребительные имена шрифтов Windows включают в себя: "Verdana", "Courier New", "Tahoma", "Arial", и "Times New Roman "1.
размер Высота текста в единицах изменения, известных как «точка». Стандартное разрешение монитора — 72 точки на дюйм.
насыщенность Число от 1 до 100, определяющими, насколько «темными» должны быть знаки. Используйте 25 для светлых, 50 для нормальных и 75 для «жирных» символов.
text x, y, выражение

Рисует строку символов, представленную выражением, в окне для вывода графики, при этом верхний левый угол позиционируется по координатам x и y. Использует шрифт, его размер и насыщенность, согласно последнему оператору font.


Рисунок 15: Общеупотребительные Windows шрифты

Изменения размеров окна для вывода графики

По умолчанию размер окна для вывода графики — 300х300 пикселей. Хотя этого достаточно для большинства программ, но для некоторых может оказаться слишком много или слишком мало. Оператор graphsize позволяет изменить размеры окна для вывода графики, установив требуемые именно вам ширину и высоту. Ваша программа также может использовать функции graphwidth и graphheight, чтобы получить текущие размеры этого окна.

1 # resizegraphics.kbs
2 graphsize 500,500
3 xcenter = graphwidth/2
4 ycenter = graphheight/2
5
6 color black
7 line xcenter, ycenter - 10, xcenter, ycenter + 10
8 line xcenter - 10, ycenter, xcenter + 10, ycenter
9
10 font "Tahoma",12,50
11 text xcenter + 10, ycenter + 10, "Центр в точке (" + xcenter + "," + ycenter + ")"

Программа 44: Изменение размера окна для графики


Вывод программы 44: Изменение размера окна для графики (фрагмент)

graphsize ширина, высота

Устанавливает размер окна для вывода графики, согласно указанным в параметрах ширине и высоте.

graphwidth или graphwidth()
graphheight или graphheight()
Функции возвращают текущую ширину и высоту окна графики для использования в вашей программе.

Многоугольник на заказ

В предыдущих главах мы научились рисовать прямоугольники и круги. Нередко нам требуется рисовать и другие фигуры. Оператор poly позволяет изобразить произвольный многоугольник в любом месте экрана.

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


Рисунок 16: Большая красная стрела

А теперь запишем координаты (x и y) точек, начиная с вершины и двигаясь по часовой стрелке.

1 # bigredarrow.kbs
2 clg
3 color red
4 poly {150, 100, 200, 150, 175, 150, 175, 200, 125, 200, 125, 150, 100, 150}

Программа 45: Большая красная стрела


Вывод программы 45: Большая красная стрела

poly {x1, y1, x2, y2 …}
poly числовой_массив
Рисует многоугольник, где пары координат (x1, y1), (x2,y2) … являются его вершинами.

Штампуем многоугольники

Оператор poly помещает многоугольник в заданное место на экране, однако будет сложно перемещать его или подогнать по размеру. Эти проблемы решаются с помощью оператора stamp. Оператор stamp позволяет задать позицию многоугольника в любом месте экрана и, если необходимо, указать масштабирование и поворот .

Давайте нарисуем равносторонний треугольник (все стороны одинаковой длины) на листе бумаги. Установим координаты вершины (0,0) и сделаем каждую сторону длиной 10 (смотрите рисунок 17).


Рисунок 17: Равносторонний треугольник

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

1 # stamptri.kbs
2 clg
3 color black
4 for x = 25 to 200 step 25
5     for y = 25 to 200 step 25
6         stamp x, y, {0, 0, 5, 8.6, -5, 8.6}
7     next y
8 next x

Программа 46: Заполнение экрана треугольниками

Вывод программы 46: Заполнение экрана треугольниками

stamp x, y, {x1, y1, x2, y2 …}
stamp x, y, масштаб, {x1, y1, x2, y2 …}
stamp x, y, масштаб, угол_поворота, {x1, y1, x2, y2 …}
Рисует многоугольник относительно точки (0,0), заданной координатами x и y. Дополнительно можно задать масштаб, где число 1 обозначает реальный размер (100%). Многоугольник также можно «повернуть», задав угол поворота по часовой стрелке в радианах (от 0 до 2π). Пары координат вершин, как и в операторе poly, можно задать числовым массивом.
Радианы от 0 до 2π Углы в BASIC-256 выражаются в единицах измерения, известных как радиан. Радианы измеряются в диапазоне от 0 до 2π. Прямой угол составляет π/2 радиан, а развернутый угол — π радиан. Вы можете перевести радианы в градусы по формуле r =d /180∗π


Рисунок 18: Градусы и радианы.

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

1 # stamptri2.kbs
2 clg
3 color black
4 for t = 1 to 100
5     x = rand * graphwidth
6     y = rand * graphheight
7     s = rand * 7
8     r = rand * 2 * pi
9     stamp x, y, s, r, {0, 0, 5, 8.6, -5, 8.6}
10 next t

Программа 47: Сотня произвольных треугольников


Пример вывода программы 47: Сотня произвольных треугольников

pi
Константа pi может использоваться в выражениях, для того, чтобы вам не пришлось запоминать значение π. Это значение примерно равно 3,14152.
В программе 47 добавьте команды так, чтобы выбирался случайный цвет для треугольников. А также создайте свой многоугольник для stamp.
Давайте пошлем какой-нибудь вашей знакомой цветы. Следующая программа рисует цветок, используя вращение и stamp.

Рисунок 19: Большая программа — цветы для тебя, заготовка для рисования лепестка цветка


1 # aflowerforyou.kbs
2 clg
3
4 color green
5 rect 148,150,4,150
6
7 color 255,128,128
8 for r = 0 to 2*pi step pi/4
9     stamp graphwidth/2, graphheight/2, 2, r, {0, 0, 5, 20, 0, 25, -5, 20}
10 next r
11
12 color 128,128,255
13 for = 0 to 2*pi step pi/5
14     stamp graphwidth/2, graphheight/2, 1, r, {0, 0, 5, 20, 0, 25, -5, 20}
15 next r
16
17 message$ = "Цветы для тебя."
18
19 color darkyellow
20 font "Tahoma", 14, 50
21 text 10, 10, message$
22 say message$

Программа 48: Большая программа — цветы для тебя

Вывод программы 48: Большая программа — цветы для тебя

—————————
1 В Linux также можно использовать стандартные MS Windows шрифты. Пользователям ALT Linux достаточно поставить пакет fonts-ttf-ms или скопировать ttf файлы из вашей легальной установки Windows в Linux (прим. редактора).
2 BASIC-256 использует значение π=3,141593. Первые 1000 знаков числа πможно найти в Википедии Первые 6 знаков π=3,14159 можно запомнить по фразе «Это я знаю и помню прекрасно», где количество букв в слове соответствует цифре в записи числа π (прим. редактора).

============================

Где скачать BASIC-256:

Для дистрибутивов ALT Linux

Windows версия
http://basic256.org (http://www.sourceforge.net/projects/kidbasic)

Как установить BASIC-256 в Linux

Для Альт Линукс: настроить репозиторий и обновить/установить пакет через synaptic или apt
Для rpm-based дистрибутивов: rpm -Uvh <имя_пакета>.rpm

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