×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

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

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

2.5.8. Геометрические типы

2.5.8.1. Точки
2.5.8.2. Прямые
2.5.8.3. Отрезки
2.5.8.4. Прямоугольники
2.5.8.5. Пути
2.5.8.6. Многоугольники
2.5.8.7. Окружности

Геометрические типы данных представляют двумерные пространственные объекты. Таблица 2.5.20 содержит сведения о геометрических типах, доступных в Digital Q.DataBase.

Таблица 2.5.20. Геометрические типы

ИмяРазмерОписаниеПредставление
point16 байтТочка на плоскости(x,y)
line24 байтаБесконечная прямая{A,B,C}
lseg32 байтаКонечный отрезок прямой[(x1,y1),(x2,y2)]
box32 байтаПрямоугольник(x1,y1),(x2,y2)
path16+16n байтЗамкнутый контур (аналогично многоугольнику)((x1,y1),...)
path16+16n байтРазомкнутый контур[(x1,y1),...]
polygon40+16n байтМногоугольник (аналогичен замкнутому контуру)((x1,y1),...)
circle24 байтаОкружность<(x,y),r> (координаты центра и радиус)

Для всех этих типов отдельные координаты хранятся как double precision (float8) числа.

Для выполнения различных геометрических операций, таких как масштабирование, перенос, поворот и определение пересечений, доступен широкий набор функций и операторов. Они описаны в Раздел 2.6.11.

2.5.8.1. Точки #

Точки являются фундаментальным двумерным строительным блоком для геометрических типов. Значения типа point задаются с использованием одного из следующих вариантов синтаксиса:

( x , y )
  x , y

где x и y — соответствующие координаты, представленные в виде чисел с плавающей точкой.

Для вывода точек используется первый вариант синтаксиса.

2.5.8.2. Прямые #

Прямые описываются линейным уравнением Ax + By + C = 0, где A и B не равны нулю одновременно. Значения типа line вводятся и выводятся в следующем формате:

{ A, B, C }

Для ввода также можно использовать любой из следующих форматов:

[ ( x1 , y1 ) , ( x2 , y2 ) ]
( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )
    x1 , y1   ,   x2 , y2

где (x1,y1) и (x2,y2) — это две различные точки на прямой.

2.5.8.3. Отрезки #

Отрезки представляются парами точек, являющихся концами отрезка. Значения типа lseg задаются с помощью любого из следующих вариантов синтаксиса:

[ ( x1 , y1 ) , ( x2 , y2 ) ]
( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )
    x1 , y1   ,   x2 , y2

где (x1,y1) и (x2,y2) являются конечными точками отрезка.

Отрезки выводятся с использованием первого синтаксиса.

2.5.8.4. Прямоугольники #

Прямоугольники представляются парами точек, которые являются противоположными углами прямоугольника. Значения типа box задаются с помощью любого из следующих синтаксисов:

( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )
    x1 , y1   ,   x2 , y2

где (x1,y1) и (x2,y2) являются любыми двумя противоположными углами прямоугольника.

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

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

2.5.8.5. Пути #

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

Значения типа path задаются с помощью любого из следующих синтаксисов:

[ ( x1 , y1 ) , ... , ( xn , yn ) ]
( ( x1 , y1 ) , ... , ( xn , yn ) )
  ( x1 , y1 ) , ... , ( xn , yn )
  ( x1 , y1   , ... ,   xn , yn )
    x1 , y1   , ... ,   xn , yn

где точки являются конечными точками сегментов линий, составляющих путь. Квадратные скобки ([]) обозначают разомкнутый путь, в то время как круглые скобки (()) обозначают замкнутый путь. Когда внешние круглые скобки опущены, как в вариантах синтаксиса с третьего по пятый, путь считается замкнутым.

Пути выводятся с использованием первого или второго синтаксиса, в зависимости от ситуации.

2.5.8.6. Многоугольники #

Многоугольники представляются списками точек (вершинами многоугольника). Многоугольники очень похожи на замкнутые пути; основное семантическое различие заключается в том, что многоугольник включает в себя внутреннюю область, в то время как путь — нет.

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

Значения типа polygon задаются с помощью любого из следующих вариантов синтаксиса:

( ( x1 , y1 ) , ... , ( xn , yn ) )
  ( x1 , y1 ) , ... , ( xn , yn )
  ( x1 , y1   , ... ,   xn , yn )
    x1 , y1   , ... ,   xn , yn

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

Многоугольники выводятся в первом формате синтаксиса.

2.5.8.7. Окружности #

Окружности представляются центральной точкой и радиусом. Значения типа circle задаются с помощью любого из следующих вариантов синтаксиса:

< ( x , y ) , r >
( ( x , y ) , r )
  ( x , y ) , r
    x , y   , r

где (x,y) является центральной точкой, а r параметр является радиусом окружности.

Окружности выводятся в первом формате синтаксиса.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению