Конспект по ОБЖ: "Как избежать попадания в экстремальную ситуацию"(6 класс). Полигон в линию (Управление данными)

Теперь рассмотрим проблему вычисления области пересечения двух выпуклых полигонов P и Q . За исключением особо оговоренных случаев будем предполагать, что два полигона пересекаются невырожденно : пересечение двух ребер происходит в одной единственной точке, не являющейся вершиной какого-либо полигона. Учитывая такое предположение о невырожденности , всегда получим, что полигон состоит из попеременных цепочек из Р и Q . Каждая пара последовательных цепочек соединяется в точке пересечения, в которой пересекаются границы полигоновP и Q (рис. 6.11).

Существует несколько решений этой задачи с линейной зависимостью времени выполнения от суммарного числа вершин. Описываемый здесь алгоритм обладает особым изяществом и его легко применять. Для двух заданных на входе выпуклых полигонов P и Q алгоритм определяет окно на ребре полигона P ещё одно окно на ребре полигона Q . Идея заключается

Рис. 6.11. Структура полигона пересечения .

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

Для объяснения работы оказывается весьма полезным ввести понятие серпа. На рис. 6.12 серпами будут шесть затененных полигонов. Каждый из них ограничен цепочкой, взятой от полигона P , и цепочкой от полигона Q , ограниченных двумя последовательными точками пересечения. Внутренней цепочкой серпа будет та часть, которая принадлежит полигону пересечения. Отметим, что полигон пересечения окружен четным числом серпов, внутренние цепочки которых попеременно являются частями границ полигонов P и Q .

Рис. 6.12. Серпы, окружающие полигон пересечения.

В терминах серпов алгоритм поиска полигона пересечения проходит две фазы. В процессе первой фазы окно p полигона P и окно q полигона Q перемещаются в направлении по движению часовой стрелки до тех пор, пока они не будут установлены на ребрах, принадлежащих одновременно одному и тому же серпу. Каждое окно начинает свое движение с произвольной позиции. Здесь для краткости будем использовать один и тот же символ p для обозначения как окна полигона P , так и ребра в этом окне. Тогда термин "начало p " будет относиться к точке начала ребра в окне полигона P , а команда "продвинуть p " будет означать, что необходимо переместить окно полигона P на следующее ребро. Аналогичным образом буквой q будем обозначать как окно полигона Q , так и ребро в окне. Иногда ребра p и q будем считать текущими ребрами.

Во время фазы 2 p и q продолжают перемещаться в направлении по часовой стрелке, но на этот раз они двигаются в унисон от одного серпа к соседнему серпу. Перед тем как любое окно перейдет из текущего серпа в соседний , ребра p и q пересекутся в точке пересечения, соединяющей оба серпа. Полигон пересечения строится именно во время второй фазы. Перед каждым перемещением p конечная точка ребра p заносится в полигон пересечения, если ребро p принадлежит внутренней цепочке текущего серпа. Аналогичным образом перед перемещением q фиксируется конечная точка ребра q , если q принадлежит внутренней цепочке текущего серпа. При каждом пересечении ребер p и q точка пересечения, в которой они пересекаются, записывается в полигон пересечения.

Для принятия решения, какое из окон должно перемещаться, в алгоритме используется правило перемещения. Это правило основано на следующих замечаниях: говорят, что ребро a нацелено на ребро b , если бесконечная прямая линия, определяемая ребром b , расположена перед а (рис. 6.13).

Рис. 6.13. Только показанные толстыми линиями ребра нацелены на ребро q , остальные - нет.

Ребро a нацелено на b , если выполняется одно из условий:

Заметим, что соотношение соответствует случаю, при котором угол между векторами a и b меньше 180 градусов.

Функция aimsAt возвращает значение TRUE , если и только если ребро a нацелено на ребро b . Параметр aclass указывает на положение конечной точки а.dest относительно ребра b .

Параметр crossType принимает значение COLLINEAR , если и только если ребра a и b коллинеарные.

bool aimsAt (Edge & а , Edge &b, int aclass , int crossType )
{Point2 va = a.dest a.org;
Point2 vb = b.dest b.org;
if (crossType != COLLINEAR)
{if((va.x * vb.y ) >= (vb.x * va.y ))
return (aclass !=
RIGHT);
else
return (aclass != LEFT);
}
else
{return (aclass != BEYOND);
}
}

Если ребра a и b коллинеарны , то ребро a нацелено на b , если конечная точка a.dest не лежит после b . Это обстоятельство используется для того, чтобы продвинуть a вместо b , когда два ребра пересекаются вырожденно более, чем в одной точке. Позволяя a "догонять" b , мы обеспечиваем, что ни одна точка пересечения не будет пропущена.

Возвратимся к обсуждению правил перемещения. Они сформулированы таким образом, чтобы не пропустить следующую точку пересечения. Правила отличают текущее ребро, которое может содержать следующую точку пересечения, от текущего ребра, которое возможно не может содержать следующей точки пересечения, причем в этом случае окно переносится вполне безопасно. Правила перемещения различают четыре ситуации, показанные на рис. 6.14. Здесь ребро a считается находящимся вне ребра b , если конечная точка a.dest расположена слева от b .

Рис. 6.14. Четыре правила перемещения: (а) - продвинуть p ; (б) - продвинуть p ; (в) - продвинуть p , (г) - продвинуть р.

1. p и q нацелены друг на друга: перемещается окно, соответствующее тому ребру (p или q ), которое находится снаружи другого. В ситуации рис. 6.14 а должно быть перенесено окно на ребре р . Следующая точка пересечения не может лежать на p , поскольку ребро p находится вне полигона пересечения.

2. p нацелено на q , но q не нацелено на p p p не находится снаружи q и затем окно p переносится. На рис. 6.14б ребро p не может содержать следующей точки пересечения (хотя оно может содержать некоторую точку пересечения, если p находится не снаружи от q ). На рис. показана ситуация, в которой ребро p , окно которого должно быть перенесено, не находится снаружи от ребра q .

3. q нацелено на p , но p не нацелено на q : конечная концевая точка ребра q заносится в полигон пересечения, если q не находится снаружи от p , после чего переносится окно q (рис. 6.14в). Этот случай симметричен предыдущему. На рис. показана ситуация, при которой ребро q , окно которого должно быть перенесено, находится снаружи от ребра p .

4. p и q не нацелены друг на друга: переносится то окно, которое относится к ребру, расположенному снаружи от другого. Согласно рис. 6.14 необходимо перенести окно p , поскольку ребро p находится снаружи от ребра q .

Работа алгоритма показана на рис. 6.15. Каждое ребро имеет метку i , если оно обрабатывается на шаге i (у некоторых ребер показана двойная метка, поскольку они обрабатываются дважды). Два начальных ребра имеют

Рис. 6.15. Поиск полигона пересечения. Для ребра указана метка i , если оно обрабатывается на шаге i . Два начальных ребра обозначены меткой 0.

метку 0 . На этом рисунке фаза 2 (когда два текущих ребра оказываются принадлежащими одному и тому же серпу) начинается после трех итераций. Алгоритм реализован в программе convexPolygonIntersect . Программе передаются полигоны P и Q , она возвращает указатель на результирующий полигон пересечения R . Обращение к функции advance использовано для переноса одного из двух текущих ребер и для включения конечной концевой точки ребра в полигон R в соответствии с выполнением определенных условий. Используются окна, существующие внутри класса Polygon .

enum (UNKNOWN, P_IS_INSIDE, Q_IS_INSIDE) ;
Polygon *convexPolygonIntersect (Polygon &P, Polygon &Q)
{Polygon *R;
Point iPnt , startPnt ;
int inflag = UNKNOWN;
int phase = 1;
int maxItns = 2 * (P.size О + Q.size О);
// начало цикла for
for (int i = 1; (i <=maxItns ) || (phase==2); i++ )
{Edge p = P.edge ();
Edge q = Q.edge ();
int pclass = p.dest.classify (q );
int qclass = q.dest.classify (p );
int crossType = crossingPoint (p , q , iPnt );
if (crossType == SKEW_CROSS)
{ if (phase == 1)
{phase = 2;
R = new Polygon ;
R->insert (iPnt );
startPnt = iPnt ;
}
else
if (iPnt !=
R->point())
{if (iPnt != startPnt )
R->insert(iPnt );
else
return R;
}
if (pclass ==RIGHT)
inflag = P_IS_INSIDE;
else
if(qclass ==RIGHT)
inflag = Q_IS_INSIDE;
else inflag = UNKNOWN;
}
else
if((crossType ==COLLINEAR) &&
(pclass != BEHIND) && (qclass != BEHIND))
inflag = UNKNOWN;
bool pAIMSq = aimsAt (p, q, pclass , crossType );
bool qAIMSp = aimsAt (q, p, qclass , crossType );
if (pAIMSq && qAIMSp )
{if ((inf lag == Q_IS__INSIDE)||
((inflag == UNKNOWN)&&(pclass ==LEFT)))
advance(P, *R, FALSE);
else
advance(Q, *R, FALSE);
}
else
if(pAIMSq )
{advance(P, *R, inflag == P_IS_INSIDE);
}
else
if (qAIMSp )
{advance(Q, *R, inflag == Q_IS_INSIDE);
}
else
{if ((inflag == Q_IS_INSIDE)
((inflag == UNKNOWN) && (pclass == LEFT)))
advance(P, *R, FALSE);
else
advance(Q, *R, FALSE);
}
}
//
конец
цикла for
if (pointInConvexPolygon (P.point (), Q))
return new Polygon(P);
else
if (pointlnConvexPolygon (Q.point (), P))
return new Polygon(Q);
return new Polygon;
}

Если после выполнения итераций не будет обнаружено ни одной точки пересечения, то основной цикл завершается, поскольку это означает, что границы полигона не пересекаются. Последующие обращения к функции pointInConvexPolygon производятся с целью обнаружения ситуаций , или =0. В противном случае, если найдена некоторая точка пересечения iPnt , то алгоритм продолжает построение полигона пересечения R и останавливается только после того, как точка iPnt будет обнаружена вторично.

Переменная inflag показывает, какой из двух входных полигонов находится в данный момент внутри другого - т. е. указывает на полигон, текущее ребро которого находится в составе внутренней цепочки текущего серпа. Более того, переменная inflag принимает значение UNKNOWN (неизвестно) во время первой фазы, а также всякий раз, когда оба текущих ребра коллинеарны или перекрывают друг друга. Значение этой переменной меняется при каждом обнаружении новой точки пересечения.

Процедура advance продвигает текущее ребро полигона A , представляющее либо P , либо Q . Эта же процедура заносит конечную концевую точку ребра x в полигон пересечения R , если A находится внутри другого полигона и x не была последней точкой, записанной в R :

void advance(Polygon2 &A, Polygon2 &R, int inside)
{A.advance (CLOCKWISE);
if(inside && (R.point () != A.point ()))
R. insert (A.point ()) ;
}

Анализ и корректность.

Доказательство корректности показывает наиболее важные моменты работы алгоритма - один и тот же набор правил продвижения работает в течение обеих фаз. Правило продвижения заносит p и q в один и тот же серп и затем передвигает p и q в унисон из одного серпа в другой.

Корректность алгоритма следует из двух утверждений:

Утверждение 2 обеспечивает, что алгоритм найдет некоторую точку пересечения, если таковая существует. Поскольку ребра p и q принадлежат одному и тому же серпу, если они пересекаются, то из утверждения 1 следует, что остальные точки пересечения будут найдены в нужном порядке.

Рассмотрим сначала утверждение 1. Предположим, что p и q принадлежат одному и тому же серпу и q достигает некоторой точки пересечения раньше, чем р . Мы покажем, что тогда q останется неподвижным, пока p не достигнет точки пересечения после ряда последовательных продвижений. Могут возникнуть две ситуации. Сначала предположим, что p находится снаружи от q (рис. 6.16а). При этом q останется фиксированным, пока p будет продвигаться согласно нулю или нескольким применениям правила 4, затем нулю или нескольким применениям правила 1 и потом нулю или нескольким применениям правила 2. Во второй ситуации предположим, что p не находится снаружи от q (рис. 6.16б). Здесь q будет оставаться фиксированным, пока p будет продвигаться путем нуля или нескольких применений правила 2. В симметричной ситуации, когда p достигает точки пересечения раньше, чем q , ребро q остается фиксированным, а ребро q продвигается до точки встречи. Это можно показать аналогичным образом, только меняется роль p и q и правило 3 заменяет правило 2. Из этого следует утверждение 1.

Чтобы показать утверждение 2, предположим, что границы P и Q пересекаются. После итераций либо p , либо q должны совершить полный оборот вокруг своего полигона. Предположим, что это произошло с р . В некоторый момент времени ребро p должно расположиться так, что оно будет содержать точку пересечения, в которой полигон Q переходит извне полигона P внутрь его. Это происходит потому, что существуют по крайней мере две точки пересечения и направление пересечения меняется. Пусть q будет ребром внутри окна полигона Q в момент обнаружения такого р .

На рис. 6.17 граница полигона Q разбита на две цепочки и . Первая цепочка заканчивается в ребре , в том ребре полигона Q , которое входит внутрь полигона P через его ребро p . Другая цепочка заканчивается

Рис. 6.16. Продвижение к следующей точке пересечения.

в ребре , конечная точка которого лежит справа от бесконечной прямой линии, определяемой ребром p , и она наиболее удалена от этой прямой линии. Следует рассмотреть два случая в зависимости от того, какой из двух цепочек принадлежит ребро q :

Случай 1 . Здесь p остается фиксированным, тогда как q продвигается согласно нулю или нескольким применениям правила 3, затем правила 4, потом правила 1 и, наконец, правила 3, когда обнаруживается точка пересечения.

Случай 2 . Здесь q остается фиксированным, а p продвигается согласно нулю или нескольких применений правила 2, затем правила 4, потом правила 1 и, наконец, правила 2 в момент, когда p окажется внутри q . С этого момента оба ребра p и q могут продвигаться несколько раз, однако ребро q не может быть продвинуто за его следующую точку пересечения, пока p сначала не достигнет предыдущей точки пересечения ребра q (если этого уже не произошло с ребром p ). Поскольку p и q заканчиваются в одном и том же серпе, утверждение 1 гарантирует, что после некоторого числа дополнительных продвижений они пересекутся в точке пересечения, в которой заканчивается текущий серп.

Чтобы показать, что достаточно итераций для поиска некоторой точки пересечения, заметим, что при доказательстве утверждения 2 (о том, что граница полигона Q входит внутрь полигона P через ребро p при произвольном положении ребра q ) начальные позиции p и q достигались при выполнении не более итераций. Фактически такая ситуация, либо симметричная ей, в которой роли p и q взаимно заменяются, достигается за меньшее число итераций. Поскольку после этого ни p , ни q не будут продвинуты на полный оборот прежде, чем будет достигнута первая точка пересечения, потребуется не более дополнительных продвижений.

Рис. 6.17. Иллюстрация к доказательству, что можно найти точку пересечения, если границы P и Q пересекаются.

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

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

Нам нужно с помощью него практически как на первом рисунке обрисовать контур и сделать двойной щелчок для завершения.

Как видите, появился новый полигон, и все границы автоматически добавлены. Ведь мы рисовали не все границы. Несмотря на то, что данная процедура очень похожа на топологичное покрытие, это не так. Прочитайте "Шаг 3 - Понятие топологии" . Граница для двух объектом должны быть одна, а мы можем, воспользовавшись инструментом указатель

Взять и отодвинуть любую площадь.

Вернуть назад можно командой Undo .

Шаг 28 - Вырезание из площади

Обычно карта ограничена рамкой, и границы полигонов должны точно стыковаться с границей карты. Если мы будем поступать, как в прошлом шаге , то у нас граница будет не ровная. Можно сделать по другому. Удалим нашу темуBASEA .

И создадим заново. В той же папке. Только для того, чтобы это сработало нужно будет закрыть проект после удаления темы сохранив изменения и открыть его снова.

Воспользуемся инструментом прямоугольник.

И нарисуем рамку, которая покрывает весь чертеж.

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

Выберем его и попробуем отрезать кусок.

У нас появится новый полигон. Только нужно щелкнуть в стороне указателем, чтобы снять выделение, а потом щелкнуть назад.

Шаг 29 - Прозрачность площадной темы

Рисовать как в прошлом шаге - это рисовать наугад. Но у площадной темы есть легенда, значит мы можем настроить отображение. Идем в легенду, щелкаем два раза на символе.

У нас в площадной легенде есть четыре понятия. Первое понятие - это заливка.

Я выбрал точечную, чтобы сквозь точки было видно рисунок внизу. Дальше цвет значков в заливке - Foreground .

Здесь я поставил, что фона нет. И последнее понятие - цвет границы Outline .

Все можно нажимать OK и сквозь Вашу тему будет просвечиваться тема ниже.

Шаг 30 - Копирование темы

Разобравшись с рамкой в прошлом шаге тут же возникает вопрос. Ведь у нас можем быть много тем, которые содержат площади и должны содержать одну и туже рамку. Самый простой выход - это воспользоваться возможностью копирования темы в ArcView . После того, как тема создана, Вы можете воспользоваться пунктом менюConvert .

После выбора этого пункта меню у Вас опять спросят имя новой темы.

Укажите его и у Вас будет точно такая же тема в проекте с другим именем.

Шаг 31 - Линейная тема

Добавляется точно так же как и остальные темы, только тип нужно выбрать LINE .

Урок 6. Как избежать попадания в экстремальную ситуацию.

Учебные вопросы.

1. Подготовка к походу.

2. Правила безопасного поведения на природе.

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

Основное содержание урока.

Как избежать попадания в экстремальные ситуации в природных условиях? Этот вопрос целесообразно рассмотреть на примере туристического похода школьников (класса).

Подготовка к походу - важный этап обеспечения безопасности. Подготовительные мероприятия: определение целей и задач похода, разработка маршрута, приобретение продуктов, общественного (палатки, посуда для приготовления пищи) и личного снаряжения.

Предложите ученикам разгадать слово, зашифрованное в ребусе (раздел 1, глава 3, задание 7).

Представление маршрута похода в маршрутно-квалификационную комиссию, регистрация группы и маршрута в поисково-спасательной службе (ПСС). Цель регистрации.

Соблюдение правил безопасного поведения на маршруте, на привале, при преодолении препятствий - основной этап обеспечения безопасности.

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

Предложите ученикам отгадать загадку:

Кто, как только жарко станет, Шубу на плечи натянет, А нагрянет холод злой -Скинет с плеч ее долой? (Лес)

Правило для тех, кто отправляется в разведку. Понятие «Границы полигона» и линейные ориентиры (дороги, просеки, граница леса, линии электропередачи). Для чего они определяются?

Заключение. Повторите основные моменты и проверьте, как понята тема.

Вопросы для проверки полученных знаний.

Объясните, какая основная цель тщательной подготовки к походу? Почему у руководителя группы абсолютная власть во время похода? Зачем руководитель группы сообщает маршрут похода и сроки его проведения в местную ПСС? Расскажите о правилах движения группы на маршруте. Почему последние километры дневного перехода считаются сложными? Как надо относиться к окружающей природе при движении на маршруте и на привале? Что такое «Границы полигона» и зачем они определяются?

Домашнее задание. Раздел 1, глава 3, темы 3.1 и 3.2.

Практические задания.

1. Отгадайте и правильно впишите в клеточки слова (задание 5 в конце темы 3.1.). Из букв, стоящих в серых клеточках, составьте слово, которое очень необходимо в походе.

2. Нарисуйте по памяти схему своего маршрута от дома до школы, от платформы электрички до дачи или еще какой-либо маршрут.

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

4. Изобразите на схеме район ближайшего леса, куда вы ходите за грибами, ягодами. Определите сами, или расспросите местных жителей о том, какими линейными ориентирами ограничен этот участок. Определите примерное их направление. Отправляясь в лес с родителями, попробуйте выйти на эти ориентиры. Перед этим определите направление на север, затем направление на линейный ориентир.

Poly много+ gonia угол. 1 . мат. Многоугольник (замкнутый или незамкнутый). БАС-1. Также вышеупомянутые грунтрис я желал такова, каким образом чертят сию маниру и с кругом или четвероугольника и зачинают с которого полигона - внешнего или внутренного. 1712. ПБП 12 (1) 99. || Замкнутый и незамкнутый многоугольник на местности и на плане. БАС-1. ♦ Крепостной полигон . Расположение крепостных сооружений в форме многоугольника . БАС-1. Атаки с двух сторон к Азову вести наискорее: первую, действительную, против обоих полигонов бастиона.. водяных ворот и к доку; другую фос-атаку - по реке Дону. 1736. Осада Азова. // СВИМ 3 188. Против прожектированному, для прикрывания некоторых каменных небольших зделал я новые три полигона с равелинами. 1737. М. А. Муравьев Зап. // РОА 5 13. Изъяснение крепостного плана. 1). Два полигона, кои уже тут находятся для укрепления линии a, b, c, d. 1763. Бецкой Прил. 13. По предписанным правилам сделаны конструкции (сочинения) для всех правильных полигонов от 4 до 12 сторон. 1777. Кург. Кн. науки воен. 55. Для закрытия главного вала в полигонах.. назначены полумесяцы (demi-lune ) и контр-гарды; фланки во всех земли полигонах защищены большими орлионами и имеют в себе казематы для горизонтальной рва обороны. 1785. Потемкин Бум. 131. Соразмерно сему взять и Севастопольского укрепления полигон, который вышел гораздо меньше определенного гг. Вобаном и Кегорном, ибо у первого обороны 150, а у последнего 180 тоазов. 1785. Потемкин Бум. 131. Полигон <крепости> остается прежний. Гарнизон отвечает протяжению линии фортов. План обороны должен строиться к сокращению полигона. Осада Порт-Артура. // Из боевого прошлого 319. || Сторона крепости . Положение Екатеринбурхской крепости - на ровном месте: один полигон к зюйду, другой к норду, третей к осту, четвертый к весту в Уральских горах. от которых около оного небольшие горы имеются. 1735. Геннин Опис. урал. и сиб. заводов. // Седой Урал 340. Редко случается, что неприятель своею атакою больше одной стороны крепости захватывает: и ежели своей атакою две и три стороны крепости (то есть три полигона) охватит, то только для занятия надлежащего места под положение батарей и против фланков атакованных бастионов сие учинит. 1744. Вобан 180. Обыкновенно в регулярных крепостях полагается для обороны на всякой полигон по баталиону . Тат. Лекс. // Т. Избр. 230. Она <крепость> имеет шесть полигонов регулярных, а по пропорции сей должно для защищения быть гарнизону двенадцати батальонам, которого здесь только три. Румянцев 2 110. Хотя есть крепости, имеющие менее шести полигонов. 1830. Вессель 227.

2. устар. Здание с многоугольным основанием. Павленков 1911. Находятся три большия сдания <так> Академии Наук особо, и суть ради берега в таком положении, будьто составляли часть многоугольнаго полигона. ГС 1801 1 70.

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

4. Участок местности, специально оборудованный для проведения испытаний технических средств вооружения, учебных артиллерийских стрельб и тренировок технических родов войск. БАС-1. Он отправился туда <в Африку>, как отправляются на охоту, в фехтовальный зал или полигон. Слово 1879 8 2 136. Учения на казарменном дворе и на полигоне, выправка солдат, чистка лошадей - сколько всем этим хлопот и беспокойства. Набл. 1888 4 1 249. С треском, гулом и грохотом, разражаясь пальбой, как пулемет на полигоне.. мчал это чудовище. Федин Братья. // Ф. 3 36. Инспектировали буи.., готовились к полигонам, провдили полигоны <в море>. О. Кучкина Голос золы. // Нева 2002 10 7. || расш . Регламентация вида и типа домов, застройки улиц, частей города были элементом тотального полицейского контроля над жизнью петербуржцев, который установился при Петре - истовом проповеднике концепции "регулярного" государства. Петербург стал настоящим полигоном для осуществления насильственно перевоспитываемых подданных. Звезда 2003 5 146.

5. Открытая площадка с оборудованием для изготовления элементов сборных конструкций и деталей. СИС 1985. БАС-1.

6. Свалка мусора вне города в специально отведенном месте . Сов. Рос. 4. 7. 1987.

7. шутл., угол. Площадь . Мокиенко 2000.

8. арест. Плац в ИТУ . Мокиенко 2000.

9. Из лексикона игроков в ролевые игры . За границы полигона не выходить. Запись 1999. Мокиенко 2000. - Лекс. Ян. 1806: полигон; САН 1847: полиго/н.


Исторический словарь галлицизмов русского языка. - М.: Словарное издательство ЭТС http://www.ets.ru/pg/r/dict/gall_dict.htm . Николай Иванович Епишкин [email protected] . 2010 .

Синонимы :

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

    ПОЛИГОН - (греч., от polys многий, и gonia угол). 1) многоугольник. 2) место за городом, где происходит артиллерийское учение, пальба из орудий. 3) в фортификации: линия, соединяющая углы двух смежных бастионов. Словарь иностранных слов, вошедших в состав… … Словарь иностранных слов русского языка

    полигон - автодром, многоугольник, капустин яр, стрельбище, планеродром, площадка, автополигон Словарь русских синонимов. полигон стрельбище Словарь синонимов русского языка. Практический справочник. М.: Русский язык. З. Е. Александрова. 2011 … Словарь синонимов

    Полигон 2 - Жанр Комедия, Пародия, Ужасы Режиссёр Павел Фоминенко Продюсер Павел Фоминенко Автор сценария … Википедия

    ПОЛИГОН - ПОЛИГОН, полигона, муж. (от греч. poly много и gonia угол). 1. Большой незаселенный участок, служащий местом для опытных или учебных занятий и упражнений специальных войск, стрельбище (воен.). Артиллерийский полигон. 2. Расположение крепостных… … Толковый словарь Ушакова

    полигон - ПОЛИГОН, стрельбище … Словарь-тезаурус синонимов русской речи

    Полигон - – вид производства железобетона, располагаемого на открытом воздухе, иногда имеющего навес (кровлю); входит в состав заводов железобетонных изделий или является самостоятельным предприятием. [Терминологический словарь по бетону и… … Энциклопедия терминов, определений и пояснений строительных материалов

    ПОЛИГОН - (от греч. polygonos многоугольный) участок суши или моря, предназначен для испытаний оружия, военной техники, боевой подготовки войск …

    ПОЛИГОН - то же, что многоугольник … Большой Энциклопедический словарь

Использование

    Если флажок установлен (опция neighbor_option установлена как IDENTIFY_NEIGHBORS в скриптах), для каждого выходного объекта будет сохранена информация о соседних полигонах. Как показано выше, границы конвертируются в линии, с учетом пересечений и общих сегментов; два новых поля, LEFT_FID и RIGHT_FID, будут добавлены в выходной класс объектов и установлены на идентификаторы объектов входных полигонов слева и справа от каждой выходной линии. Атрибты входных объектов не будут поддерживаться в выходном классе объектов. Ниже детально проанализирован сам процесс и варианты выходных данных:

    • В полигональной геометрии, выходная граница всегда строится в направлении по часовой стрелке. Если полигон имеет отверстие, граница отверстия (или внутренняя) всегда строится в направлении против часовой стрелки. Таким образом, для полигона, у которого нет соседей слева (с внешней стороны) от его внешней границы и слева (с внутренней стороны) от границы отверстия, результирующие линии будут иметь значение -1 для LEFT_FID и идентификатор полигонального объекта как RIGHT_FID.
    • Если полигон содержит другой полигон, будет создана одна выходная линия в направлении по часовой стрелке, представляющая общую границу, где LEFT_FID установлен на идентификатор объекта внешнего полигона, а RIGHT_FID установлен на идентификатор объекта внутреннего полигона.
    • Если два полигона имеют общую часть границы, будет создана одна выходная линия, представляющая общий сегмент. Направление линии будет произвольным; LEFT_FID и RIGHT_FID будут установлены на идентификатор левого и правого полигональных объектов соответственно.
    • Если полигон перекрывает другой полигон, будут созданы две выходные линии, представляющие каждую границу пересечения дважды: первая линия будет представлять внешнюю границу одного из перекрывающихся полигонов, таким образом, LEFT_FID - это идентификатор объекта полигона, который он пересекает, а RIGHT_FID будет ее собственным идентификатором полигона; вторая линия будет в противоположном направлении, разбивая другие полигоны, таким образом LEFT_FID и RIGHT_FID будут такими же, как другие идентификаторы полигонального объекта.
    • Составные объекты во входных полигонах не поддерживаются; все выходные линии простые.
  • Если флажок Идентифицировать и хранить информацию о соседних полигонов не установлен (neighbor_option установлено на IGNORE_NEIGHBORS в скриптах), информация о соседних полигонах будет игнорироваться. Каждая граница входного полигона будет записана как отдельный линейный объект. Составной полигон станет составной линией в выходных данных. Атрибуты входных объектов будут скопированы в выходной класс объектов. Новое поле, ORIG_FID, будет добавлено к выходным даным и установлено на идентификатор входного объекта каждой линии.

    Для входных объектов параметрических (истиных) кривых, выходные линии остануться истиными кривыми, даже если они разбиты. Не применяется к данным шейп-файла.

Синтаксис

PolygonToLine_management (in_features, out_feature_class, {neighbor_option})

Параметр Объяснение Тип данных

Входные объекты, которые должны быть полигонами.

Feature Layer

out_feature_class

Выходной класс линейных объектов.

Feature Class

(дополнительно)

Устанавливает, нужно ли идентифицировать и хранить информацию о соседних полигонах.

  • IDENTIFY_NEIGHBORS -Информация о соседних полигонах будет сохраняться в выходных данных. Если различные сегменты полигона имеют общую границу с другими полигонами, граница будет разбита, так чтобы каждый уникально хранящийся сегмент стал линией с двумя идентификаторами соседних полигонов, хранящихся в выходных данных. Это значение используется по умолчанию.
  • IGNORE_NEIGHBORS -Информация о соседних полигонах будет игнорироваться; граница каждого полигона станет линейным объектом с идентификатором исходного полигонального объекта, хранящимся в выходных данных.
Boolean

Пример кода

Полигон в линию. Пример 1 (окно Python)

Пример скрипта Python для выполнения функции Полигон в линию (Polygon To Line) с запуском из окна Python в ArcGIS.

import arcpy from arcpy import env env . workspace = "C:/data" arcpy . PolygonToLine_management ("Habitat_Analysis.gdb/vegtype" , "C:/output/Output.gdb/vegtype_lines" , "IGNORE_NEIGHBORS" )

Полигон в линию. Пример 2 (автономный скрипт)

Пример скрипта Python для выполнения функции Полигон в линию (Polygon To Line) в автономном режиме.

# Name: PolygonToLine_Example2.py # Description: Use PolygonToLine function to convert polygons to lines, # and report how many shared or overlapping boundary lines # were found. # # import system modules import arcpy from arcpy import env # Set environment settings env . workspace = "C:/data/landcovers.gdb" # Create variables for the input and output feature classes inFeatureClass = "bldgs" outFeatureClass = "bldgs_lines" # Use error trapping in case a problem occurs when running the tool try : # Run PolygonToLine to convert polygons to lines using default neighbor_option arcpy . PolygonToLine_management (inFeatureClass , outFeatureClass ) # Select lines that have LEFT_FID values greater than -1 arcpy . MakeFeatureLayer_management (outFeatureClass , "selection_lyr" , " \" LEFT_FID \" > -1" ) result = arcpy . GetCount_management ("selection_lyr" ) if (result . getOutput (0 ) == "0" ): print "No overlapping or shared boundary lines were found." else : print result . getOutput (0 ) + " overlapping or shared " + \ "boundary lines were found." except Exception , e : # If an error occurred, print line number and error message import traceback , sys tb = sys . exc_info ()[ 2 ] print "Line %i " % tb . tb_lineno print e . message