logo
TurboProlog / Документация / TOM_2

Arc/5 Графика

Назначение Рисует сектор круга

Обращение arc(X,Y,Начугол,Конугол,Радиус)

Домены (integer,integer,integer,integer,integer)

Шаблоны описания (вх,вх,вх,вх,вх)

аргументов

Описание arc рисует сектор круга текущего цвета в центре (X,Y)

с радиусом Радиус. Сектор располагается в углах от

Начугол до Конугол. Если Начугол равен 0 и Конугол

равен 360, тогда arc нарисует полный круг.

Углы arc подобны часовой стрелке, угол в 0 градусов

равен 3 часам, угол в 90 градусов равен 12 часам, и

т.д..

Каждый графический драйвер и графический режим имеет

свое отношение горизонтального и вертикального

масштабов. Отношение горизонтального и вертикального

масштабов используется в предикате arc для

отображения правильного круга на экране. Это

отношение может быть вычислено вызовом

getaspectratio, который возвращает горизонтальный и

вертикальный коэффициенты масштаба Xотн и Yотн.

Коэффициент масштаба по оси Y, Yотн, ограничен 10000;

для всех графических адаптеров, исключая VGA,

коэффициент масштаба Xотн меньше чем Yотн, потому что

высота пиксела больше чем ширина. В VGA, где пиксел

"квадратный", Xотн равно Yотн. В общем случае

ограничения на коэффициент масштаба выглядят так:

Yотн = 10000

Xотн <= 10000

Смотри circle,ellipse,getarccoords,getaspectratio,pieslice,

graphresult

Пример

include "GRAPDECL.PRO"

goal

/* Инициализация гpафики c автоматическим

определением драйвера */

initgraph(detect, 0,GraphDriver,GraphMode, ""),

/* Нарисовать сектор 90 градусов с радиусом 50 */

arc(150, 150, 0, 89, 50),

/* Взять координаты сектора и соединить линией */

getarccoords(X,Y,XStart,YStart,XEnd,YEnd),

line(XStart, YStart, XEnd, YEnd),

readchar(_),

closegraph.

assert/1

Назначение Включает факт в конец динамической базы данных

Обращение assert(<факт>)

Домены (<соответствующие домены динамической базы данных>)

Шаблоны описания (вх)

аргументов

Описание Использование assert дает тот же эффект,что и

использование assertz.

Пример Смотри assertz/1.

assert/2

Назначение Включает факт в конец указанной динамической базы

данных

Обращение assert(<факт>,ИмяДБД)

Домены (<соответствующие домены динамической базы данных>,

ИмяБазыданных)

Шаблоны описания (вх,вх)

аргументов

Описание Использование assert дает тот же эффект,что и

использование assertz/2.

asserta/1

Назначение Включает факт в начало динамической базы данных

Обращение asserta(<факт>)

Домены (<соответствующие домены динамической базы данных>)

Шаблоны описания (вх)

аргументов

Описание asserta включает <факт> в динамическую базу данных

перед всеми фактами для соответствующего предиката.

Факт должен быть термом, принадлежащим к домену

секции доменов динамической базы данных.

Неудачное Никогда не дает.

завершение

Ошибки Отсутствуют.

Пример

domains

name, address, cityname = string

age, zipcode = integer

database

person(name, age, address, zipcode)

city(zipcode, cityname)

goal

asserta(person("Миша", 26, "", 8600)),

asserta(person("Вова", 27, "", 8600)),

asserta(person("Саша", 23, "", 9800)),

asserta(city(8600, "Мелитополь")),

asserta(city(6800, "Кологрив")).

asserta/2

Назначение Включает факт в начало указанной динамической базы

данных

Обращение asserta(<факт>,ИмяДБД)

Домены (<соответствующие домены динамической базы данных>,

ИмяБазыданных)

Шаблоны описания (вх,вх)

аргументов

Описание asserta включает <факт> в динамическую базу данных

перед всеми фактами для соответствующего предиката.

Факт должен быть термом, принадлежащим к домену

секции доменов динамической базы данных с именем

ИмяДБД.

Неудачное Никогда не дает.

завершение

Ошибки Отсутствуют.

Пример

domains

name, address, cityname = string

age, zipcode = integer

database - persons /* Имя = persons */

person(name, age, address, zipcode)

database - cities /* Имя = cities */

city(zipcode, cityname)

goal

asserta(person("Миша", 26, "", 8600), persons),

asserta(person("Вова", 27, "", 8600), persons),

asserta(person("Саша", 23, "", 9800), persons),

asserta(city(8600, "Мелитополь"), cities),

asserta(city(6800, "Кологрив"), cities).

assertz/1

Назначение Включает факт в конец динамической базы данных

Обращение assertz(<факт>)

Домены (<соответствующие домены динамической базы данных>)

Шаблоны описания (вх)

аргументов

Описание assertz включает <факт> в динамическую базу данных

после всех фактов для соответствующего предиката.

Факт должен быть термом, принадлежащим к домену

секции доменов динамической базы данных.

Неудачное Никогда не дает.

завершение

Ошибки Отсутствуют.

Пример

domains

name, address, cityname = string

age, zipcode = integer

database

person(name, age, address, zipcode)

city(zipcode, cityname)

goal

assertz(person("Миша", 26, "", 8600)),

assertz(person("Вова", 27, "", 8600)),

assertz(person("Саша", 23, "", 9800)),

assertz(city(8600, "Мелитополь")),

assertz(city(6800, "Кологрив")).

assertz/2

Назначение Включает факт в конец указанной динамической базы

данных

Обращение assertz(<факт>,ИмяДБД)

Домены (<соответствующие домены динамической базы данных>,

ИмяБазыданных)

Шаблоны описания (вх,вх)

аргументов

Описание assertz включает <факт> в динамическую базу данных

после всех фактов для соответствующего предиката.

Факт должен быть термом, принадлежащим к домену

секции доменов динамической базы данных с именем

ИмяДБД.

Пример

domains

name, address, cityname = string

age, zipcode = integer

database - persons /* Имя = persons */

person(name, age, address, zipcode)

database - cities /* Имя = cities */

city(zipcode, cityname)

goal

assertz(person("Миша", 26, "", 8600), persons),

assertz(person("Вова", 27, "", 8600), persons),

assertz(person("Саша", 23, "", 9800), persons),

assertz(city(8600, "Мелитополь"), cities),

assertz(city(6800, "Кологрив"), cities).

attribute/1

Назначение Устанавливает или выдает отсутствующий атрибут вывода

Обращение attribute(Атр)

Домены (integer)

Шаблоны описания (вх),(вых)

аргументов

Описание attribute устанавливает или считывает текущий

атрибут вывода. Вывод при помощи write или writef

дает отображение экрана с этим атрибутом. Каждое окно

имеет свой атрибут вывода. Когда вы создаете окно,

атрибут вывода автоматически принимает значение

атрибута окна, но вы можете изменить его предикатом

attribute.

(вх)

Устанавливает текущий атрибут вывода со значением Атр

(вых)

Связывает Атр со значением текущего атрибута.

Неудачное Никогда не дает.

завершение

Ошибки Отсутствуют.

Смотри также window_attr/1

Пример

goal

attribute(1), write("\nЭта линия голубая"),

attribute(2), write("\nЭта линия зеленая"),

attribute(A), A1=A+2,

attribute(A1), write("\nЭта линия красная").