1 / 16

Триангуляция неявно заданных поверхностей

Нижегородский государственный университет им.Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Лаборатория «Информационные технологии». Триангуляция неявно заданных поверхностей. Алехин Александр Боголепов Денис. План презентации. О чем поговорим? Постановка задачи

barid
Download Presentation

Триангуляция неявно заданных поверхностей

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Нижегородский государственный университет им.Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Лаборатория «Информационные технологии» Триангуляция неявно заданных поверхностей Алехин Александр Боголепов Денис Тестирование GridBean API

  2. План презентации • О чем поговорим? • Постановка задачи • Алгоритм решения • Реализация • Демонстрация • Выводы Тестирование GridBean API

  3. Постановка задачи Определение Неявно заданной поверхностью называется множество точек трехмерного пространства, отвечающих уравнению F(x, y, z) = C, где Cесть некоторое постоянное число Примеры x2 + y2 + z2 = 9 x2 + y2- z2 = 0 sin(x) - cos(y) - cos(z) = 0 Тестирование GridBean API

  4. Постановка задачи Постановка задачи Постановка Требуется построить поверхность, отвечающую уравнению F(x, y, z) = C, где C есть некоторое постоянное число. Уравнение предполагается заданным в прямоугольной системе координат. Задаются границы параллелепипеда, в котором строится поверхность, а также строка, содержащая уравнение. Результатом работы программы является изображение поверхности, выполненное средствами какой-либо графической библиотеки. Тестирование GridBean API

  5. Постановка задачи Постановка задачи • Где мы встречаемся с этим • Трехмерные поверхности часто встречаются в медицине. Так что алгоритм MC часто используется для представления различных медицинских данных • Различные разделы математики и физики, а также других точных наук, где изучается распределение некоторой характеристики процесса в трехмерном пространстве • Топография, трехмерное представление рельефа местности, моделирование Тестирование GridBean API

  6. Постановка задачи Тестирование GridBean API

  7. Постановка задачи Тестирование GridBean API

  8. Постановка задачи Алгоритм марширующих кубов Алгоритм MC Область разбивается на кубики. Вычисляются значения функции в каждой вершине вокселя и сравнивается с нулем. Если на концах ребра функция имеет различные знаки, то поверхность пересекает это ребро. Просмотрев все ребра каждого вокселя, определить способ аппроксимации Тестирование GridBean API

  9. Постановка задачи Алгоритм марширующих кубов Примеры Тестирование GridBean API

  10. 12 20 50 12a 20a Алгоритм марширующих кубов Тестирование GridBean API

  11. Решение задачи Генерация данных Отображение на экране GridBean API Использование MPI Приложение для генерации GridBean для Application Client Приложение для просмотра Реализация алгоритма Тестирование GridBean API

  12. Описание задания Описание Grid-задания public void setupJobDefinition(Job job) throws GridBeanException; Заполнение полей задания GPEJob gpeJob = (GPEJob) job; gpeJob.setApplicationName(APPLICATION_NAME); gpeJob.setApplicationVersion(APPLICATION_VERSION); gpeJob.setWorkingDirectory(GPEConstants.JobManagement.TEMPORARY_DIR_NAME); gpeJob.addField(FUNCTION_FIELD, ((String)get(FUNCTION)).replace('\n',' ')); gpeJob.addField(TARGET_FIELD, ((AbstractFile) get(TARGET)).getTargetSystemFile()); Тестирование GridBean API

  13. Реализация алгоритма Спецификация выходных параметров SurfaceBuilderгенерирует два файла. Первый файл содержит грубую модель поверхности, второй точную и требующую больше времени на прорисовку public GridBeanParameter[] getOutputParameters() { GPEFile[] files = getFiles(); GridBeanParameter[] parameters = newGridBeanParameter[files.length]; for (int i = 0; i < files.length; i++) { QName paramName = QNameUtil.derive(TARGET, "file" + i); parameters[i] = newGridBeanParameter(paramName, GridBeanParameterType.GPE_FILE); set(paramName, files[i]); } return parameters; } Тестирование GridBean API

  14. Построение пользовательского интерфейса • При создании элементов управления на панели ввода или вывода необходимо: • связать элемент управления с некоторым именем • JTextField funcTextField = new JTextField(); • add(new JLabel("Function:"), LayoutTools.makegbc(0, 1, 1, 1,false)); • add(funcTextField, LayoutTools.makegbc(1, 1, 5, 100, true)); • linkTextField(GraphGridBean.FUNCTION, funcTextField); • задать процедуру валидации введенного значения • setValueValidator(GraphGridBean.FUNCTION, • NotNullValidator.getInstance()); • задать процедуру преобразования значения, введенного в элемент управления, во внутреннее представление • setValueTranslator(GraphGridBean.FUNCTION, • StringValueTranslator.getInstance()); • задать описание элемента управления setDescription(GraphGridBean.FUNCTION, "Function"); Тестирование GridBean API

  15. Выводы • Преимущества GridBean • Удобство использования. Пользователь работает с «одной» программой, а не с двумя отдельными • Кроссплатформенность. Не требуется даже перекомпиляции исходных текстов программы, в отличие от программ, написанных на Си/Си++. • Доступ к программе из любой точки мира. Требуется лишь загрузить компактный GridBean • Единые принципы работы с различными GridBean’ами • Приложение работает в распределенной среде, получая, таким образом, доступ к почти неограниченным вычислительным ресурсам Тестирование GridBean API

  16. Выводы • Недостатки GridBeans • Высокие требования к оборудованию. В первую очередь к объему ОП (в нашем случае разница почти двукратная) • Трудно проектировать пользовательский интерфейс. Крайне сложно программировать пользовательский интерфейс с большим числом компонент и динамическим поведением. Легко ошибиться. Мало стандартных компонент. • Пока это удаленный запуск программы и получение результатов ее работы, но не приложение, работающее в Grid – среде Недостатки GPE • При переходе от одной ОС к другой требуется переписывать конфигурационные файлы. Что проще: перекомпилировать программу или переписать файлы? Тестирование GridBean API

More Related