Справка DIGIMINE

 'Средняя' полилиния между несколькими замкнутыми

 'Средняя' полилиния между несколькими замкнутыми

Previous topic Next topic  

 'Средняя' полилиния между несколькими замкнутыми

Previous topic Next topic  

 

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

 

Хотя в названии режима "средняя" полилиния упоминается в единственном числе, при построении может получиться несколько полилиний.

 

 

Процесс построения "средней" полилинии состоит из следующих этапов:

 

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

 

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

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

 

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

 

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

5. Подтверждение [записи] построенных полилиний (двойной клик на левую клавишу мыши или Enter) или отмена триангуляции для выбранных полилиний (Esc).

Запись построенных полилиний производится в текущий основной файл-чертеж.

 

 

 

Описание принципа построения "средней" полилинии

 

Для исходных [замкнутых] полилиний вычисляется "усредненная" плоскость  - по минимуму суммы квадратов расстояний точек исходных полилиний до плоскости.

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

Производится триангуляция на плоскости, подобная триангуляции изолиний рельефа дневной поверхности с построением тальвегов/водоразделов.

 

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

 

Первоначально построенные полилинии располагаются в "усредненной" плоскости исходных полилиний.

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

 

 

 

Пример построения "средней полилинии", лежащей в "усредненной" плоскости (смещение равно нулю)

 

 

 

 

 

 

 

Пример построения "средней полилинии" со смещением и использованим ее при бифуркации

 

 

В приводимом ниже примере сначала производится построение "средней" полилинии между двумя исходными контурами со смещением 25м.

Предварительно в диалоге "Построение полилиний, проходящих между замкнутыми полилиниями" было задано:

 

 

Запись "средней" полилинии производится в тот же файл-чертеж, в котором находятся исходные полилинии (он сделан текущим основным файлом-чертежом).

 

Далее полученная "средняя" полилиния редактируется, со стыковкой к той полилинии, от которой планируется построить разветвление (в результате стыковки исходная полилиния автоматически разделяется на части).

 

И, наконец, дважды производится триангуляция между полилиниями в режиме "Соединение двух полилиний".

 

 

 

 

 

 

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

 

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

 

Ниже приводится пример построения разветвления 'каркаса' разными способами.

 

1. Разветвление 'каркаса' типа 'один ко многим':

 

2. Разветвление 'каркаса' типа 'пары контуров':

 

 

3. Разветвление 'каркаса' с использованием дополнительных построений:

 

 

 

 

 

На что обращать внимание при 'ручном' построении разветвлений с использованием дополнительных построений

 

 

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

 

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

 

 

 

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

 

 

 

С учетом вышесказанного, рекомендуется производить построение полилиний-"перегородок" до того, как полилиния, к которой производится стыковка (с соответствующим разделением полилинии) будет принимать участие в триангуляции.

 

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