Пятница, 03.05.2024, 13:01
Приветствую Вас Гость | RSS

Язык программирования ПРОЛОГ

Графика Turbo Prolog v2.0

Графика Turbo Prolog v2.0

Имеется более 70 предикатов для работы с графикой. При работе с графикой в программе с помощью директивы компилятора include подсоединятеся текстовый файл GrapDecl.pro, в которм содержаться константы, испоьзуемые в графических предикатах (названия графических драйверов, режимы их работы, наименования цветов, стиль линий, коды возвращаемых ошибок, имена побитовых операций и другие).

Инициализация графического режима

initgraph (ГрДрайвер, ГрРежим, НовДрайвер, НовРежим, ПутьКДрайверу) (integer, integer, integer, integer, string) : (i, i, o, o, i)

Загружает драйвер сдиска или определяет уже загруженный драйвер и переводит систему в гарфический режим. Свзывает перменные Нов* с фактически загруженными драйверами  гр. режимами. ПутьКДрайверу описывает каталог, в котором ищется графический драйвер (*.bgi). Если необходимый драйвер не найден, то поиск повторяется в текущем каталоге. если путь пустой, то драйвера должны быть в текущем каталоге. При выполнении предиката возможны ошибки со следующими кодами:

6001 – невозможно определить гарфическую карту

6002 – невозможно найти файлы драйвера

6003 – неправильный драйвер

6004 – не хватает памяти для загрузки драйвера.

Чаще всего initgraph применяется в паре с предикатом

detectgraph (ГрДрайвер, ГрРежим)  (integer, integer) : (o, o)

include "grapdecl.pro”

predicates

      demo

clauses

      demo:- detectgraph (GraphDriver, GraphMode),

writef ("Определен гр. драйвер % и режим %\n”,

GraphDriver, GraphMode),

readchar (_), getmaxx(X), X2=X div 2,

getmaxy (Y), bar (0, 0, X2, Y), readchar (_), closegraph.

goal

      demo

/* Автоматическая инициализация

goal

      initgraph (detect, 0, _, _, " "), … , closegraph.

Графические предикаты TP v2.0

arc (X, Y, НачУгол, КонУгол, Радиус) (integer, integer, integer, integer, integer) (i, i, i, i, i) – рисует сектор круга.

bar (X1, Y1, X2, Y2) (integer, integer, integer, integer) : (i, i, i, i) – рисует заполненную полосу с координатами

circle (X, Y, Радиус) (integer, integer, integer) (i, i, i) – окружность

cleardevice – очистка экрана и установление пера в (0, 0) в текущем окне.

clearviewport – чистит текущее окно

closegraph – отключает графическую ситему, при этом освобождается память, выделенная для графической системы и восстанавливается предыдущий режим экрана.

drawpoly (СписокВершин) : (integer* ) (i) – рисует контур многоугольгика. Координаты первой и последней точки должны совпадать.

ellipse (X, Y, НачУгол, КонУгол, Храдиус, Урадиус) (integer, integer, integer, integer, integer, integer) (i, i, i, i, i, i) – рисует эллипс

fillellipse ( X, Y, Храдиус, Урадиус) – рисует и заполняет эллипс.

fillpoly (Список вершин) (integer *) – рисует и заполяет многоугольник

getarccoords (X, Y, Xнач, Унач, Хкон, Укон) (o, o, o, o, o, o) – получает координаты из последнего вызова arg5.

getaspectratio (Хотн, Уотн) (o, o)  - определяет отношение горизонтального и вертикального масштаба графического режима.

getbkcolor (ЦветФона) (integer) (o) – возвращает текущий цвет фона.

getcolor (Цвет) (integer) : (o) – возвращает текущий основной цвет

getdefaultpalette (ПалитраУмолч) (integer) (o) – палитра, заданная по умолчанию.

getdrivername (ИмяДрайвера) (string) : (o) – возвращает имя загруженного драйвера.

getfillsettings (Шаблон, Цвет) (integer, integer) : (o, o) – информация о текущем шаблоне заполнения и цвете. Существует 11 заранее определенных шаблонов, описанных в модуел. Если шаблон = 12, то используется шаблон, определенный пользователем.

getfillpattern (Шаблон) (integer *) : (o) – возвращает шаблон заполнения, определенный пользователем с помощью setfillpattern. Шаблон имеет 8 сегментов, каждый 1 байт, отражающий на экране 8 пикселов. если бит равен 1 , то он отображается на экране.

getgraphmode (ГрРежим) (integer) : (o) – возвращает значение текущего графического режима. Когда вызывается предикат, режим уже должен быть установлен.

getimage (ЛевВерт, ПравНиз, ДвоичнМассив) (integer, integer, integer, integer, string) (i, i, i, i, o) – сохраняет битовое изображение, описанное прямоугольной областью экрана в памяти.

getmaxcolor (МаксЦвет) (integer) : (o) – максимальное значение цвета пиксела для текущего графического драйвера и режима.

getmaxx (X) (integer) : (o) – возвращает максимальную координату экрана по ОХ.

getmaxy (Y) (integer) : (o)

getmoderange (ГрДрайвер, НизРежим, ВерхРежим) (integer, integer, integer) (i, o, o) – определить диапазон режима для указанного графического драйвера. Если в ГрДрайвер указан неправильно, то НизРежим=ВерхРежим=-1).

getpalettesize (РазмерПалитры) (integer) (integer *) : (o)

getpixel (X, Y, Цвет) (integer) (i, i, o) – возвращает цвет в (Х, У).

getX (X) (integer) : (o) – возвращает текущую позицию координаты Х относительно текущего окна.

getY (Y) (integer) : (o)

graphdefaults – переключает все графические значения в значения по умолчанию.

imagesize (Лев,Верх, Прав, Низ, Размер) (integer, integer, integer, integer, integer) : (i, i, o, o, o) – определяют количество байтов для сохранения двоичного изображения прямоугольной области.

line (X1, Y1, X2, Y2) (integer, integer, integer, integer) : (i, i, i, i) – рисует линию.

linerel (Dx, Dy) (integer, integer) : (i, i) – рисует линию на относительное расстояние из текущей позиции.

lineto (X, Y) (integer, integer) : (i, i) – рисует линию из текущей позиции в точку.

moverel (Dx, Dy) (integer, integer) : (i, i) – передвигает позицию на относительное расстояние.

moveto (X, Y) (integer, integer) : (i, i) – передвигает позицию в точку.

outtext (Строка) (string) : (i, i) – выводит на экран строку с текущей позиции.

outtextXY (X, Y, ТекстоваяСтрока) (integer, integer, string) (i, i, i) – отображает строку с заданной позиции.

putimage (X, Y, ДвоичнМассив, On) (integer, integer, string, integer) (i, i, i, i) – выводит на экран изображение, сохраненное с помощью getimage. On указывает, как вычислить цвет каждого выводимого символа. Результат этой операции зависит от пиксела, имеющегося на экране, и пиксела, который выводится.

Имя

Значение

Описание

Copy_put

0

копирование

XOR_put

1

исключающее ИЛИ

OR_put

2

ИЛИ

AND_put

3

И

NOT_put

4

отрицание

putpixel (X, Y, Цвет) (integer, integer, integer) (i, i, i)

rectangle (Лев, Верх, Прав, Низ) (integer, integer, integer, integer) (i, i, i, i)

restorecrtmode – переход на другой графический режим.

setpalette (СписокПалитры) (integer *) : (i) Изменяет всю палитру цветов. Размер зависит от графического драйвера.

Наиболее употребительные цвета.

0 – черный, 1 – синий, 2 – зеленый, 63 – белый, 3 – голубой, 62 – желтый, 4 – красный, 5 – фиолетовый, 61 – малиновый, 20 – коричневый, 60 – розовый, 7 – светло-серый, 59 – ярко-голубой, 56 – темено-серый, 58 – ярко-зеленый, 57 – ярко-синий.

setaspectratio (Хотн, Уотн) (o, o)  - устанавливает отношение горизонтального и вертикального масштаба графического режима.

setbkcolor (ЦветФона) (integer) (o) – устанавливает текущий цвет фона.

setcolor (Цвет) (integer) : (o) – устанавливает текущий основной цвет

setfillpattern (Шаблон) (integer *) : (o) – устанавливает шаблон заполнения, определенный пользователем с помощью setfillpattern. Шаблон имеет 8 сегментов, каждый 1 байт, отражающий на экране 8 пикселов. если бит равен 1 , то он отображается на экране.

setgraphmode (ГрРежим) (integer) : (o) – устанавливает значение текущего графического режима. Когда вызывается предикат, режим уже должен быть установлен.

getmaxcolor (МаксЦвет) (integer) : (o) – максимальное значение цвета пиксела для текущего графического драйвера и режима.

setviewport (Лев, Верх, Прав, Низ, Флаг) (integer, integer, integer, integer, integer) – (i, i, i, i, i) – устанавливает текущее графическое окно для вывода. Переменной флаг определяется возможность рисовать за границей окна (0 – нельзя).

setwritemode (РежимРис) (integer) : (i) – устанавливает режим рисования линии. Существует 2 константы:

Copy_put =  0 – цвет рисуемых линий будет накладываться на изображение на экране.

XOR_put = 1 – цвет будет смешиваться с изображением на экране.
Меню сайта
Форма входа
Поиск
Календарь
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright Long Time Ago © 2024
Сделать бесплатный сайт с uCoz