Шаг 84.
Visual Prolog.
Прямоугольные области

    На этом шаге мы рассмотрим прямоугольные области.

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

Пересечение двух прямоугольников

   Rct=rect_Intersect(Ret1,Rct2)

    Эта функция вычисляет пересечение двух прямоугольников и возвращает координаты прямоугольника пересечения. Если прямоугольники не пересекаются, то возвращается пустой прямоугольник rct(0,0,0,0).

Увеличение размера прямоугольника

   Rct=rect_Inflate(Rct,integer Dh,integer Dv)

    Функция rect_Inflate увеличивает или уменьшает ширину и высоту прямоугольника, добавляя Dh div 2 единиц слева и справа и Dv div 2 единиц сверху и снизу. Параметры Dh и Dv являются знаковыми значениями; положительные значения увеличивают ширину и высоту, а отрицательные - уменьшают.

Проверка пустого прямоугольника

   rect_IsEmpty(Rct)

    Этот предикат проверяет, является ли прямоугольник пустым, т. е. равна ли его площадь нулю. Этот предикат завершается неуспешно, если прямоугольник не пустой.

Перемещение прямоугольника

   Rct=rect_Offset(Rct,integer Dh,integer Dv)

    Функция rect_Offset перемещает заданный прямоугольник в другое место. Смещения Dh и Dv - знаковые значения, поэтому прямоугольник может быть перемещен в любом направлении.

Проверка, находится ли точка внутри прямоугольника

   rect_PntInside(Rct,Pnt)

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

Объединение двух прямоугольников

   Rct=rect_Union(rct Rct1,rct Rct2)

    Функция rect_Union создает объединение двух прямоугольников. Объединение - это самый маленький прямоугольник, который содержит оба прямоугольника.

    На следующем шаге мы рассмотрим обработку событий.




Предыдущий шаг Содержание Следующий шаг