Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_AYaII_buklet_maket (1).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
857.6 Кб
Скачать

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

  1. Как выполнить инициализацию графического режима?

  2. Как завершить работу графического режима?

  3. Какие примитивы графических объектов используются в BGI-графике?

  4. Какие предикаты реализуют графические примитивы?

  5. Что такое видеостраница, чем она характеризуется? Как организовать переключение видеостраниц?

  6. Что такое цветовая палитра? Назовите цветовые палитры, используемые в BGI-графике.

  7. Что такое шаблон заполнения? Охарактеризуйте стандартные шаблоны заполнения в BGI-графике.

  8. Как создать собственный шаблон заполнения?

  9. Как закрасить графический объект?

  10. Как создать собственный стиль линии?

  11. Назовите стандартные стили линий в BGI-графике.

  12. Как в графическом режиме вывести на экран текстовую информацию?

  13. Что такое пиксель, чем он характеризуется?

  14. Как получить текущие координаты курсора?

  15. Как переместить курсор в нужную позицию?

Приложение 6а

Предикаты BGI-графики и константы драйверов

В Турбо-Прологе 2.0 содержится целый набор весьма эффективных предикатов, типов данных и констант для работы с графическими изображениями. Турбо-Пролог 2.0 имеет в своем составе ряд программ драйверов для наиболее распространенных видеоадаптеров. Эти драйверы хранятся в файлах с расширением .BGI (Borland Graphic Interface). Для шрифтов используются файлы описаний .CHR.

Таблица 6А.1 – Предикаты для работы с графикой

Предикат

Назначение

arc(X,Y,StAngle,EndAngle,Radius)

(integer,integer,integer,integer,

integer) – (i,i,i,i,i)

Рисует дугу окружности с центром (X,Y), радиусом Radius от угла StAngle до угла EndAngle линией текущего цвета от горизонтальной оси против часовой стрелки

bar(Left,Top,Right,Bottom)

(integer,integer,integer,integer) –

(i,i,i,i)

Рисует закрашенный прямо-угольник с координатами левого верхнего угла (Left,Top) и правого нижнего (Right,Bottom)

bar3d(Left,Top,Right,Bottom,Depth, Topflag)

(integer,integer,integer,integer,intege r,integer) – (i,i,i,i,i,i)

Рисует закрашенный паралле-лепипед с параметрами:

Left,Top – координаты левого верхнего угла;

Right,Bottom – координаты правого нижнего угла;

Depth – глубина;

Topflag –верхняя грань (0 – отсутствует, 1 – присутствует)

circle(X,Y,Radius)

(integer,integer,integer) – (i,i,i)

Рисует окружность с координатами центра (X,Y) и радиусом Radius

Cleardevice

Очистка графического экрана. Указатель текущей позиции переносится в точку с координатами (0,0)

Продолжение табл. 6А.1

Предикат

Назначение

clearviewport

Очистка текущего графического окна

closegraph

Завершение работы в графическом режиме

detectgraph(Graphdriver,

Graphmode)

(integer,integer) – (o,o)

Проверка аппаратных средств и определение графического драйвера

drawpoly(PolyPointsList)

(bgi_ilist) – (i)

Рисование многоугольника по заданному списку координат

ellipse(X,Y,StAngle,EndAngle,

Xradius,YRadius)

(integer,integer,integer,integer,

integer,integer) – (i,i,i,i,i,i)

Эллиптическая дуга с центром (X,Y) от начального угла StAngle до конечного угла EndAngle, Xradius – горизонтальный радиус, Yradius – вертикальный радиус

fillellipse(X,Y,Xradius,YRadius)

(integer,integer,integer,integer) – (i,i,i,i)

Закрашенный эллипс с центром (X,Y), Xradius – горизонтальный радиус, Yradius – вертикальный радиус

fillpoly(PolyPointsList)

(bgi_ilist) – (i)

Рисование закрашенного многоугольника по заданному списку координат

floodfill(X,Y,Border)

(integer,integer,integer) – (i,i,i)

Закрашивает фигуру, контур которой нарисован цветом Border; X,Y – точка внутри контура

getarccoords(X,Y,Xstart,Ystart,

Xend,Yend)

(integer,integer,integer,integer,

integer,integer) – (o,o,o,o,o,o)

Возвращает параметры последнего использования предиката arc

getaspectratio(Xasp,Yasp)

(integer,integer) – (o,o)

Возвращает эффективную разрешающую способность графического экрана Xasp – по горизонтали, Yasp – по вертикали

getbkcolor(BkColor)

(integer) – (o)

Возвращает номер текущего цвета фона BkColor

Продолжение табл. 6А.1

Предикат

Назначение

getcolor(Color)

(integer) – (o)

Возвращает номер текущего цвета линии Color

getdrivername(DriverName)

(string) – (o)

Возвращает строку с именем текущего графического драйвера

getdefaultpalette(DefaultPalette)

(bgi_ilist) – (o)

Возвращает список значений, определяющий текущую палитру

getfillpattern(PatternList)

(bgi_ilist) – (o)

Возвращает список значений, определяющий текущий шаблон закрашивания

getfillsettings(FillPattern,FillColor)

(integer,integer) – (o,o)

Возвращает номера текущих стандартного шаблона и цвета заполнения

getgraphmode(GraphMode)

(integer) – (o)

Возвращает текущее значение графического режима

getimage(Left,Top,Right,Bottom,

BitMap)

(integer,integer,integer,integer,string) – (i,i,i,i,o)

Копирует прямоугольный участок видеопамяти с координатами Left,Top,Right,Bottom в буфер BitMap

getlinesettings(LineStyle,Upattern,

Thickness)

(integer,integer,integer) – (o,o,o)

Возвращает текущий стиль и толщину линии

Getmaxcolor(MaxColor)

(integer) – (o)

Возвращает наибольшее значение цвета используемой палитры

getmaxx(X)

(integer) – (o)

Возвращает максимальную координату по горизонтали

getmaxy(Y)

(integer) – (o)

Возвращает максимальную координату по вертикали

getmaxmode(MaxMode)

(integer) – (o)

Возвращает максимальный номер допустимого режима для загруженного графического драйвера

Getmodename(DriverMode,

ModeName)

(integer,string) – (i,o)

Возвращает строку ModeName с именем по заданному графическому режиму DriverMode

Продолжение табл. 6А.1

Предикат

Назначение

getmoderange(Graphdriver,Lomode,

Himode)

(integer,integer,integer) – (i,o,o)

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

getpalette(PaletteList)

(bgi_ilist) – (o)

Возвращает список значений текущей палитры

getpalettesize(PaletteSize)

(integer) – (o)

Возвращает размер таблицы цветов текущей палитры

getpixel(X,Y,Color)

(integer,integer,integer) – (i,i,o)

Возвращает цвет пикселя с координатами X,Y

gettextsettings(Font,Direction,

CharSize,Horiz,Vert)

(integer,integer,integer,integer,

integer) – (o,o,o,o,o)

Возвращает текущий шрифт текста Font, направление Direction, размер CharSize и параметры выравнивания текста по горизонтали и вертикали Horiz,Vert

getviewsettings(Left,Top,Right,

Bottom,Clip)

(integer,integer,integer,integer,

integer) – (o,o,o,o,o)

Возвращает параметры текущего графического окна, режим отсечения изображения

getx(X)

(integer) – (o)

Возвращает координату Х текущей позиции относительно начала окна

gety(Y)

(integer) – (o)

Возвращает координату Y текущей позиции относительно начала окна

graphdefaults

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

imagesize(Left,Top,Right,Bottom,

Size)

(integer,integer,integer,integer,

integer) – (i,i,i,i,o)

Возвращает размер Size (в байтах) для сохранения участка видеопамяти прямоугольника, заданного координатами (Left,Top), (Right,Bottom). Если требуется больше 64К памяти, то возвращается 0.

Продолжение табл. 6А.1

Предикат

Назначение

initgraph(Graphdriver,Graphmode,

NewDriver,NewMode,

Pathtodriver)

(integer,integer,integer,integer,string) – (i,i,o,o,i)

Инициализирует графическую систему и переключает монитор в графический режим. Graphdriver – номер драйвера. Graphmode – режим работы. Pathtodriver – путь к папке, хранящей файл драйвера. Параметры драйвера и режима работы см. в прил. 6Б.

NewDriver,NewMode

line(X0,Y0,X1,Y1)

(integer,integer,integer,integer) – (i,i,i,i)

Рисует линию от точки (X0,Y0) до точки (X1,Y1). Положение указателя не меняется

linerel(Dx,Dy)

(integer,integer) – (i,i)

Рисует линию от текущего положения указателя до точки со смещением Dx,Dy относительно текущего положения указателя. Указатель перемещается и позиционируется по заданному смещению

lineto(X,Y)

(integer,integer) – (i,i)

Рисует линию от текущего положения указателя до точки с координатами (X,Y). Указатель перемещается в точку с заданными координатами

moverel(Dx,Dy)

(integer,integer) – (i,i)

Перемещает указатель в точку со смещением (Dx,Dy) относительно его текущих координат

Moveto(X,Y)

(integer,integer) – (i,i)

Перемещает указатель в точку с координатами (Dx,Dy)

Outtext(Textstring)

(string) – (i)

В текущей позиции курсора выводит на экран строку Textstring,. Выравнивание текста выполняется в соответствии с параметром, установленным предикатом SetTextJustify

Продолжение табл. 6А.1

Предикат

Назначение

outtextxy(X,Y,Textstring)

(integer,integer,string) – (i,i,i)

В позиции курсора (X,Y) выводит на экран строку Textstring. Указатель текущей позиции не меняется. Выводимая строка обрезается по границам экрана.

pieslice(X,Y,Stangle,Endangle,

Radius)

(integer,integer,integer,integer,

integer) – (i,i,i,i,i)

Рисует и заполняет сегмент круга радиусом Radius с центром в точке X,Y от угла Stangle до угла Endangle

putimage(X,Y,Bitmap,Op)

(integer,integer,string,integer) – (i,i,i,i)

Содержимое буфера Bitmap выводится на участок видеопамяти, начиная от левого верхнего угла (X,Y). Op – тип двоичной операции копирования (прил. 6Б). Если изображение не помещается, оно не выводится

putpixel(X,Y,Pixelcolor)

(integer,integer,integer) – (i,i,i)

В точке (X,Y) рисуется пиксель цветом Pixelcolor

rectangle(Left,Top,Right,Bottom)

(integer,integer,integer,integer) – (i,i,i,i)

Рисует прямоугольник с координатами левого верхнего (Left,Top) и правого нижнего угла (Right,Bottom). Рисование выполняется линией со стилем и цветом, заданными до вызова данного предиката

Restorecrtmode

Восстанавливает видеорежим, установленый до инициализации графикки

setactivepage(Page)

(integer) – (i)

Устанавливает активную страницу Page для вывода графической информации

setallpalette(PaletteList)

(bgi_ilist) – (i)

Заменяет все цвета палитры цветами, заданными списком PaletteList. Первый параметр списка – размер палитры, остальные – значения цветов палитры

Продолжение табл. 6А.1

Предикат

Назначение

setaspectratio(Xasp,Yasp)

(integer,integer) – (i,i)

Изменяет текущие значения разрешающей способности экрана на Xasp и Yasp

setbkcolor(Color)

(integer) – (i)

Устанавливает текущий цвет фона Color, используя цвета текущей палитры

setcolor(Color)

(integer) – (i)

Устанавливает текущий цвет Color для рисования, используя цвета текущей палитры

setfillpattern(UpatternList,Color)

(bgi_ilist,integer) – (i,i)

Устанавливает задаваемый пользователем образец UpatternList и цвет Color для закрашивания фигур

setfillstyle(Pattern,Color)

(integer,integer) – (i,i)

Устанавливает один из стандартных образцов закрашивания фигур Pattern и цвет закрашивания Color

setgraphmode(Mode)

(integer) – (i)

Переводит видеосистему в заданный графический режим Mode и очищает экран

setgraphbufsize(BufSize)

(integer) – (i)

Изменяет размер буфера BufSize для попиксельного и сплошного заполнения фигур

setlinestyle(Linestyle,Upattern,

Thickness)

(integer,integer,integer) – (i,i,i)

Устанавливает стандартный стиль Linestyle или пользовательский шаблон Upattern для рисования линии. Thickness задает толщину линии

setpalette(Index,Actual_color)

(integer,integer) – (i,i)

Заменяет указанный цвет палитры Index другим цветом Actual_color

settextjustify(Horiz,Vert)

(integer,integer) – (i,i)

Устанавливает способ выравнивания текста по горизонтали Horiz и по вертикали Vert

settextstyle(Font,Direction,Charsize)

(integer,integer,integer) – (i,i,i)

Устанавливает шрифт Font, направление вывода Direction и размер символов Charsize

Продолжение табл. 6А.1

Предикат

Назначение

setusercharsize(Multx,Divx,Multy,

Divy)

(integer,integer,integer,integer) – (i,i,i,i)

Изменяет ширину и высоту в штриховых шрифтах Multx/Divx – коэффициент увеличения ширины символов; Multy/Divy - коэффициент увеличения высоты символов

setviewport(Left,Top,Right,Bottom,

Clip)

(integer,integer,integer,integer,

integer) – (i,i,i,i,i)

Устанавливает текущую область изображения окна (Left,Top,Right,Bottom) для вывода графической информации, Clip – условие вывода изображения при превышении размеров окна

setvisualpage(Pagenum)

(integer) – (i)

Делает видимой указанную видеостраницу.Pagenum

setwritemode(WriteMode)

(integer) – (i)

Устанавливает режим WriteMode занесения в память при рисовании линий

textheight(Textstring,Height)

(string,integer) – (i,o)

Возвращает высоту Height строки Textstring в пикселях

textwidth(Textstring,Width)

(string,integer) – (i,o)

Возвращает ширину Width строки Textstring в пикселях

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]