'

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

Понравилась презентация – покажи это...





Слайд 0

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


Слайд 1

ННГУ, ВМК, 2005 г Тестирование GridBean API 2 План презентации О чем поговорим? Постановка задачи Алгоритм решения Реализация Демонстрация Выводы


Слайд 2

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


Слайд 3

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


Слайд 4

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


Слайд 5

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


Слайд 6

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


Слайд 7

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


Слайд 8

ННГУ, ВМК, 2005 г Тестирование GridBean API 9 Постановка задачи Алгоритм марширующих кубов Примеры


Слайд 9

ННГУ, ВМК, 2005 г Тестирование GridBean API 10 Алгоритм марширующих кубов


Слайд 10

ННГУ, ВМК, 2005 г Тестирование GridBean API 11 Реализация алгоритма


Слайд 11

ННГУ, ВМК, 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());


Слайд 12

ННГУ, ВМК, 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; }


Слайд 13

ННГУ, ВМК, 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");


Слайд 14

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


Слайд 15

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


×

HTML:





Ссылка: