Графика Turbo Prolog v1.0
Управление графическими режимами и цветами в ТП осуществляется с помощью параметров, задаваемых предикатами graphics и maxiwinodws
graphics (Режим, Палитра, Фон) : (integer, integer, integer) (i, i, i)
При переходе в гарфический режим очищается экран. Переход обратно в текстовый – предикатом text. Для создания изображения используются предикаты line и dot.
line
(X1,Y1, X2, Y2, Цвет)
(integer, integer, integer, integer) : (i, i, i, i)
Координаты в интервале (0…31999). Цвет (0…15)
dot (Строка, Столбец, Цвет) (integer, integer, integer) : (i, i, i) (i, i, o)
Устанавливает или чиатет цвет в заданной точке
Пример изображения эллипса:
predicates
ellips (real)
real_int (real, integer)
goal
graphics (5, 0, 15), ellipse (0).
clauses
ellips (A):- A>=6.28, ! % Если полный круг , А – угол
ellips (A):- Xc=5000, Yc=18000, R=3600,
X=Xc+R*sin(A), Y=Yc-R*cos(A),
real_int (X, Xi), real_int (Y, Yi),
dot (Xi, Yi, 1), A1=A+0.02, ellips (A1).
real_int (R, I):- R=I;
Графика черепашки
В ТП имеется 8 предикатов, реализующих метод «черепашки».
pendown % активизирует перо
penup – деактивизирует перо
penpos (Строка, Столбец, Направление) (integer, integer, integer) (i,i,o) (o,o,o) – устанавливает или читает позицию пера (значения от 0 до 31999), направление задается в градусах ( 0 – вниз).
forward (Шаг) (integer) : (i) – передвигает перо вперед
back (Шаг) (integer) : (i)
left (Шаг) (integer) : (i)
right (Шаг) (integer) : (i)
pencolor (цвет) (integer) : (i) – устанавливает цвет линии ( от 0 до 15)
/* Изображение передвигающейся спирали */
predicates
do_graphics
do_penpos (integer, integer, integer)
goal
graphics (5, 10, 15), do_graphics.
clauses
do_graphics:-
do_penpos (1400, 1600, 0),
cursor (20, 60),
write ("Спираль”),
cursos (25,1),
write ("Нажмите любую клавишу”),
readchar (_), exit.
do_penpos (R0, _, _):- RO>=14000.
do_penpos (R0, C0, A0):- penpos (R0, C0,
A0),
pendown , R=R0+100, c=C0+100, A=A0+10,
forward (R), left (A), penpos (R, C, A), do_penpos (R, C, A).
Использование звука и музыки
beep – генерирует звук высокой частоты.
sound (T,
F) (integer, integer) : (i, i)
Таблица частот для первой октавы:
Нота |
Частота |
Нота |
Частота |
до |
262 |
фа# |
370 |
до# |
278 |
соль |
392 |
ре |
294 |
соль# |
416 |
ре# |
302 |
ля |
440 |
ми |
330 |
ля# |
460 |
фа |
350 |
си |
494 |
|
|
до |
524 |