|
Заблокирован
|
|
Построение OFFSET полилинии02.07.2017, 14:07. Показов 2734. Ответов 15
Метки нет (Все метки)
Как малой кровью построить сдвинутую поли линию (offset) от базовой линии в заданном направление хотя бы в 2D (а лучше в 3D)? Есть какие то мысли?
0
|
|
| 02.07.2017, 14:07 | |
|
Ответы с готовыми решениями:
15
Offset dest и offset sourse
|
| 02.07.2017, 17:00 | |
|
Не по теме: Это к чему относится? Какими средствами рисуешь?
0
|
|
|
Заблокирован
|
||
| 02.07.2017, 17:09 [ТС] | ||
|
Так что, может есть какая - то либа для работы с 2д геометрией? Лучше конечно для 3д геометрии, но без неё я переживу, просто буду всё вертеть сначала в одну плоскость, редактировать в 2д, а потом вертеть обратно. Ну или может есть кусок кода для оффсета полилинии?
0
|
||
|
Вездепух
12937 / 6804 / 1821
Регистрация: 18.10.2014
Сообщений: 17,220
|
||
| 02.07.2017, 20:31 | ||
|
А почему на картинке многоугольник - ортогональный?
1
|
||
|
Заблокирован
|
|||
| 02.07.2017, 20:51 [ТС] | |||
|
0
|
|||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
| 02.07.2017, 20:57 | |
|
MirageEngine, тут ещё нужно просчитывать случаи "вырождения" контура (когда во внешний контур линия не поместится), и внутри базовой линии может получиться несколько внутренних контуров. Так что простых способов тут принципиально быть не может....
1
|
|
|
What a waste!
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
|
| 02.07.2017, 21:06 | |
|
MirageEngine, я так понял что-то вроде такого нужно: https://github.com/bbecquet/Leaflet.PolylineOffset ? Или нет?
1
|
|
|
Заблокирован
|
|||
| 02.07.2017, 21:17 [ТС] | |||
0
|
|||
|
What a waste!
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
|
||
| 02.07.2017, 21:38 | ||
|
Там базовая линия пунктиром и две со сдвигом.
0
|
||
|
Заблокирован
|
|
| 02.07.2017, 21:40 [ТС] | |
|
Да...как говорится, глаза боятся, а руки делают
![]() Задача то элементарная, я уже понял как нужно делать: 1. Из дух соседних кусочков полилинии строишь вектор направления сдвига точки, просто вектора складываешь (один реверснуть нужно будет) 2. По точкам строишь новые линии и проверяешь, если у нового кусочка вектор направления не совпадает с оригиналом - значит оффсет невозможен, как раз случай вырождения. Точнее, если будет косяк - вектор уйдёт в обратную сторону. Спасибо мне!
0
|
|
|
2642 / 1653 / 267
Регистрация: 19.02.2010
Сообщений: 4,380
|
||
| 02.07.2017, 22:09 | ||
|
0
|
||
|
Вездепух
12937 / 6804 / 1821
Регистрация: 18.10.2014
Сообщений: 17,220
|
||||
| 02.07.2017, 23:33 | ||||
|
Более-менее приемлемое решение этой задачи "на коленке" существует, но в общем случае оно работать не будет. Мое настоящее общее решение этой задачи построено на т.наз. "кинетической триангуляции", но это не "кусочек кода", а весьма и весьма громоздкая и многоэтапная реализация.
1
|
||||
|
Заблокирован
|
|
| 03.07.2017, 19:14 [ТС] | |
|
Так, в общем я нашёл нужную либу для офсетов и много другого, называется Clipper
0
|
|
|
Вездепух
12937 / 6804 / 1821
Регистрация: 18.10.2014
Сообщений: 17,220
|
||
| 03.07.2017, 20:55 | ||
Сообщение было отмечено MirageEngine как решение
Решениеhttp://www.cgal.org/index.html http://doc.cgal.org/latest/Str... Offsetting
1
|
||
|
Заблокирован
|
||
| 03.07.2017, 21:11 [ТС] | ||
|
LGPL v3 1. Открывать исходники своего собственного софта? GPL v3 1. Открывать исходники своего собственного софта?
0
|
||
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
| 04.07.2017, 10:57 | |
Сообщение было отмечено MirageEngine как решение
Решение
1
|
|
| 04.07.2017, 10:57 | |
|
Помогаю со студенческими работами здесь
16
Подсчет площади полилинии Autocad Как превратить текст в полилинии? Скругление углов полилинии и полигона рациональными дугами окружностей Как полученные точки записать в массив для рисования полилинии offset c++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|