|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Генерация 3DFace по точкам пересечения отрезков
дискретизатор континуума (бывший)
Уфа
Регистрация: 28.09.2005
Сообщений: 299
|
||
Просмотров: 3622
|
|
||||
Проектировщик СС Регистрация: 24.06.2008
Минск
Сообщений: 134
![]() |
Сложноватая программа получится, потому как без триангуляции здесь не обойтись. Да и к тому же нет гарантии, что исходная сетка, с точки зрения триангуляции, оптимальна - конечный результат может не совпасть с начальным.
|
|||
![]() |
|
||||
дискретизатор континуума (бывший) Регистрация: 28.09.2005
Уфа
Сообщений: 299
|
Не вижу ничего принципиально сложного (будет конечно пара моментов, которые заставят как следует "почесать репу"). Программа должна загнать в массив (ну или в случае лиспа в список) координаты точек пересечения/точек сопряжения выделенных линий. Затем в цикле прогнать команду 3dface по этим координатам. Все.
Сижу 2ой день "гоняю лисп". Вероятно к понедельнику и сам справлюсь с этой задачей. Однако от помощи окружающих, при наличии у них желания, по прежнему не отказываюсь.
__________________
я еще не волшебник, я только учусь |
|||
![]() |
|
||||
Проектировщик СС Регистрация: 24.06.2008
Минск
Сообщений: 134
![]() |
В случае если сеть типа "#" (то есть есть горизонтальный и вертикальный ряды линий и линии сплошные), то можно после вычисления точек пересечения просто закинуть их в комманду "3dmesh", а потом взорвать полученный объект - получишь отдельные 3DFace
Просто я исходил из более общих уловий, где ячейки могут быть произольной конфигурации. |
|||
![]() |
|
||||
дискретизатор континуума (бывший) Регистрация: 28.09.2005
Уфа
Сообщений: 299
|
Не обязательно горизонтальные и вертикальные. Главное ячейки 4хугольные.
Более общие условия это хорошо. Но для начала в более простой постановке. А потом уже можно опции наращивать.
__________________
я еще не волшебник, я только учусь |
|||
![]() |
|
||||
дискретизатор континуума (бывший) Регистрация: 28.09.2005
Уфа
Сообщений: 299
|
Да, пожалуй подойдет.
![]() Спасибо. Тогда алгоритм таков: 1. Разрываем LINE в местах пересечения лиспом BreakObjects 2. Выделяем требуемую область ("сеть" образованную лайнами) 3. Получаем координаты их start/end point (исключаем повторяющиеся координаты) 4. Строим 3DMESH по этим координатам 5. Взрываем 3DMESH
__________________
я еще не волшебник, я только учусь Последний раз редактировалось cyberkolbasa, 07.07.2008 в 21:02. |
|||
![]() |
|
||||
Проектировщик СС Регистрация: 24.06.2008
Минск
Сообщений: 134
![]() |
Я бы сделал так:
1. Находим все пересечения линий. 2. Тут есть один момент на который Вы не обратили внимания. Из полученного списка формируем матрицу для передачи в 3DMESH (см. Help, 3DMESH). Для работы с командой надо знать размерность матрицы, и к тому же если передать туда координаты скопом, то исходная сеть не получится. 3. Передаем матрицу в 3DMESH. 4. Взрываем 3DMESH. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обрезка полилинии или отрезков в местах пересечения блоков | Джек | Программирование | 7 | 17.09.2006 22:11 |