Скачиваний:
109
Добавлен:
21.01.2014
Размер:
2.38 Mб
Скачать

4. Контрольные вопросы

                  1. Назначение и синтакис операторов DRAW, PAINT ?

Вопросы по процедуре выполнения индивидуального задания.

5. Библиографический список

                  1. Бобровский С. Программирование на языке QBASIC для школьников и студентов. — М.: Десс; Инфорком-Пресс, 1999. - 208 с.

                  1. Зельднер Г.А. Программируем на языке QuickBASIC 4.5. - М: ABF, 1996. - 432 с.

                  1. Введение в программирование на языке Microsoft BASIC: Учебное пособие / Ю.Я. Максимов, С.В. Осипов, А.В. Потемкин, Щ.С. Симоненков. - М.: ”Диалог-МИФИ”,1991. - 176 с.

Министерство образования

Российской Федерации

Тульский государственный университет

Кафедра “Инструментальные и метрологические системы”

Информатика

ЛАБОРАТОРНАЯ РАБОТА 22

Работа с графическими объектами и звуковым сопровождением

для студентов очного обучения

Тула 2000 г.

1. Цель и содержание работы

Целью работы является изучение принципов работы с графическими объектами звуком и музыкой.

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

2. Порядок выполнения работы

                  1. Изучить теоретическую часть.

                  1. Получить задание у преподавателя.

                  1. Выполнить задание.

                  1. Оформить отчет.

                  1. Защитить работу.

3. Теоретическая часть

GET

PUT

Операторы

GET сохраняет графический образ экрана. PUT выводит на экран образ,

сохраненный GET.

GET [STEP] (x1!, y1!) - [STEP] (x2!,y2!), имя_массива [(индекс%)]

PUT [STEP] (x1!, y1!), имя_массива [(индекс%)] [, действие]

  • STEP - указывает, что координаты задаются относительно текущей графической позиции курсора;

  • (х1!, y1!) - координаты левого верхнего угла образа, сохраненного GET, или положение на экране, где PUT выводит образ;

  • (х2!, y2!) - координаты правого нижнего угла сохраненного образа;

  • имя_массива - используется для записи изображения. Массив может быть любого числового типа;

  • индекс% - индекс массива, где начинается хранение образа;

  • действие - параметр, позволяющий накладывать образ на экран со специальными эффектами (XOR по умолчанию):

  • AND - объединяет сохраненный образ с существующим образом.

  • OR - накладывает сохраненный образ на существующий образ.

  • PSET - рисует сохраненный образ, стирая существующий образ.

  • PRESET- рисует сохраненный образ в реверсивном цвете, стирая существующий образ.

  • XOR - рисует сохраненный образ или стирает ранее нарисованный образ, храня при этом фоновые эффекты мультипликации.

  • Оператор PUT всегда должен выполнятся в том же режиме экрана, в котором использовался оператор GET для сохранения образа или в совместимом режиме.

  • GET считывает изображение с экрана в массив, PUT трансформирует изображение из массива на экран.

  • Размер массива в байтах:

4+INT(((x2!-x1!+1)*(бит_на_пиксел_в_слое)+7)/8)*cлои*((y2!-y1!)+1)

Число бит на точку в слое и число слоев зависят от спецификаций оператора SCREEN:

Режим экрана

Битов на точку в одном слое

Количество слоев

Количество байт на элемент

Числовой массив

1

2

1

2

целый

2

1

4

длинный целый

7

1

4

4

обычной точности

8

1

4

8

двойной точности

9

1

4

Операторы PUT и GET могут использоватся

10

1

2

для мультипликации и анимации, однако

11

1

1

лучше для этих целей использовать

12

1

4

специализированные библиотеки для

13

8

1

QuickBASIC

'Нужен цветной графический адаптер.

SCREEN 1

DIM Box%(1 TO 200)

x1% = 0: x2% = 10: y1% = 0: y2% = 10

LINE (x1%, y1%)-(x2%, y2%), 2, BF

GET (x1%, y1%)-(x2%, y2%), Box%

DO

PUT (x1%, y1%), Box%, XOR

x1% = RND * 300

y1% = RND * 180

PUT (x1%, y1%), Box%

LOOP WHILE INKEY$ = ""

POINT

Функция

Возвращает текущие графические координаты курсора и атрибут цвета заданной точки растра (элемента растра).

POINT {(n%) | (x%,y%)}

  • n% - указывает тип возвращаемых координат:

  • 0 - физическую координату Х.

  • 1 - физическую координату Y.

  • 2 - относительную координату Х.

  • 3 - относительную координату Y;

  • (x%,y%) - координаты точки растра, которую POINT проверяет на цвет.

  • Если координаты находятся за пределами текущей области просмотра, POINT возвращает -1.

  1. 'Нужен цветовой графический видеоадаптер.

SCREEN 1

LINE (0, 0)-(100, 100), 2

LOCATE 14, 1

FOR y% = 1 TO 10

FOR x% = 1 TO 10

PRINT POINT(x%, y%);

NEXT x%

PRINT

NEXT y%

PMAP

Функция

Преобразует относительные координаты окна графического вывода в физические, или наоборот.

PMAP (выражение#, функция%)

  • выражение# - преобразуемые координаты точки;

  • функция% - числовое значение (0-3), определяющее какую координату возвратить:

  • 0 - преобразует выражение к физической координате Х.

  • 1- преобразует выражение к физической координате Y.

  • 2 - преобразует выражение к относительной координате Х.

  • 3 - преобразует выражение к относительной координате Y.

  1. 'Нужен графический адаптер, поддерживающий режим экрана 1.

SCREEN 1

WINDOW SCREEN (0, 0)-(100, 100)

PRINT "Логическая x=50, физическая x="; PMAP(50, 0)

PRINT "Логическая y=50, физическая y="; PMAP(50, 1)

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

PCX Programmer’s ToolKit (в основном для рисования), VEGX for QuickBASIC (в основном для просмотра PCX- файлов и их перевода в формат VEGX) и др.

Операторы для работы со звуковым сопровождением

BEEP

Оператор

Генерирует звуковой сигнал через динамик компьютера.

BEEP

  • Звук генерируемый оператором аналогичен команде PRINT CHR$(7)

PLAY

Оператор

Играет музыкальные ноты.

PLAY строка

  • строка- следующих команд PLAY:

  1. Команды октавы и тона

Октава

Действие

Тон

Действие

Суфиксы

Действие

O n

Задает текущую октаву (0 - 6).

A - G

Играет ноту A-G (“до” - “си”) .

# или+

Играет ноту в режиме “диез”

< или >

Уменьшает или повышает октаву на 1

N n

Играет ноту n (0 - 84) в диапазоне семи октав (0 - пауза).

-

Играет ноту в режиме “бемоль”

Команды длительности и темпа

Длительность

Действие

Темп

Действие

L n

Задает длительность n каждой ноты (1 - 64). L1 - целая нота, L2 - 1/2 ноты и т.п.

P n

Задает паузу n (1 - 64). P1 - пауза в целую ноту, P2 - пауза в 12 ноты и т.д.

ML

Вид исполнения legato, т.е. ноты играются весь период установленный длительностью L.

T n

Задает темп исполнения в четвертях в минуту n (32-255). По умолчанию n = 120.

MN

Вид исполнения normal, т.е. ноты играются 7/8 периода установленного длительностью L.

.

Точка после ноты указывает на то, что она должна звучать 3/2 времени, указанного L. После ноты может

MS

Вид исполнения staccato, т.е. ноты играются3/4 периода установленного L.

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

Переключение звучания на основное или фоновое

Операция

Действие

MF

Устанавливает музыку, генерируемую операторами PLAY и SOUND, в основное звучание, т.е последующая нота звучит лишь по завершении предыдущей. Другие операторы приостанавливаются до завершения.

MB

Фоновое звучание, т.е каждая нота или звук (до 32) помещаются в буфер, позволяя другим операторам выполнятся, с музыкальным сопровождением.

  • Для выполнения подстрок команды PLAY из строки команды PLAY используйте команду "X": PLAY "X"+ VARPTR$(строка)

  1. ‘Тот самый кузнечик

PLAY”MFT240AEAEAG#G#P4G#EG#EG#AAP4”

PLAY”AEAEAG#G#P4G#EG#EG#AP2”

PLAY”ABB8B8B4B4>CC8C8CCC<BAG#AAP4”

PLAY” ABB8B8B4B4>CC8C8CCC<BAG#AP4”

PLAY(n)

Функция

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

PLAY (n)

  • n - любое числовое выражение.

  1. Music$ = "MBT180o2P2P8L8GGGL2E-P24P8L8FFFL2D"

PLAY Music$

WHILE PLAY(0) > 5: WEND

PRINT "Близко к завершению!"

SOUND

Оператор

Генерирует звук через динамик компьютера.

SOUND частота, длительность

  • частота - частота звука в Гц; значения находятся в пределах от 37 до 32767;

  • длительность - число тактов системных часов, в течение которых длится звук; значения - в диапазоне от 0 до 65535. Каждую секунду происходит 18.2 такта.

  • Если длительность равна нулю, звук, генерируемый текущим оператором SOUND, выключается.

  1. DO

FOR i=1 TO 10

SOUND 1195, .4

SOUND 2571, .4

NEXT i

LOOP

‘Иммитация телефонного звонка

Достаточно широкое распространение получили звуковые платы, а с ними - системы multimedia (аппаратные и программные средства, обеспечивающие работу с подвижными и неподвижными изображениями, анимированной компьютерной графикой и текстом, речью и высококачественным звуком). Для QuickBASIC были разработаны пакеты для программирования звуковых карт, например, библиотека QBXCTV (для карт - AdLib и Sound Blaster). Используя этот пакет совместно с пакетом VEGX вполне возможно создавать собственные профессиональные приложения с возможностями синтеза звука и изображения высокого класса не уступающие приложениям Windows, а по скорости работы значительно их превосходящие.