Библиотека логических манипуляций над множествами
Используется функционал кватернионно-векторно-матричной библиотеки QuatVectMatr
Построена на библиотеке Clipper автора Angus Johnson
Множества интерпретируются как контуры на поверхности Земли (в геодезических координатах)
- AMinusB из множества A вычитает несколько множеств B (A\B)
Широта и долгота подаются на вход в радианах.
Диапазон изменения подаваемой на вход широты [-pi/2; +pi/2].
Диапазон изменения подаваемой на вход долготы может быть либо [0; +2pi), либо [-pi; +pi].
Результат возвращается также в радианах, но долгота возвращается только в пределах [0; +2pi).
Синтаксис:
TArraySpot AMinusB(TSpot A, TArraySpot B)
- APlusB к множеству A прибавляет несколько множеств B (AuB)
Широта и долгота подаются на вход в радианах.
Диапазон изменения подаваемой на вход широты [-pi/2; +pi/2].
Диапазон изменения подаваемой на вход долготы может быть либо [0; +2pi), либо [-pi; +pi].
Результат возвращается также в радианах, но долгота возвращается только в пределах [0; +2pi).
Синтаксис:
TArraySpot APlusB(TSpot A, TArraySpot B)
- AIntersectionB возвращает пересечение множества A с хотя бы одним множеством из B (AпB)
Широта и долгота подаются на вход в радианах.
Диапазон изменения подаваемой на вход широты [-pi/2; +pi/2].
Диапазон изменения подаваемой на вход долготы может быть либо [0; +2pi), либо [-pi; +pi].
Результат возвращается также в радианах, но долгота возвращается только в пределах [0; +2pi).
Синтаксис:
TArraySpot AIntersectionB(TSpot A, TArraySpot B)
- AXorB объединяет множества A и B, затем из результата вычитает пересечение множества A с хотя бы одним множеством из B ((AuB) \ (AпB))
Широта и долгота подаются на вход в радианах.
Диапазон изменения подаваемой на вход широты [-pi/2; +pi/2].
Диапазон изменения подаваемой на вход долготы может быть либо [0; +2pi), либо [-pi; +pi].
Результат возвращается также в радианах, но долгота возвращается только в пределах [0; +2pi).
Синтаксис:
TArraySpot AXorB(TSpot A, TArraySpot B)
- AHoldB отвечает на вопрос: "Множество B полностью входит во множество A?"
Ограничение по использованию метода: каждое из множеств A и B не должно иметь самопересечений (песочные часы не допускаются).
Широта и долгота подаются на вход в радианах.
Диапазон изменения подаваемой на вход широты [-pi/2; +pi/2].
Диапазон изменения подаваемой на вход долготы может быть либо [0; +2pi), либо [-pi; +pi].
Возвращаемые значения:
- 0 - B целиком лежит вне множества A;
- 1 - B входит в A целиком;
- 2 - B пересекает множество A (часть B лежит внутри A, часть B лежит вне множества A).
Синтаксис:
int AHoldB(TSpot A, TSpot B)
- MiddleL виртуально "делит" множество A по долготе пополам и возвращает эту долготу
Само множество A не меняется.
Широта и долгота подаются на вход в радианах.
Диапазон изменения подаваемой на вход широты [-pi/2; +pi/2].
Диапазон изменения подаваемой на вход долготы может быть либо [0; +2pi), либо [-pi; +pi].
Результат возвращается также в радианах, но долгота возвращается только в пределах [0; +2pi).
Синтаксис:
double MiddleL(TSpot A)
- DivideA делит множество A по указанной пользователем долготе на части (производит разрезание множества)
Если долгота разреза указана неверно, тогда разрезания не производится, а возвращается исходное множество.
В результате успешного разрезания могут получиться два и более множеств.
Широта и долгота подаются на вход в радианах.
Диапазон изменения подаваемой на вход широты [-pi/2; +pi/2].
Диапазон изменения подаваемой на вход долготы может быть либо [0; +2pi), либо [-pi; +pi].
Результат возвращается также в радианах, но долгота возвращается только в пределах [0; +2pi).
Синтаксис:
TArraySpot DivideA(double L, TSpot A)
- AMinusBSimpleResult из множества A вычитает множество B, при этом результирующие множества являются простыми полигонами (не имеют дырок и каждый состоит из одного контура)
Задача применяется для изменения площадного объекта наблюдения в процессе покрытия его сканами.
Широта и долгота подаются на вход в радианах.
Диапазон изменения подаваемой на вход широты [-pi/2; +pi/2].
Диапазон изменения подаваемой на вход долготы может быть либо [0; +2pi), либо [-pi; +pi].
Результат возвращается также в радианах, но долгота возвращается только в пределах [0; +2pi).
Синтаксис:
TArraySpot AMinusBSimpleResult(TSpot A, TSpot B)
- AMinusBSimpleResult из нескольких никак не связанных друг с другом множеств A вычитает множество B, при этом результирующие множества являются простыми полигонами (не имеют дырок и каждый состоит из одного контура)
Задача применяется для изменения площадного объекта наблюдения в процессе покрытия его сканами.
Широта и долгота подаются на вход в радианах.
Диапазон изменения подаваемой на вход широты [-pi/2; +pi/2].
Диапазон изменения подаваемой на вход долготы может быть либо [0; +2pi), либо [-pi; +pi].
Результат возвращается также в радианах, но долгота возвращается только в пределах [0; +2pi).
Синтаксис:
TArraySpot AMinusBSimpleResult(TArraySpot A, TSpot B)
- AMinusBSimpleResult из множества A вычитает несколько множеств B, при этом результирующие множества являются простыми полигонами (не имеют дырок и каждый состоит из одного контура)
Задача применяется для изменения площадного объекта наблюдения в процессе покрытия его сканами.
Широта и долгота подаются на вход в радианах.
Диапазон изменения подаваемой на вход широты [-pi/2; +pi/2].
Диапазон изменения подаваемой на вход долготы может быть либо [0; +2pi), либо [-pi; +pi].
Результат возвращается также в радианах, но долгота возвращается только в пределах [0; +2pi).
Синтаксис:
TArraySpot AMinusBSimpleResult(TSpot A, TArraySpot B)
- AMinusBSimpleResult из нескольких никак не связанных друг с другом множеств A вычитает несколько множеств B, при этом результирующие множества являются простыми полигонами (не имеют дырок и каждый состоит из одного контура)
Задача применяется для изменения площадного объекта наблюдения в процессе покрытия его сканами.
Широта и долгота подаются на вход в радианах.
Диапазон изменения подаваемой на вход широты [-pi/2; +pi/2].
Диапазон изменения подаваемой на вход долготы может быть либо [0; +2pi), либо [-pi; +pi].
Результат возвращается также в радианах, но долгота возвращается только в пределах [0; +2pi).
Синтаксис:
TArraySpot AMinusBSimpleResult(TArraySpot A, TArraySpot B)
- APlusBSimpleResult к множеству A прибавляет множество B, при этом результирующие множества являются простыми полигонами (не имеют дырок и каждый состоит из одного контура)
Задача применяется для изменения площадного объекта наблюдения в процессе покрытия его сканами.
Широта и долгота подаются на вход в радианах.
Диапазон изменения подаваемой на вход широты [-pi/2; +pi/2].
Диапазон изменения подаваемой на вход долготы может быть либо [0; +2pi), либо [-pi; +pi].
Результат возвращается также в радианах, но долгота возвращается только в пределах [0; +2pi).
Синтаксис:
TArraySpot APlusBSimpleResult(TSpot A, TSpot B)
- APlusASimpleResult складывает (прибавляет одно к другому) множества A, при этом результирующие множества являются простыми полигонами (не имеют дырок и каждый состоит из одного контура)
Задача применяется для изменения площадного объекта наблюдения в процессе покрытия его сканами.
Широта и долгота подаются на вход в радианах.
Диапазон изменения подаваемой на вход широты [-pi/2; +pi/2].
Диапазон изменения подаваемой на вход долготы может быть либо [0; +2pi), либо [-pi; +pi].
Результат возвращается также в радианах, но долгота возвращается только в пределах [0; +2pi).
Синтаксис:
TArraySpot APlusASimpleResult(TArraySpot A)