![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| Afrodiziac |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 13.5.2007 Репутация: нет Всего: нет |
Приветствую.
В ходе выполнения курсовой задание на которую звучит как " Визуализация сложных сборочных единиц (разрезы, сечения)" Сечение на OpenGL построить не составило труда функцией
Рисунок Теперь встал вопрос какими средствами строить сам разрез... Нет ли в OpenGL стандартных функция для его реализации?.. Или возможно есть просто алгортм. Заранее спасибо. Это сообщение отредактировал(а) Afrodiziac - 24.12.2007, 16:38 |
|||
|
||||
| Arks |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 7.5.2006 Где: Барнаул Репутация: нет Всего: нет |
Дырку в объекте сделать чтоли? Поищите в инете книжку "OpenGL графика в проектах Delphi". Там разбиралось подобное. Там был алгоритм описан. Про стандартные средства на этот счёт не знаю.
|
|||
|
||||
| Afrodiziac |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 13.5.2007 Репутация: нет Всего: нет |
Нет, дело в том что тело должно быть твердым, т.е. в разрезе должна быть не дырка а должен создаваться новый полигон цвета самой поверхности... таких примеров нигде нет. Ведь по лигике и пересечений секущей плоскости с телом может быть 2, 3 и более.. Соответственно должны создаваться для каждого пересечения полигоны, для создания иллюзии твердотельности...
|
|||
|
||||
| Afrodiziac |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 13.5.2007 Репутация: нет Всего: нет |
||||
|
||||
| atavinta |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 31.1.2008 Где: Москва Репутация: нет Всего: нет |
Я так понимаю, что ограничивающие плосткости у тебя уже есть. Плоскость разреза - ещё одна. Теперь надо решить уравнение плоскости разреза совместо с каждым уравнением поверхностей, которые уже есть. В результате получатся уравнения линий, ограничивающих искомые полигоны. Путем их попарного решения (во всех парах) найди точки пересечения, отбрось те, которые не принадлежат исходным поверхностям (это точки пересечения продожений ограничивающих отрезков). По оставшимя точкам стой полигоны. Половину самого объекта отрежь так, чтобы луч зрения пересекал плоскость разреза. Тот же алгоритм применим для сеченйи, если исходное тело отрезать целиком. Другая модификация алгоритма - выбор половины так, чтобы хотябы для одного участка поверхности оказалась видимой внутренняя сторона (Робертсон + zбуфер).
|
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |