|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Цикл с неизвестным числом итераций?
Воронеж
Регистрация: 26.06.2007
Сообщений: 151
|
||
Просмотров: 3543
|
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
Для поиска отрезков используй ssget с опцией _Fence. С помощью ssnamex получишь имена объектов и точки пересечения Цитата:
Это один вариант. Если используешь отрезки, то можно решать задачу или ее часть геометрически, используя inters
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
Да, но если окажется, что отрезок i пересекает 2 линии, которые выше его, то его надо разорвать в 2 местах, получив 3 отрезка - причём, последовательно, но это невозможно, так как итерация заканчивается после первого же разрыва.
Цитата:
Цитата:
P.S. Вот приблизительный рисунок - то, как должно всё выглядеть окончательно (схематично). Цифры - это условная высота линий. Последний раз редактировалось Tonic, 31.03.2009 в 11:14. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Tonic, Посмотри здесь функции mip:mark и mip:get-last-ss.
Алгоритм примерно такой: Если принято решение рвать отрезок, то 1. Ставим метку (mip:mark) 2. Рвем 3. Берем новые появившиеся отрезки (mip:get-last-ss) и что-то с ними делаем Но я бы делал не так. Отрезки не рвал, а вычислял точки и создавал с помощью entmakex (пример) (Обрати внимание, не enmake , а entmakeX) Небольшой пример. Нарисуй отрезок (назовем его основной). Нарисуй некоторе количество пересекающих его отрезков. Команда разорвет основной отрезок в местах пересечения с каждым нечетным пересекающим отрезком. Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |