Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Построение разреза на OpenGL 
:(
    Опции темы
Afrodiziac
Дата 24.12.2007, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 13.5.2007

Репутация: нет
Всего: нет



Приветствую.

В ходе выполнения курсовой задание на которую звучит как " Визуализация сложных сборочных единиц (разрезы, сечения)" Сечение на OpenGL построить не составило труда функцией

Код

      double[] формула = секущая_плоскость.Формула_Плоскости();
      GL.glEnable(GL.GL_CLIP_PLANE0);
      GL.glClipPlane(GL.GL_CLIP_PLANE0, формула);


Рисунок

Теперь встал вопрос какими средствами строить сам разрез... Нет ли в OpenGL стандартных функция для его реализации?.. Или возможно есть просто алгортм.

Заранее спасибо.

Это сообщение отредактировал(а) Afrodiziac - 24.12.2007, 16:38
PM MAIL   Вверх
Arks
Дата 24.12.2007, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 7.5.2006
Где: Барнаул

Репутация: нет
Всего: нет



Дырку в объекте сделать чтоли? Поищите в инете книжку "OpenGL графика в проектах Delphi". Там разбиралось подобное. Там был алгоритм описан. Про стандартные средства на этот счёт не знаю.
PM MAIL ICQ Skype MSN   Вверх
Afrodiziac
Дата 25.12.2007, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 13.5.2007

Репутация: нет
Всего: нет



Нет, дело в том что тело должно быть твердым, т.е. в разрезе должна быть не дырка а должен создаваться новый полигон цвета самой поверхности... таких примеров нигде нет. Ведь по лигике и пересечений секущей плоскости с телом может быть 2, 3 и более.. Соответственно должны создаваться для каждого пересечения полигоны, для создания иллюзии твердотельности...
PM MAIL   Вверх
Afrodiziac
Дата 25.12.2007, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 13.5.2007

Репутация: нет
Всего: нет



Вот посмотрите пожалуйста как должно выглядеть:

Рисунок

Ктонибудь знает как строить такое сечение?
PM MAIL   Вверх
atavinta
Дата 31.1.2008, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 31.1.2008
Где: Москва

Репутация: нет
Всего: нет



Я так понимаю, что ограничивающие плосткости у тебя уже есть. Плоскость разреза - ещё одна. Теперь надо решить уравнение плоскости разреза совместо с каждым уравнением поверхностей, которые уже есть. В результате получатся уравнения линий, ограничивающих искомые полигоны. Путем их попарного решения (во всех парах) найди точки пересечения, отбрось те, которые не принадлежат исходным поверхностям (это точки пересечения продожений ограничивающих отрезков). По оставшимя точкам стой полигоны. Половину самого объекта отрежь так, чтобы луч зрения пересекал плоскость разреза. Тот же алгоритм применим для сеченйи, если исходное тело отрезать целиком. Другая модификация алгоритма - выбор половины так, чтобы хотябы для одного участка поверхности оказалась видимой внутренняя сторона (Робертсон + zбуфер).
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0517 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.