Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные Паскаль.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
780.93 Кб
Скачать

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

  1. Укажите назначение модуля Graph.

  2. Каким образом в среде Turbo Pascal подключается модуль Graph?

  3. В состав какого файла входит модуль Graph?

  4. При помощи каких процедур выполняется инициализация графического режима?

  5. Где расположено начало координат при работе дисплея в графическом режиме?

  6. Что выполняет процедура ClearDevice?

  7. При помощи какой процедуры выполняется завершение работы в графическом режиме?

  8. Укажите функции возвращающие размеры экрана по вертикали и горизонтали.

  9. Укажите процедуру осуществляющую вывод точки заданного цвета.

  10. Укажите процедуру осуществляющую вывод отрезка прямой.

  11. Укажите процедуру осуществляющую определение цвета вывода элементов.

Рекомендуемая литература

  1. Степанов А.Н. Информатика. Базовый курс. Учебник для ВУЗов. - Издательство "Питер", 2007. – 768с.

  2. Острейковский, В.А. Информатика : учебник для вузов / В.А.Острейковский .— 3-е изд.,стер. — М. : Высш.шк., 2005 .— 511с. : ил. — Библиогр.в конце кн. — ISBN 5-06-003533-6 /в пер./ : 128.74.

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

Графический режим в Turbo Pascal: вывод графических зависимостей (6 часов)

1 Цель работы

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

2 Краткая теоретическая справка

2.1 Особенности вывода текста в графическом режиме

При программировании графического вывода, а в частности графических зависимостей, весьма часто возникает проблема вывода текста. Чтобы иметь возможность вывода текстовой информации, среда Turbo Pascal поддерживает работу со шрифтами.

Шрифты представляют собой наборы символов однотипного начертания, называемого гарнитурой. Большинство шрифтов включают в себя прописные и строчные буквы, цифры, знаки препинания, а также некоторые дополнительные символы. Многие типы шрифтов образуют семейства, включающие различные размеры, которые называют кеглем, стили начертания (полужирный, наклонный или курсив и др.) и эффекты (подчёркивание, цвет символов и подчёркивания, верхние и нижние индексы и др.).

С точки зрения программиста по способу хранения информации о типе начертания символов шрифты делят на растровые и векторные.

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

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

2.2 Стандартные средства Graph, обеспечивающие вывод текста

Рассмотрим стандартные средства Graph, обеспечивающие вывод текста.

Процедура OutText (Txt: string); выводит текстовую строку Txt с текущего положения указателя.

При горизонтальном направлении вывода указатель смещается в конец выведенного текста, при вертикальном – не меняет своего положения. Строка Txt выводится в соответствии с установленном стилем и выравниванием. Если текст выходит за границы экрана, то при использовании векторных шрифтов он отсекается, а в случае стандартного матричного шрифта не выводится.

Процедура OutTextXY (X, Y: integer; Txt: string); отличается от процедуры OutText тем, что выводит текстовую строку Txt с заданного места, указанного графическими координатами X и Y.

Процедура SetTextStyle (Font, Direct, Size: word); устанавливает стиль текстового вывода на графический экран.

Здесь Font – тип шрифта, заданный его номером (кодом), Direct – код направления, Size – код размера (кегля) шрифта.

Тип шрифта может быть задан именами или значениями констант управления шрифтом модуля Graph:

Имя

константы

Код

(номер)

Файл

Содержание константы

DefaultFont

0

точечный (матричный) шрифт 8х8

TriplexFont

1

trip.chr

утроенный шрифт

SmallFont

2

litt.chr

уменьшенный шрифт

SansSeriFont

3

sans.chr

прямой шрифт

GothicFont

4

goth.chr

готический шрифт

5

scri.chr

"рукописный" шрифт

6

simp.chr

одноштриховый шрифт типа Courier

7

tscr.chr

наклонный шрифт типа Times Italic

8

lcom.chr

шрифт типа Times Roman

9

euro.chr

шрифт типа Courier увеличенного размера

10

bold.chr

крупный двухштриховый шрифт

Первые 5 констант определяют все шрифты для версий Паскаля 4.0 - 6.0. Для версии Turbo Pascal 7.0 и выше набор шрифтов был расширен и для него определены все 11 шрифтов.

Направление текста Direct задают именами или значениями констант:

const

HorizDir = 0; – направление текста слева направо,

VertDir = 1; – направление текста снизу вверх.

Размер любого шрифта может изменяться в 10 раз. Поэтому переменная Size может принимать значения от 1 до 10.

Так как процедуры OutText и OutTextXY в стандартном режиме способны выводить текст только слева направо, то направление вывода текста задают, вызвав предварительно процедуру SetTextStyle и задав в ней нужное направление вывода текста.

Процедура SetTextJustify (Horiz, Vert: word); задаёт горизонтальное Horiz и вертикальное Vert выравнивание выводимого текста по отношению к текущему положению указателя или к заданным координатам.

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

const

LeftText = 0; – указатель будет расположен слева от текста,

CenterText = 1; – текст будет расположен симметрично (слева и справа, сверху и снизу) относительно положения указателя,

RightText = 2; – указатель будет расположен справа от текста,

BottomText = 3; – указатель будет расположен снизу от текста,

TopText = 4; – указатель будет расположен сверху от текста.

Процедура SetUserCharSize (x1, x2, y1, y2: word); изменяет размер выводимых символов в соответствии с заданными пропорциями: x1/x2, y1/y2.

Процедура применяется только по отношению к векторным шрифтам. Для задания масштабного коэффициента необходимо задать численные значения переменным x1, x2, y1 и y2. Например, если x1 = 2, а x2 = 1, то ширина символов станет в два раза больше.

Чтобы отменить действие процедуры SetUserCharSize, следует после исчезновения надобности в ней обратиться к процедуре SetTextStyle, устанавливающей стандартные размеры символов.

Процедура GetTextSettings (var TextUnfo : TextSettingsType); возвращает текущий стиль и выравнивание текста.

Функция TextWidth (Txt: string); возвращает длину выводимой текстовой строки в пикселах. При этом учитываются текущий стиль вывода и коэффициенты изменения размеров символов, заданные процедурами SetTextStyle и SetUserCharSize соответственно.

Функция TextHeight (Txt : string): word; возвращает высоту шрифта в пикселах.

Функция InstallUserFont (FileName : string): integer; позволяет программе использовать нестандартный векторный шрифт. Функция позволяет расширить набор шрифтов, указанный ранее в таблице.

Здесь FileName – имя файла, содержащего векторный шрифт. Этот файл должен строиться по специальным правилам.

Функция InstallUserDriver (FileName: string; AutoDetectPtr: pointer): integer; включает нестандартный графический драйвер в систему BGI-драйверов. Эта функция предназначена в основном для разработчиков аппаратных средств и позволяет расширить набор стандартных графических драйверов.

Здесь FileName – имя файла, содержащего программу драйвера, Auto­DetectPtr – адрес точки входа в специальную процедуру автоопределения типа дисплея, которая в числе прочих процедур должна входить в состав драйвера.