|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Алгоритм построения offset для многоугольников
Отопление и вентиляция
Москва
Регистрация: 31.10.2008
Сообщений: 445
|
||
Просмотров: 2199
|
|
||||
Отопление и вентиляция Регистрация: 31.10.2008
Москва
Сообщений: 445
|
|
|||
![]() |
|
||||
Отопление и вентиляция Регистрация: 31.10.2008
Москва
Сообщений: 445
|
надо внутрь. это я делаю для revit и на шарпе, поэтому и сказал что нужен сам алгоритм, у меня есть solid , я из него могу получить грань, пройтись по всем ребрам и получить координаты точек каждого ребра, ну центр этого солида я могу спроецировать на грань.
|
|||
![]() |
|
||||
Регистрация: 18.11.2019
Сообщений: 1,716
|
Имхо, аналог автокадовского офсета можно полгода (если не полжизни) писать, так как задача гораздо сложнее, чем кажется. Особенно это касается офсета внутрь фигуры, когда часть сегментов может исчезать из-за недостатка места. А если контур состоит из дуг, эллипсов и сплайнов - тушите свет. Задачка со звездочкой. Подозреваю, что Autodesk ее до конца не решил.
|
|||
![]() |
|
||||
Отопление и вентиляция Регистрация: 31.10.2008
Москва
Сообщений: 445
|
ну самими алгоритмом вроде разобрался. тут получается просто если идти по точкам по часовой стрелке то чтобы делать копию отрезка во внутрь фигуры надо построить перпендикулярный вектор в сторону правой руки и отложить условно 200мм если наружу то в сторону левой руки.
осталось теперь понять как отсекать куски условно меньше 400 мм(200мм*2 ) толщиной. у меня только прямые, хоть это легче Последний раз редактировалось Composter, 15.03.2024 в 20:22. |
|||
![]() |
|
||||
Инженер-философ Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,082
|
Не может быть. Как минимум, возможны, например, самопересечения, когда контур распадается на несколько. И слишком большой отступ, когда невозможно построить результат вообще. И сегменты нулевой длины бывают, по ошибке (хотя, возможно, в ревите такое не встретится). И сплайны, тогда и кривые, и точки пересечения вычислять немного сложнее будет. И допуски на плавающую точку надо аккуратно обрабатывать. Честный алгортим просто обязан быть очень длинным.
Тут проще поискать в книжках по машинной графике, или погуглить "offset polygon algorithm". На гитхабе, например, есть какие-то реализации. Вот первая попавшаяся: https://github.com/Stanko/offset-polygon - там в интерактивном демо видно, что самопересечения результата не отслеживаются, и легко получаются глюкавые ответы, но даже там уже полторы сотни строк есть. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Какой язык перспективен для инженера-конструктора с условием | The_Mercy_Seat | Программирование | 705 | 17.03.2021 14:19 |
Алгоритм построения стропильной системы в Revit 2016 | Tyhig | Revit | 8 | 07.11.2017 15:30 |
Алгоритм построения картограммы земляных массс методом квадратов в civil 3D 2011 на основе dwg схемы | hag1989 | Вертикальные решения на базе AutoCAD | 4 | 18.05.2011 04:20 |
Распишите алгоритм построения чертежа | DEviLPr0 | AutoCAD | 6 | 03.10.2010 16:38 |
Задание расч.сх. многоэтажного здания в SCAD. Правильный алгоритм построения? | kinohd | SCAD | 8 | 24.03.2009 23:10 |