Добро пожаловать, гость
:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте :: :: форум ::


Создать новую тему Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.01.2011, 21:59
Новичок

Отправить личное сообщение для cj_zzz Посмотреть профиль Найти все сообщения от cj_zzz
 
Регистрация: 02.01.2011
Сообщений: 6

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

 
Сообщений: n/a

к чему из перечисленного алгоритм ?
Ответить с цитированием
  #3  
Старый 02.01.2011, 22:56
Новичок

Отправить личное сообщение для cj_zzz Посмотреть профиль Найти все сообщения от cj_zzz
 
Регистрация: 02.01.2011
Сообщений: 6

Сообщение от гocть Посмотреть сообщение
к чему из перечисленного алгоритм ?
Ну хотя бы к части нарезки. Нужно находить контур который будет при отрезке.
Ответить с цитированием
  #4  
Старый 03.01.2011, 11:19
Местный

Отправить личное сообщение для prografix Посмотреть профиль Найти все сообщения от prografix
 
Регистрация: 03.11.2006
Адрес: Москва
Сообщений: 166

У меня есть программа, которая читает и изображает STL-файлы.
Ответить с цитированием
  #5  
Старый 03.01.2011, 16:16
Новичок

Отправить личное сообщение для cj_zzz Посмотреть профиль Найти все сообщения от cj_zzz
 
Регистрация: 02.01.2011
Сообщений: 6

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

 
Сообщений: n/a

ну, казалось бы, алгоритм очевиден - пересекаешь каждый треугольник со своей плоскостью, получаешь отрезок на плоскости, потом обходишь отрезки, делаешь из них полигон, это и будет разрез
Ответить с цитированием
  #7  
Старый 03.01.2011, 17:09
Местный

Отправить личное сообщение для prografix Посмотреть профиль Найти все сообщения от prografix
 
Регистрация: 03.11.2006
Адрес: Москва
Сообщений: 166

Т.к. STL-файл представляет набор треугольников, то надо пересекать их с плоскостью. В результате пересечения треугольника с плоскостью будет 1) ничего ( нет пересечения ) 2) точка ( этот случай игнорируем ) 3) отрезок 4) треугольник. А потом надо отрезки собрать в многоугольники.
Ответить с цитированием
  #8  
Старый 04.01.2011, 12:43
Новичок

Отправить личное сообщение для cj_zzz Посмотреть профиль Найти все сообщения от cj_zzz
 
Регистрация: 02.01.2011
Сообщений: 6

Сообщение от prografix Посмотреть сообщение
Т.к. STL-файл представляет набор треугольников, то надо пересекать их с плоскостью. В результате пересечения треугольника с плоскостью будет 1) ничего ( нет пересечения ) 2) точка ( этот случай игнорируем ) 3) отрезок 4) треугольник. А потом надо отрезки собрать в многоугольники.
Вот как раз я и пытаюсь узнать алгоритм всего этого дела. Ну может есть готовая библиотека либо метод специальный какой?
Не могу вьехать как это делается, ну есть у меня все треугольники и как быть дальше, как найти пересечение этого всего с плоскостью?
Ответить с цитированием
  #9  
Старый 04.01.2011, 14:08
Местный

Отправить личное сообщение для prografix Посмотреть профиль Найти все сообщения от prografix
 
Регистрация: 03.11.2006
Адрес: Москва
Сообщений: 166

Пересечь треугольник с плоскостью несложно. Сложности будут потом при объединении отрезков в многоугольники. Всё за тебя делать не хочется. Могу рассказать отдельные вещи. Например, для того, чтобы найти пересечение треугольника с плоскостью надо вначале найти расстояния вершин до плоскости со знаком ( с одной стороны плоскости расстояния положительные, с другой - отрицательные ). Надеюсь, как это сделать тебе известно. Далее, если все 3 расстояния больше нуля или все меньше нуля - значит пересечения нет. Если одна точка имеет нулевое расстояние, а остальные одновременно больше или меньше нуля - значит пересечение в одной точке. Если два расстояния нулевые, а третье нет - значит пересечение по ребру. Если все три расстояния нулевые - значит пересечением является весь треугольник. Иначе будет пересечением отрезок концы которого лежат на рёбрах треугольника, и они делят ребро на части пропорционально расстоянию до плоскости.
Ответить с цитированием
  #10  
Старый 06.01.2011, 00:29
Новичок

Отправить личное сообщение для cj_zzz Посмотреть профиль Найти все сообщения от cj_zzz
 
Регистрация: 02.01.2011
Сообщений: 6

а как найти линию, которая получится в следствии пересечения треугольника и плоскости? там будет известна только одна точка как я понимаю?
Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с множествами на Си Iworb Математические алгоритмы 2 30.03.2010 11:51
работа с файлами и каталогами в си++ Axel Реализация, исходники, языки 1 16.12.2009 18:50
Работа с файлом GreenBeret Сортировка и поиск 9 15.09.2009 05:35
Работа с классами Armaged_don Реализация, исходники, языки 2 17.12.2008 16:54
Работа с файлами Armaged_don Сортировка и поиск 6 25.11.2008 23:25