В общем, сам вопрос в названии темы. Более подробно примерно так: Имею озеро. Формирую МПолигон по береговой линии. Но в озере есть остров. Он полностью закрывается штриховкой МПолигона. Как вычленить этот остров? Ведь площадь зеркала воды должна быть меньше как раз на величину площади острова. Может как-то сумбурно задал вопрос, извиняюсь. Тороплюсь.
при создании полигона - указывай не только внешний контур, но и дырки Код: public MPolygon MakePolygon(Geometry.TPolygon wp) { MPolygon mpoly = new MPolygon(); MPolygonLoopCollection acPolyColl = ConvertPolygon(wp); foreach (MPolygonLoop loop in acPolyColl) { mpoly.AppendMPolygonLoop(loop, false, 0); } mpoly.PatternScale = 50; mpoly.PatternSpace = 50; mpoly.SetPattern(HatchPatternType.PreDefined, "ANSI37"); return mpoly; } https://github.com/triroakenshield/RosReestrImpLib/blob/master/RosReestrImp/MyCommands.cs Редактировать FDO-геометрию гораздо удобнее!
Спасибо всем откликнувшимся. Это в отношении примитива "штриховка". Пробовал это сделать с МПолигоном - не вышло, или что-то не так делал. А так получилось. У самого ума почему-то нехватило выделить еще и дырки, хотя мысль пробегала. Теперь возник вопрос: почему-то МПолигон не описал всю полилинию, то есть он сформировался как-то неточно, как-то вот так, как на скрине: Может есть где-то настройки, в которых можно что-то изменить?
Полилиния 2D. Двойные точки - фиг знает. Найти их есть инструмент? Не увидел. В общем бросил эту затею. Надобность отпала.
Двойные точки проще удалить PL-VXOPT из PLTools. Так же можно и Корректировка (Drawing cleanup), _MAPCLEAN в Map 3D. Последним еще много что можно найти/исправить.