|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
LISP: функция Nth наоборот
Регистрация: 30.03.2012
Сообщений: 101
|
||
Просмотров: 6296
|
|
||||
Регистрация: 30.03.2012
Сообщений: 101
|
Спрашивали? Отвечаем :-)
Стоит задача по списку вида ((x1 y1 z1) (x2 y2 z2) ... ... ), содержащему наборы координат концов линий, определить образуют ли они замкнутый контур. Ну и вообще, в принципе, как же получать список без какого то элемента? (vl-remove-if не подходит из за того что элемент не уникальный) |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Looking for a faster version of delete_nth, insert_nth and switch_nth
Парочка функций из этой темы (там требутся регистрация) http://forum.dwg.ru/showthread.php?p=676403#post676403 http://forum.dwg.ru/showthread.php?t=80369
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 30.03.2012
Сообщений: 101
|
Уважаемый gomer, я именно так ((x1 y1 z1) (x2 y2 z2) ... ... ) написал, чтоб было понятно, что каждый отрезок задан координатой начала и конца, идущими подряд. Задача проверить контур на незамкнутость весьма проста: список не будет содержать по два раза одни и те же координаты или будет нечетное количество элементов. Я пытаюсь решить задачу сложнее: попытаться составить из такого списка замкнутый контур (то есть еще и упорядочить его). Для чего нужно попробовать выстроить из данного набора координат цепочку, где каждая конечная координата одного отрезка соседствует с такой же начальной координатой следующего (ну а голова равна хвосту). Если цепочка выстроится, то контур замкнутый.
VVA, как всегда спасибо! Последний раз редактировалось WhiteShark, 19.03.2013 в 01:57. Причина: поправил |
|||
![]() |
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Цитата:
Может и не супер красивая, но зато быстрая. Код:
|
|||
![]() |
|
||||
Регистрация: 30.03.2012
Сообщений: 101
|
Спасибо спасибо! С Nth уже понятно )
Намного более нетривиальная задачка - исходная (та, что в 10-ом посте). Если у кого мысли есть - скрывайте! Если прям на пальцах то так: есть список ( (18 7 0) (23 59 0) (34 14 0) (18 7 0) (95 13 0) (34 14 0) (23 59 0) (95 13 0) ) надо получить из него ( (23 59 0) (95 13 0) (95 13 0) (34 14 0) (34 14 0) (18 7 0) (18 7 0) (23 59 0) ) Последний раз редактировалось WhiteShark, 20.03.2013 в 23:12. |
|||
![]() |
|
||||
Конструирование в области нефтеразведки Регистрация: 10.02.2006
Гомель
Сообщений: 321
|
Цитата:
![]() Код:
__________________
Никогда не спорьте с дураками - они опустят Вас до своего уровня и победят за счет опыта |
|||
![]() |
|
||||
Регистрация: 30.03.2012
Сообщений: 101
|
Олег (jr.), спасибо, попробую найти!
gomer, спасибо, я уже почти придумал ) просто есть непреодолимая тяга сделать всё так же красиво как вы CB, первый, третий и четвертый списки неправильные потому, что в исходном списке элементы (подсписки) 1и2, 3и4 и т.д. образуют неразрывные пары, т.к. описывают начало и конец одного отрезка |
|||
![]() |
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
WhiteShark, ничего не понятно какой тебе алгоритм нужен?
http://algolist.manual.ru/maths/geom...ull/graham.php этот что-ли? |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Пробы пера были здесь
http://forum.dwg.ru/showthread.php?p=134515#post134515
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 30.03.2012
Сообщений: 101
|
Чтоб не заругали модераторы, спрошу прямо тут. Почему моя функция как то странно работает? Это сдвиг списка влево до тех пор пока не встретится передаваемый аргумент. (ну случай что он не встретится вообще пока не знаю как учесть получше)
Код:
(lshift '(3) '((1) (2) (3) (4))) делает stack overflow ![]() Подскажите в чем дело? |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
AUTOCAD 2010 перестал переключаться в многооконный режим. Проблемы с переменными | Андрей Х. | AutoCAD | 24 | 27.05.2015 10:17 |
Подправте старый лисп | evg76 | LISP | 10 | 25.10.2012 10:23 |
Двутавр | Born | AutoCAD | 14 | 26.03.2009 16:45 |
3D Konstruktor для проектировщиков КМ. | Дима_ | Готовые программы | 17 | 10.07.2008 10:03 |
Помогите с автолиспом | MaloI | LISP | 12 | 26.12.2006 08:05 |