logo
ответы пролог часть 2

44. Использование графики в программе

Программирование графики на Турбо-Прологе доставляет удовольствие,а графические средства Турбо-Пролога обладают мощными возможностями.

Графические предикаты Турбо-Пролога поддерживают Цветной Графический Адаптер (CGA) фирмы IBM и Расширенный Графический Адаптер (EGA) фирмы IBM, а также совместимые с ними. Управление графическими режимами и цветами в Турбо-Прологе осуществляется с помощью параметров, задаваемых в предикатах graphics и makewindow. Предикат graphics используется для включения графического режима CGA или EGA. Цвет текста и цвет рамки настраиваются параметрами Screen_attribute и Frame_attribute, но работают они не так, как просто в окнах. Предикаты dot и line используются для изображения объектов в графическом режиме.

Предикат graphics

Создание графического изображения в Турбо-Прологе начинается с перевода экрана в графический режим работы. Для этой цели используется предикат graphics. Его форма:

graphics(Mode,Palette,Color)

Три параметра этого предиката управляют дисплеем в графическом режиме. При выполнении предиката graphics экран очищается; все изображения, созданные в текстовом режиме, пропадают. Предикат text переводит дисплей в текстовый режим.

Параметр Mode является целым числом от 1 до 5, предназначенным для выбора графического режима. Режимы разрешения и соответствующие значения параметра mode приведены в табл.

Разрешение Параметр Mode

---------------------------------------------------------------

Среднее(CGA) 1

Высокое(CGA) 2

Среднее(EGA) 3

Высокое(EGA) 4

Улучшенное(EGA) 5

Параметр palette является целым числом с возможными значе-

ниями 0 и 1. Этот параметр используется для выбора одной из двух доступных цветовых палитр. Параметр Color является целым числом, используемым для выбора цветов на графическом дисплее. Возможные цвета определяются текущим графическим режимом.

Использование графики черепашки ( Turtle graphics)

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

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

Проведем некоторую аналогию, из которой, кстати, станет ясно как появилось такое название графика черепашки. Представим себе, что по экрану вместо курсора передвигается маленькая черепашка, у которой к хвосту привязано пишущее перо. Поднимая и опуская хвост, черепаха поднимает и опускает пишущее перо. Если перо опущено, то при движении черепахи оно чертит линию; если перо поднято, то линия отсутствует. Направление перемещения черепахи может изменяться посредством вращения черепахи, а расстояние, на которое черепаха перемещается, может быть задано. Предикаты, реализующие графику черепашки, приведены ниже.

Таковыми являются предикаты penup,

pendown, pencolor, forward, back, right, left и penpos. Перед их использованием необходимо перевести экран в графический режим предикатом graphics. Предикат penup используется тогда, когда движущаяся черепашка не должна оставлять за собой "след". Данный предикат аргументов не имеет. Предикат pendown противоположен по действию

предикату penup и используется в том случае, когда черепашка должна оставлять за собой "след". Предикат pencolor устанавливает цвет "следа" черепахи. Он имеет вид:

pencolor(Color_number) где Color_number - целое число, с помощью которого выбирается

один из возможных цветов цветовой палитры.

Предикат forward используется для передвижения черепахи вперед на указанное расстояние. Он имеет вид: forward(Step_size)

где Step_size - числом в диапазоне от 1 до 31999. Предикат back выполняется аналогично, но перемещает черепаху назад. Предикаты right и left используются для вращения черепахи.

Каждый из этих предикатов имеет аргумент, задающий угол в градусах. Они имеют вид:

left(Angle) Предикат вида left(45) поворачивает черепаху на 45 градусов влево.