Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: garipov72 от 08-10-2014, 12:59:07
-
Добрый день. Во вложении есть пример. Есть контур поллинии внутри него надо нарисовать линии, от границы до границы. Первая мысль была штриховка, однако как выяснилось нельзя (будут проблемы при трансляции в MapInfo), сказали нарисовать линиями.
Собственно я в тупике, может у кого есть мысли куда смотреть?
(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fs13.postimg.org%2Fpbm39y4k3%2Fimage.jpg&hash=ea72c6e4405e82b8ebed42083848c818) (http://postimg.org/image/pbm39y4k3/)
-
может у кого есть мысли куда смотреть
Создать штриховку и затем её взорвать (Explode).
-
Андрей, можно по подробнее, я так понимаю будет преобразование?
-
Андрей, можно по подробнее, я так понимаю будет преобразование?
-
Андрей Спасибо!!!! Даже с моими кривыми руками все получилось как надо! А я уже думал геометрией заняться...
-
А я уже думал геометрией заняться...
Андрей предложил самое простое и быстрое решение. Хотя повозится с геометрией программисту было бы интересней. Мне так кажется. ;)
-
Опять уперся в камень. В качестве примера проверки убеждения брал пример от http://adn-cis.org/shtrixovka-pri-pomoshhi-autocad-.net-api.html (http://adn-cis.org/shtrixovka-pri-pomoshhi-autocad-.net-api.html) и травил его. Все отработало на ура. Однако в проекте я должен залить замкнутую поллинию (Polyline), собственно получаю постоянно ошибку. Я так понимаю её надо во что то преобразовать?
-
будут проблемы при трансляции в MapInfo
Бред, а что сразу в tab/mif не сделать?
Или использовать MPolygon? Его для того и придумали!
её надо во что то преобразовать?
Засунуть в ObjectIdCollection
-
trir спасибо за подсказку. Не судите строго, за глупые вопросы, не везде с ходу могу сообразить. Все получилось.
-
Берете габариты контура, проводите "временные" линии и вычисляете точки пересечения их с контуром (их всегда будет четное количество если контур имеет рациональную площадь) - соединив точки через пару (1-2; 3-4; 5-6,..) - вы получите линии внутри контура. Похожий алгоритм реализовывался здесь http://adn-cis.org/forum/index.php?topic=750.0 (http://adn-cis.org/forum/index.php?topic=750.0) для разделение площади на "клетки".
Можно и без временных линий - но здесь надо будет поиграть с математикой (или упростить задачу только до линейных отрезков контура).
-
их всегда будет четное количество если контур имеет рациональную площадь
Не совсем так. Есть еще вырожденные пересечения, которые необходимо отдельно обрабатывать.