
02.01.2011, 21:59
|
|
Новичок
|
|
Регистрация: 02.01.2011
Сообщений: 6
|
|
|
работа с STL-файлами
Добрый день!
Подскажите алгоритм...
Задача состоит в следующем: имеется STL файл с моделью, необходимо его прочитать, после вывести модель на экран, после с низу вверх порезать модель на множество мелких слоев плоскостью (как колбасу, толщину слоя может задаваться руками либо программно ее вычислять), при этом анализировать получившуюся геометрию (для дальнейшей работы) при пересечении плоскости и 3д модели.
|
|

02.01.2011, 22:22
|
|
|
|
к чему из перечисленного алгоритм ?
|
|

02.01.2011, 22:56
|
|
Новичок
|
|
Регистрация: 02.01.2011
Сообщений: 6
|
|
Сообщение от гocть
|
|
к чему из перечисленного алгоритм ?
|
Ну хотя бы к части нарезки. Нужно находить контур который будет при отрезке.
|
|

03.01.2011, 11:19
|
|
Местный
|
|
Регистрация: 03.11.2006
Адрес: Москва
Сообщений: 166
|
|
У меня есть программа, которая читает и изображает STL-файлы.
|
|

03.01.2011, 16:16
|
|
Новичок
|
|
Регистрация: 02.01.2011
Сообщений: 6
|
|
Сообщение от prografix
|
|
У меня есть программа, которая читает и изображает STL-файлы.
|
О! Эту супер прогу я нашел вчера. Автору, ОООГРОМНОЕ СПАСИБО! теперь осталось разобраться как рассекать 3д модель плоскостью и находить контур пересечения плоскости и модели.
Если у кого есть какие идеи буду признателен!
|
|

03.01.2011, 17:04
|
|
|
|
ну, казалось бы, алгоритм очевиден - пересекаешь каждый треугольник со своей плоскостью, получаешь отрезок на плоскости, потом обходишь отрезки, делаешь из них полигон, это и будет разрез
|
|

03.01.2011, 17:09
|
|
Местный
|
|
Регистрация: 03.11.2006
Адрес: Москва
Сообщений: 166
|
|
|
Т.к. STL-файл представляет набор треугольников, то надо пересекать их с плоскостью. В результате пересечения треугольника с плоскостью будет 1) ничего ( нет пересечения ) 2) точка ( этот случай игнорируем ) 3) отрезок 4) треугольник. А потом надо отрезки собрать в многоугольники.
|
|

04.01.2011, 12:43
|
|
Новичок
|
|
Регистрация: 02.01.2011
Сообщений: 6
|
|
Сообщение от prografix
|
|
Т.к. STL-файл представляет набор треугольников, то надо пересекать их с плоскостью. В результате пересечения треугольника с плоскостью будет 1) ничего ( нет пересечения ) 2) точка ( этот случай игнорируем ) 3) отрезок 4) треугольник. А потом надо отрезки собрать в многоугольники.
|
Вот как раз я и пытаюсь узнать алгоритм всего этого дела. Ну может есть готовая библиотека либо метод специальный какой?
Не могу вьехать как это делается, ну есть у меня все треугольники и как быть дальше, как найти пересечение этого всего с плоскостью?
|
|

04.01.2011, 14:08
|
|
Местный
|
|
Регистрация: 03.11.2006
Адрес: Москва
Сообщений: 166
|
|
|
Пересечь треугольник с плоскостью несложно. Сложности будут потом при объединении отрезков в многоугольники. Всё за тебя делать не хочется. Могу рассказать отдельные вещи. Например, для того, чтобы найти пересечение треугольника с плоскостью надо вначале найти расстояния вершин до плоскости со знаком ( с одной стороны плоскости расстояния положительные, с другой - отрицательные ). Надеюсь, как это сделать тебе известно. Далее, если все 3 расстояния больше нуля или все меньше нуля - значит пересечения нет. Если одна точка имеет нулевое расстояние, а остальные одновременно больше или меньше нуля - значит пересечение в одной точке. Если два расстояния нулевые, а третье нет - значит пересечение по ребру. Если все три расстояния нулевые - значит пересечением является весь треугольник. Иначе будет пересечением отрезок концы которого лежат на рёбрах треугольника, и они делят ребро на части пропорционально расстоянию до плоскости.
|
|

06.01.2011, 00:29
|
|
Новичок
|
|
Регистрация: 02.01.2011
Сообщений: 6
|
|
|
а как найти линию, которая получится в следствии пересечения треугольника и плоскости? там будет известна только одна точка как я понимаю?
|
|
| Опции темы |
Поиск в этой теме |
|
|
|
| Опции просмотра |
Линейный вид
|
|
| |