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

Форум работает в режиме архива, только для чтения и поиска.
Архив 2004 Архив 2007 Архив 2013

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.01.2011, 22:59
Новичок

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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