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

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

Графика и звук Turbo Prolog v1.0

Графика 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


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

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