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

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

  • Upload
    barid

  • View
    108

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

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

ННГУ, ВМК, 2005 г Тестирование GridBean API 1

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

Алехин Александр

Боголепов Денис

Нижегородский государственный университет им.Н.И.ЛобачевскогоФакультет Вычислительной математики и кибернетики

Лаборатория «Информационные технологии»

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

ННГУ, ВМК, 2005 г Тестирование GridBean API 2

План презентации

О чем поговорим?

Постановка задачи

Алгоритм решения

Реализация

Демонстрация

Выводы

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

ННГУ, ВМК, 2005 г Тестирование GridBean API 3

Постановка задачи

ОпределениеНеявно заданной поверхностью называется множество точек трехмерного пространства, отвечающих уравнению

F(x, y, z) = C,

где C есть некоторое постоянное число

Примерыx2 + y2 + z2 = 9x2 + y2 - z2 = 0sin(x) - cos(y) - cos(z) = 0

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

ННГУ, ВМК, 2005 г Тестирование GridBean API 4

Постановка задачиПостановка задачи

Постановка

Требуется построить поверхность, отвечающую уравнению

F(x, y, z) = C,

где C есть некоторое постоянное число.

Уравнение предполагается заданным в прямоугольной системе координат. Задаются границы параллелепипеда, в котором строится поверхность, а также строка, содержащая уравнение. Результатом работы программы является изображение поверхности, выполненное средствами какой-либо графической библиотеки.

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

ННГУ, ВМК, 2005 г Тестирование GridBean API 5

Постановка задачиПостановка задачи

Где мы встречаемся с этим

Трехмерные поверхности часто встречаются в медицине. Так что алгоритм MC часто используется для представления различных медицинских данных

Различные разделы математики и физики, а также других точных наук, где изучается распределение некоторой характеристики процесса в трехмерном пространстве

Топография, трехмерное представление рельефа местности, моделирование

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

ННГУ, ВМК, 2005 г Тестирование GridBean API 6

Постановка задачи

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

ННГУ, ВМК, 2005 г Тестирование GridBean API 7

Постановка задачи

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

ННГУ, ВМК, 2005 г Тестирование GridBean API 8

Постановка задачиАлгоритм марширующих кубов

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

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

ННГУ, ВМК, 2005 г Тестирование GridBean API 9

Постановка задачиАлгоритм марширующих кубов

Примеры

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

ННГУ, ВМК, 2005 г Тестирование GridBean API 10

Алгоритм марширующих кубов

12 20 50

12a 20a

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

ННГУ, ВМК, 2005 г Тестирование GridBean API 11

Реализация алгоритма

Использование MPI

Приложение для генерации

Приложение для просмотра

GridBean API

GridBean для Application Client

Решение задачиГенерация данных Отображение на экране

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

ННГУ, ВМК, 2005 г Тестирование 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());

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

ННГУ, ВМК, 2005 г Тестирование GridBean API 13

Реализация алгоритма

Спецификация выходных параметров

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

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

ННГУ, ВМК, 2005 г Тестирование 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");

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

ННГУ, ВМК, 2005 г Тестирование GridBean API 15

Выводы

Преимущества GridBean

Удобство использования. Пользователь работает с «одной» программой, а не с двумя отдельными

Кроссплатформенность. Не требуется даже перекомпиляции исходных текстов программы, в отличие от программ, написанных на Си/Си++.

Доступ к программе из любой точки мира. Требуется лишь загрузить компактный GridBean

Единые принципы работы с различными GridBean’ами

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

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

ННГУ, ВМК, 2005 г Тестирование GridBean API 16

Выводы

Недостатки GridBeans

Высокие требования к оборудованию. В первую очередь к объему ОП (в нашем случае разница почти двукратная)

Трудно проектировать пользовательский интерфейс. Крайне сложно программировать пользовательский интерфейс с большим числом компонент и динамическим поведением. Легко ошибиться. Мало стандартных компонент.

Пока это удаленный запуск программы и получение результатов ее работы, но не приложение, работающее в Grid – среде

Недостатки GPE

При переходе от одной ОС к другой требуется переписывать конфигурационные файлы. Что проще: перекомпилировать программу или переписать файлы?