Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Павел55 от 21-08-2019, 18:52:26
-
Добрый вечер! Есть 2 3Dполилинии (можно и 2D - это не особо важно) необходимо получить третью полилинию (как на картинке). В какую сторону копать? Можно ли это реализовать силами api автокада или придется разбираться в геометрических алгоритмах?
(https://i.postimg.cc/hzsjnKJH/image.jpg) (https://postimg.cc/hzsjnKJH)
-
Какие-то 2 тысячи строк кода и я это сделал :) https://sites.google.com/site/avcplugins/osl
-
Но именно для вашего частного случая можно создать регионы и найти их пересечение. А потом опять перегнать в полилинию. Последний момент не так тривиален с учетом наличия дугообразных сегментов.
-
Какие-то 2 тысячи строк кода и я это сделал :) https://sites.google.com/site/avcplugins/osl
Мне нужен именно алгоритм, или хотя бы направление куда копать, а не готовый лисп, ввиду того что этот алгоритм будет частью программы.
-
Мне нужен именно алгоритм
простой алгоритм я вам только что описал. ЛИСП тут не обсуждаем
-
Но именно для вашего частного случая можно создать регионы и найти их пересечение. А потом опять перегнать в полилинию. Последний момент не так тривиален с учетом наличия дугообразных сегментов.
Что есть регион? я так понимаю - это какой то объект типа контура. Допустим получилось 3 региона, как понять какой из них мне нужен?
-
в случае как на картинке, это будет самый большой по площади, но если попадется случай когда, все наоборот или 2 региона равны, тогда как?
-
Добрый вечер! Есть 2 3Dполилинии (можно и 2D - это не особо важно) необходимо получить третью полилинию (как на картинке). В какую сторону копать? Можно ли это реализовать силами api автокада или придется разбираться в геометрических алгоритмах?
(https://i.postimg.cc/hzsjnKJH/image.jpg) (https://postimg.cc/hzsjnKJH)
Поиском:
https://adn-cis.org/forum/index.php?topic=8738
https://adn-cis.org/forum/index.php?topic=8639
-
Можно ли это реализовать силами api автокада или придется разбираться в геометрических алгоритмах?
Плавали, знаем! Реализовано, но только на ObjectARX. Лично я не смог обойтись (для достижения должного быстродействия) силами только API AutoCAD. Дополнительно использовал boost'овые алгоритмы и свои собственные. Вот такой есть практический пример:
(https://secure.avangate.com/images/merchant/bb96ff7f5c9505fd971126ecd171bec2/Atst-11.gif)