|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Цитата:
Направление сегмента можно получить из вектора направленности - результат работы функции vlax-curve-getFirstDeriv, т.е. угол между двумя точками '(0. 0.) и вектором Направление на ближайшую точку контура, вообще просто - угол между двумя точками - тестовой и ближайшей Угол между двумя углами, вообще просто - вычел из одного другой и получил нужный угол, только проверить чтоб был в диапазоне -180/+180 градусов...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
>Евгений, все таки наверное алгоритм для выпуклых контуров
Ну и алгоритм поста #20 в коде (для выпуклых контуров) Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
VVA, я же описал, если ближайшая точка в вершине, то нужно рассматривать вектор в конце предыдущего сегмента и в начале следующего после ближайшей вершины...
Те же проблемы будут и с выпуклым контуром, если ты укажешь точку снаружи, напротив вершины, т.е. ближайшей будет именно вершина контура.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Цитата:
Цитата:
|
|||
![]() |
|
||||
А у меня другая дилемма, как для команды-boundary найти точку внутри двух контуров красного и синего, чтоб получить зелёный?
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,101
|
|
|||
![]() |
|
||||
Цитата:
![]()
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Disney,
Как вариант 1. Найти центроид одного контура 2. Проверить, находится ли он внутри другого 3. Если нет - поменять контура местами 4. Если опять нет - ? ----- добавлено через ~17 мин. ----- Еще один алгоритм 1. 1-й контур преобразовать в region 2. 2-й контур преобразовать в регион 3. Найти пересечение областей 4. У полученного контура найти центроид Что-то похожее было здесь Там надо нарисовать замкнутую полилинию, задать размеры отверствия и полученное отверствие "посадить" на один из сегментов
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Цитата:
![]() Я думал о подобном, взять центр из GetBoundingBox.
__________________
Почему все вдруг становятся умными, когда уже не надо? Последний раз редактировалось Disney, 03.03.2015 в 12:58. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,377
|
Не прокатит. Возьми фигуру типа "полумесяц"....
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Я в #32 добавил еще один вариант, преобразовать в области, найти пересечение контуров и ... мне кажется этого достаточно ?
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Цитата:
А оказалось ты о команде Пересечение , я привык её к 3D телам применять, а то что она с областями сработает и не знал. Вообще ни когда области не использовал и не понимал для чего они... я и сейчас не понимаю, но в моём случаи пригодиться. Спасибо! ----- добавлено через ~18 ч. ----- Всё получилось. Но теперь как мне достать координаты вершин получившейся области?
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
![]() |
|
||||
Разбил область на линии, и уже из них выудил координаты.
----- добавлено через 20 сек. ----- Ну и как ты её решил?
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Все правильно. Ссылку на пример я приводил в #32
Цитата:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Справка по форуму | Admin | FAQ: Часто задаваемые вопросы | 13 | 04.03.2014 11:12 |
У меня вопрос по Ansys, как правильно оформить контакт с жестким телом? | Цветочек | ANSYS | 17 | 10.11.2013 09:41 |
Проектирование человека. | FOXAL | Разное | 283 | 25.05.2010 09:52 |
Вопрос: Интерактивное построение полилинии внутри lisp-программы | Tonic | LISP | 5 | 26.04.2010 15:50 |
Как определить, что точка за пределами видимой области? VBA | den001 | Программирование | 6 | 20.01.2007 20:48 |