|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как сравнить два списка?
Сургут
Регистрация: 06.05.2010
Сообщений: 248
|
||
Просмотров: 7585
|
|
||||
|
||||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Шутки шутками, но код из #2 не будет работать со списками из #1. Точнее с ними не будет работать никакой код. Это раз. Списки из #1 уж очень похожи на ошметки полилинии, но в таком случае все это сравнение до одного места.
Offtop: С точки зрения банальной эрудиции и метафизической абстракции, не каждый мыслящий индивидуум в препубертатный период способен развивать тенденции к продуктивной регенерации Последний раз редактировалось gomer, 25.08.2013 в 23:58. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Уж не знаю правильно ли я понял - судя по всему mamuk сравнивает двухмерные dxf коды с трехменрыми, но скорее всего делает это не правильно - т.к. не преобразует из системы координат объекта, а считает что лежит он строго в мск, но как говориться хозяин барин - что просил, то и написал (и если с таким кодом возникли трудности, то на следующий уровень наверное пока еще и не нужно - так-бы заработало), хотя как говориться чем дальше в лес, тем злее партизаны - может и так вполне хватит.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 06.05.2010
Сургут
Сообщений: 248
|
попробую без абстракций
![]() Есть чертеж в котором примитивы точки и блоки. координаты блока и точки совпадают. но блок имеет координату без Z т.е. она равна 0. а точка под этим блоком имеет точно такие же координаты, только с определенной Z. Есть необходимость получить список координат тех точек которые равны координатам блока. В моем случае я хочу получить координаты точек которые совпадают с координатами блока. вот я и думал получить два списка координат блока и точек и попытаться выудить нужные значения и сформировать список. чертеж прилагаю конкретно интересует блок BL_82 |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Тут по хорошему надо написать свой member проверяющий точки с определенной погрешностью (типа минимальное расстояние менее чем определенный допуск) - но это тебе в качестве домашнего задания.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Цитата:
Для сравнения координат нужно немного доделать Код:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Появилась задача сравнивать два разноименных набора на предмет одинаковости его членов. То есть, помимо количества объектов нужно выяснить, одни ли и те же объекты входят в эти наборы или нет.
В поисках ничего подобного не нашлось, и пришла мысль сравнивать списки примитивов. Нашел только эту тему, но тут такого решения нет... Может, кто-то видел или писал нечто подобное, подскажите, буду весьма признателен. ![]() |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
сравниваешь размеры, если равны берешь первый и проверяешь есть ли такой элемент во втором.
з.ы. еще подумать возможны-ли "дубли" объектов и если есть, то как их обрабатывать (тут возможны варианты - которые следует учесть в зависимости от задачи).
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Спасибо, Дим, а как думаешь: рациональнее сравнивать непосредственно наборы или списки примитивов?
Задача состоит в том, чтоб определить, совпадает ли некий набор, записанный в переменную, с выделенными в данный момент примитивами. По сему, дублей объектов не будет, так как один из сравниваемых наборов будет создаваться либо через (ssget "_I"), либо через (ssgetfirst), а это исключает повторное попадание примитивов в набор. Но для порядка, конечно, лучше обрабатывать дубли, однако, это сильно усложняет задачу, на мой взгляд, поэтому, думаю, вернусь к этому в случае необходимости. Вот интересно, неужели ни у кого не возникало до сих пор такой задачи? |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Посмотри у Lee Mac'a еще функции :
List Box Functions List Difference List Intersection List Symmetric Difference List Union
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Цитата:
VVA, спасибо, Володь! В который раз выручаешь, когда уже не осталось надежд. ![]() Я так понимаю, что из этих функций более всего подходят List Difference (если вернет ноль элементов, значит, списки равны) или List Intersection (если вернет все элементы одного списка, значит они равны). То, что надо. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Цитата:
А если отсортировать, то можно просто попарно сравнивать n-ные примитивы каждого списка. В первом случае имеем nxn итераций, во втором - сортировку и просто n итераций. Правильно я понимаю? Только вот как сортировать? vl-sort? Какую тогда брать тест-функцию? Или в лоб, acad_strlsort? |
|||
![]() |
|
||||
Цитата:
![]()
__________________
Знание лисп: со справочником Н. Полещука |
||||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите сделать сортировку списка атрибутов блока | Wertgan | Программирование | 11 | 30.04.2015 17:17 |
Сортирвка списка последовательно, по приоритетам (вопрос) | Tonic | Программирование | 9 | 02.02.2010 14:25 |
структурированный список | Holon | Программирование | 22 | 11.09.2007 14:09 |
Исключение элементов одного списка из другого по маске | Кулик Алексей aka kpblc | Программирование | 3 | 18.09.2006 17:31 |
чтение данных из файла | Александер | Программирование | 6 | 08.09.2005 10:24 |