SASGIS

Веб-картография и навигация

SAS.Wiki

Веб-картография и навигация

Инструменты пользователя

Инструменты сайта


логические_операции_с_полигонами

Различия

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

Ссылка на это сравнение

логические_операции_с_полигонами [13/05/2015 12:45]
109.94.188.121
логические_операции_с_полигонами [09/04/2021 11:59] (текущий)
176.59.16.190 pac
Строка 3: Строка 3:
 ====== Логические операции с полигонами ====== ====== Логические операции с полигонами ======
  
-Под логическими операциями понимаются операции,​ подобные операциям над битами (байтами) в булевой алгебре. Это операции **И (AND)**, **ИЛИ (OR)**, **НЕ (NOT)**, **ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR)**. Результаты логических операций с полигонами показывают следующие рисунки.+Под логическими операциями понимаются операции,​ подобные операциям над битами (байтами) в булевой алгебре. Это операции **И (AND** или **Intersection)**, **ИЛИ (OR** или **Union)**, **НЕ (NOT** или **Difference)**, **ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR)**. Результаты логических операций с полигонами показывают следующие рисунки.
  
 Имеются два полигона:​ звезда и круг. Здесь **subject** - полигон,​ относительно которого проводится логическая операция,​ **clip** - второй полигон,​ участвующий в логической операции. Имеются два полигона:​ звезда и круг. Здесь **subject** - полигон,​ относительно которого проводится логическая операция,​ **clip** - второй полигон,​ участвующий в логической операции.
Строка 25: Строка 25:
 {{:​xor.png?​200|}} {{:​xor.png?​200|}}
  
-Кроме описанных логических операций в программе имеется ещё одна операция **Group**. ​Она идентична операции **ИЛИ**, но с одним отличием: если полигоны пересекаются,​ результатом операции **ИЛИ** ​является **один** новый полигон,​ а результатом операции **Group** ​являются по-прежнему **два** полигона, но объединённые в мультиполигон. Если полигоны не пересекаются,​ результаты ​обеих ​операций одинаковы. Также следует учитывать,​ что при всех логических операциях,​ кроме **Group**, происходит округление координат вершин полигонов,​ из-за чего полученные новые полигоны будут иметь вершины,​ не совсем совпадающие с вершинами исходных полигонов. ​В случае же операции **Group** координаты вершин никаких изменений не претерпевают,​ поэтому операция **Group** выполняется быстрее,​ чем **ИЛИ**.+Кроме описанных логических операций в программе имеется ещё одна операция **Group**. ​Визуально она идентична операции **ИЛИ**, но есть значительные ​отличия. 
 + 
 +Если полигоны пересекаются,​ результатом операции **ИЛИ** ​будет **один** новый полигон,​ а результатом операции **Group** ​будут по-прежнему **несколько** полигоновусловно объединённых в мультиполигон. Мультиполигон может содержать любое количество полигонов. Свойства всех полигонов,​ входящих ​в мультиполигон, одинаковы. Все они одновременно выводятся на экран, используются в качестве выделенной области и т. д. 
 + 
 +Если полигоны не пересекаются,​ результаты операций ​**ИЛИ** и **Group** будут ​одинаковы. 
 + 
 +Также следует учитывать,​ что при всех логических операциях,​ кроме **Group**, происходит ​некоторое "округление" ​координат вершин полигонов,​ из-за чего полученные новые полигоны будут иметь вершины,​ не совсем совпадающие с вершинами исходных полигонов. ​Более того, в некоторых ​случаях (в основном при самопересечениях полигона) возможно образование так называемых "​дырок"​. Дырка - это замкнутый полигон,​ находящийся внутри другого замкнутого полигона. //На сегодняшний день дырки программой не обрабатываются,​ то есть игнорируются,​ однако их количество считается и указывается в сообщении о завершении логической операции.//​ 
 + 
 +В случае операции **Group** координаты вершин никаких изменений не претерпевают,​ поэтому операция **Group** выполняется быстрее,​ чем **ИЛИ**. В результате операции **Group** дырки не образуются.
  
 Результаты логических операций могут быть использованы для //​**Операций с выделенной областью**//,​ то есть для загрузки,​ копирования,​ удаления,​ экспорта и пр. Кроме того, результаты могут быть сохранены в базе меток для последующего использования. Результаты логических операций могут быть использованы для //​**Операций с выделенной областью**//,​ то есть для загрузки,​ копирования,​ удаления,​ экспорта и пр. Кроме того, результаты могут быть сохранены в базе меток для последующего использования.
Строка 36: Строка 44:
   - Щёлкнуть на нужном полигоне правой кнопкой мыши и в контекстном меню выбрать **Добавить к Слиянию полигонов**.   - Щёлкнуть на нужном полигоне правой кнопкой мыши и в контекстном меню выбрать **Добавить к Слиянию полигонов**.
   - В Менеджере меток выделить один или (используя **Ctrl** или **Shift**) несколько полигонов,​ щёлкнуть правой кнопкой мыши, в контекстном меню выбрать **Добавить к Слиянию полигонов**.   - В Менеджере меток выделить один или (используя **Ctrl** или **Shift**) несколько полигонов,​ щёлкнуть правой кнопкой мыши, в контекстном меню выбрать **Добавить к Слиянию полигонов**.
-  - В Менеджере меток выделить Категорию меток, щёлкнуть правой кнопкой мыши, в контекстном меню выбрать **Добавить к Слиянию полигонов**. В данном случае добавлены будут только видимые на экране полигоны.+  - В Менеджере меток выделить Категорию меток, щёлкнуть правой кнопкой мыши, в контекстном меню выбрать **Добавить к Слиянию полигонов**. В данном случае добавлены будут только видимые полигоны.
  
 Если несколько полигонов накладываются друг на друга в точке щелчка мышью, то все они будут добавлены в список. "​Лишние"​ полигоны можно либо удалить из списка средствами рассматриваемой панели,​ либо предварительно отключить в окне //​**Управление метками**//​. Если несколько полигонов накладываются друг на друга в точке щелчка мышью, то все они будут добавлены в список. "​Лишние"​ полигоны можно либо удалить из списка средствами рассматриваемой панели,​ либо предварительно отключить в окне //​**Управление метками**//​.
Строка 42: Строка 50:
 С левой стороны экрана откроется панель //​**Слияние полигонов**//​ (если она ещё не открыта). Панель можно **растягивать** по горизонтали,​ а также делать постоянно видимой или убирать с экрана через меню //​**Вид**->​**Панели**//​. С левой стороны экрана откроется панель //​**Слияние полигонов**//​ (если она ещё не открыта). Панель можно **растягивать** по горизонтали,​ а также делать постоянно видимой или убирать с экрана через меню //​**Вид**->​**Панели**//​.
  
-{{:окно_лоп.png|}}+{{:​лоп.png?nolink|}}
  
 Первому в списке полигону автоматически присваивается статус **subject**. Первому в списке полигону автоматически присваивается статус **subject**.
Строка 48: Строка 56:
 Остальным полигонам в списке присваивается статус **clip**. Остальным полигонам в списке присваивается статус **clip**.
  
-В круглых скобках указывается,​ одиночный это полигон (**Single**),​ или мультиполигон (вероятно, ​**Multi**).+В круглых скобках указывается,​ одиночный это полигон (**Single**),​ или мультиполигон (**Multi**).
  
-{{:окно_лоп1.png|}}+{{:​лоп1.png?nolink|}}
  
 Панель **Слияние полигонов** имеет несколько кнопок плюс выпадающий список. Рассмотрим назначение этих органов управления. Начнём слева направо. Панель **Слияние полигонов** имеет несколько кнопок плюс выпадающий список. Рассмотрим назначение этих органов управления. Начнём слева направо.
Строка 62: Строка 70:
   * Выпадающий **список** содержит все доступные логические операции с полигонами.   * Выпадающий **список** содержит все доступные логические операции с полигонами.
  
-  * Кнопка с **зелёной "​галкой"​** служит для подтвержения выбранных параметров и применения логической операции. После этого на экране появится результат выбранной логической операции.+  * Кнопка с **зелёной "​галкой"​** служит для подтверждения выбранных параметров и применения логической операции. После этого на экране появится результат выбранной логической операции.
  
   * Следующая кнопка служит для вызова окна //​**Операции с выделенной областью**//​.   * Следующая кнопка служит для вызова окна //​**Операции с выделенной областью**//​.
Строка 68: Строка 76:
   * Кнопка с изображением **дискеты** сохраняет результат в базе меток.   * Кнопка с изображением **дискеты** сохраняет результат в базе меток.
  
-{{:окно_лоп2.png|}}+{{:​лоп2.png?nolink|}}
  
 В окне сообщения о результате логической операции указывается общее количество созданных полигонов и "​дырок"​. Если в результате логической операции получилось более одного полигона,​ то в базе меток они будут сохранены как мультиполигон. В окне сообщения о результате логической операции указывается общее количество созданных полигонов и "​дырок"​. Если в результате логической операции получилось более одного полигона,​ то в базе меток они будут сохранены как мультиполигон.
 +
 +
 +Допустить
 +мы, что из нас ​
 +интересуют снимки, ​
 +покрывающие части лицевой формы
 +
 + а полигон,​ описывающий нужный снимок - как **clip**, и применить логическую операцию **НЕ**.