| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Можно ли найти программно список всех полилиний, которые пересекает исходный луч, без перебора в цикле?

VBA. Можно ли найти программно список всех полилиний, которые пересекает исходный луч, без перебора в цикле?

Ответ
Поиск в этой теме
Непрочитано 30.01.2019, 14:43
VBA. Можно ли найти программно список всех полилиний, которые пересекает исходный луч, без перебора в цикле?
Кудахтыч
 
Регистрация: 28.01.2019
Сообщений: 62

Есть вертикальный луч, он пересекает от 0 до нескольких полилиний, можно ли без цикла перебора большого количества (иногда несколько тысяч) полилиний как то определить количество пересекаемых лучом полилиний?
Как сделать в цикле я знаю: через проверку массива intPointsPD = APolyline.IntersectWith(ARay, acExtendNone), но для этого придётся ждать очень долго, тем более, что надо делать это ещё и с многими лучами, короче очень долго выходит с циклом по полилиниям.
Просмотров: 5133
 
Непрочитано 02.02.2019, 20:03
1 | 1 #21
trir


 
Регистрация: 18.12.2010
Сообщений: 5,057


Цитата:
Вычислять пересечения линий и плоскостей я умею, дело в быстроте разработки и исполнении кода.
в этих книжках как раз это и описано - как быстро обрабатывать геометрию
trir на форуме  
 
Непрочитано 02.02.2019, 21:06
#22
CalcProg


 
Регистрация: 02.10.2016
Сообщений: 205


офтоп
История программных революций от Microsoft,
вкратце.
Сначала были Windows API и DLL Hell. Революцией №1 было DDE – помните, как ссылки позволили нам создавать статусные строки, отражающие текущую цену акций Microsoft? Примерно тогда же Microsoft создала ресурс VERSION NFO, исключающий DLL Hell. Но другая группа в Microsoft нашла в DDE фатальный недостаток – его писали не они! Для решения этой проблемы они создали OLE (похожее на DDE, но другое), и я наивно вспоминаю докладчика на Microsoft-овской конференции, говорящего, что скоро Windows API перепишут как OLE API, и каждый элемент на экране будет ОСХ-ом. В OLE появились интерфейсы, исключающие DLL Hell. Помните болезнь с названием «по месту», при которой мы мечтали встроить все свои приложения в один (возможно, очень большой) документ Word? Где-то в то же время Microsoft уверовала в религию С++, возникла MFC, решившая все наши проблемы ещё раз. Но OLE не собиралась сложа руки смотреть на это, поэтому оно заново родилось под именем COM, и мы внезапно поняли, что OLE (или это было DDE?) будет всегда – и даже включает тщательно разработанную систему версий компонентов,
исключающую DLL Hell. В это время группа отступников внутри Microsoft обнаружила в MFC фатальный недостаток – его писали не они! Они немедленно исправили этот недочёт, создав ATL, который как MFC, но другой, и попытались спрятать все замечательные вещи, которым так упорно старалась обучить нас группа COM. Это заставило группу COM (или это было OLE?) переименоваться в ActiveX и выпустить около тонны новых интерфейсов (включая интерфейсы контроля версий, исключающие DLL Hell), а заодно возможность сделать весь код загружаемым через броузеры, прямо вместе с определяемыми пользователем вирусами (назло этим гадам из ATL!). Группа операционных систем громким криком, как забытый средний ребенок, потребовала внимания, сказав, что нам следует готовиться к Cairo, некой таинственной хреновине, которую никогда не могли даже толком описать, не то, что выпустить. К их чести, следует сказать, что они таки представили концепцию «System File Protection», исключающую DLL Hell. Но тут некая группа в Microsoft нашла фатальный недостаток в Java — её писали не они! Это было исправлено созданием то ли J, то ли Jole, а может, и ActiveJ (если честно, я просто не помню), точно такого же как Java, но другого. Это было круто, но Sun засудило Microsoft по какому-то дряхлому закону. Это была явная попытка задушить право Microsoft выпускать такие же продукты, как у других, но другие. Помните менеджера по J/Jole/ActiveJ, стучащего по столу туфлей и говорящего, что Microsoft никогда не бросит этот продукт? Глупец! Все это означало только одно – недостаток внимания к группе ActiveX (или это был COM?). Эта невероятно жизнерадостная толпа вернулась с COM+ и MTS наперевес (может, это стоило назвать ActiveX+?). Непонятно почему к MTS не приставили «COM» или «Active» или «X» или «+» – они меня просто потрясли этим! Они также грозились добавить + ко всем модным тогда выражениям. Примерно тогда же кое-кто начал вопить про «Windows DNA» (почему не DINA) и «Windows Washboard», и вопил некоторое время, но всё это почило раньше, чем все поняли, что это было. К этому моменту Microsoft уже несколько лет с нарастающей тревогой наблюдала за интернетом. Недавно они пришли к пониманию, что у интернета есть фатальный недостаток: ну, вы поняли. И это приводит нас к текущему моменту и технологии .NET, похожей на Интернет, но с большим количеством пресс-релизов. Главное, что нужно очень чётко понимать — .NET исключает DLL Hell. В .NET входит новый язык, C#, (выясняется, что в Active++ Jspresso был фатальный недостаток, от которого он и помер). .NET включает виртуальную машину, которую будут использовать все языки (видимо, из-за фатальных недостатков в процессорах Интел). .NET включает единую систему защиты (есть все-таки фатальный недостаток в хранении паролей не на серверах Microsoft). Реально проще перечислить вещи, которых .NET не включает. .NET наверняка революционно изменит Windows-программирование… примерно на год.
----- добавлено через ~11 мин. -----
быстро обрабатываются только проидексированные массивы. тоесть массив перед этим нужно прошерстить по ряду характерных признаков либо сразу при добавлении в массив присваивать соответствующие индексы.

Последний раз редактировалось Кулик Алексей aka kpblc, 02.02.2019 в 22:14.
CalcProg вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Можно ли найти программно список всех полилиний, которые пересекает исходный луч, без перебора в цикле?

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
LISP.Окружности в начальных точках всех полилиний чертежа Raznouh LISP 5 20.01.2014 07:30
Нужен LISP: получить список групп в которые входит объект koval_a_r LISP 9 05.04.2013 14:49
Два вопроса новичка: Доступ к свойствам полилинии и обработка всех полилиний Иван Морозов Программирование 7 02.11.2012 17:11
Подскажите где можно найти проекты крытого горнолыжного курорта (металлокаркас) cool4i Поиск литературы, чертежей, моделей и прочих материалов 0 13.11.2011 21:34