Слайд 2ННГУ, ВМК, 2005 г
Тестирование GridBean API
План презентации
О чем поговорим?
Постановка задачи
Алгоритм
![ННГУ, ВМК, 2005 г Тестирование GridBean API План презентации О чем поговорим?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436579/slide-1.jpg)
решения
Реализация
Демонстрация
Выводы
Слайд 3ННГУ, ВМК, 2005 г
Тестирование GridBean API
Постановка задачи
Определение
Неявно заданной поверхностью называется множество точек
![ННГУ, ВМК, 2005 г Тестирование GridBean API Постановка задачи Определение Неявно заданной](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436579/slide-2.jpg)
трехмерного пространства, отвечающих уравнению
F(x, y, z) = C,
где C есть некоторое постоянное число
Примеры
x2 + y2 + z2 = 9
x2 + y2 - z2 = 0
sin(x) - cos(y) - cos(z) = 0
Слайд 4ННГУ, ВМК, 2005 г
Тестирование GridBean API
Постановка задачи
Постановка задачи
Постановка
Требуется построить поверхность, отвечающую уравнению
![ННГУ, ВМК, 2005 г Тестирование GridBean API Постановка задачи Постановка задачи Постановка](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436579/slide-3.jpg)
F(x, y, z) = C,
где C есть некоторое постоянное число.
Уравнение предполагается заданным в прямоугольной системе координат. Задаются границы параллелепипеда, в котором строится поверхность, а также строка, содержащая уравнение. Результатом работы программы является изображение поверхности, выполненное средствами какой-либо графической библиотеки.
Слайд 5ННГУ, ВМК, 2005 г
Тестирование GridBean API
Постановка задачи
Постановка задачи
Где мы встречаемся с этим
![ННГУ, ВМК, 2005 г Тестирование GridBean API Постановка задачи Постановка задачи Где](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436579/slide-4.jpg)
Трехмерные поверхности часто встречаются в медицине. Так что алгоритм MC часто используется для представления различных медицинских данных
Различные разделы математики и физики, а также других точных наук, где изучается распределение некоторой характеристики процесса в трехмерном пространстве
Топография, трехмерное представление рельефа местности, моделирование
Слайд 6ННГУ, ВМК, 2005 г
Тестирование GridBean API
Постановка задачи
![ННГУ, ВМК, 2005 г Тестирование GridBean API Постановка задачи](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436579/slide-5.jpg)
Слайд 7ННГУ, ВМК, 2005 г
Тестирование GridBean API
Постановка задачи
![ННГУ, ВМК, 2005 г Тестирование GridBean API Постановка задачи](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436579/slide-6.jpg)
Слайд 8ННГУ, ВМК, 2005 г
Тестирование GridBean API
Постановка задачи
Алгоритм марширующих кубов
Алгоритм MC
Область разбивается на
![ННГУ, ВМК, 2005 г Тестирование GridBean API Постановка задачи Алгоритм марширующих кубов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436579/slide-7.jpg)
кубики. Вычисляются значения функции в каждой вершине вокселя и сравнивается с нулем.
Если на концах ребра функция имеет различные знаки, то поверхность пересекает это ребро. Просмотрев все ребра каждого вокселя, определить способ аппроксимации
Слайд 9ННГУ, ВМК, 2005 г
Тестирование GridBean API
Постановка задачи
Алгоритм марширующих кубов
Примеры
![ННГУ, ВМК, 2005 г Тестирование GridBean API Постановка задачи Алгоритм марширующих кубов Примеры](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436579/slide-8.jpg)
Слайд 10ННГУ, ВМК, 2005 г
Тестирование GridBean API
Алгоритм марширующих кубов
12
20
50
12a
20a
![ННГУ, ВМК, 2005 г Тестирование GridBean API Алгоритм марширующих кубов 12 20 50 12a 20a](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436579/slide-9.jpg)
Слайд 11ННГУ, ВМК, 2005 г
Тестирование GridBean API
Реализация алгоритма
![ННГУ, ВМК, 2005 г Тестирование GridBean API Реализация алгоритма](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436579/slide-10.jpg)
Слайд 12ННГУ, ВМК, 2005 г
Тестирование GridBean API
Описание задания
Описание Grid-задания
public void setupJobDefinition(Job job) throws
![ННГУ, ВМК, 2005 г Тестирование GridBean API Описание задания Описание Grid-задания public](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436579/slide-11.jpg)
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());
Слайд 13ННГУ, ВМК, 2005 г
Тестирование GridBean API
Реализация алгоритма
Спецификация выходных параметров
SurfaceBuilder генерирует два файла.
![ННГУ, ВМК, 2005 г Тестирование GridBean API Реализация алгоритма Спецификация выходных параметров](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436579/slide-12.jpg)
Первый файл содержит грубую модель поверхности, второй точную и требующую больше времени на прорисовку
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;
}
Слайд 14ННГУ, ВМК, 2005 г
Тестирование GridBean API
Построение пользовательского интерфейса
При создании элементов управления на
![ННГУ, ВМК, 2005 г Тестирование GridBean API Построение пользовательского интерфейса При создании](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436579/slide-13.jpg)
панели ввода или вывода необходимо:
связать элемент управления с некоторым именем
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");
Слайд 15ННГУ, ВМК, 2005 г
Тестирование GridBean API
Выводы
Преимущества GridBean
Удобство использования. Пользователь работает с
![ННГУ, ВМК, 2005 г Тестирование GridBean API Выводы Преимущества GridBean Удобство использования.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436579/slide-14.jpg)
«одной» программой, а не с двумя отдельными
Кроссплатформенность. Не требуется даже перекомпиляции исходных текстов программы, в отличие от программ, написанных на Си/Си++.
Доступ к программе из любой точки мира. Требуется лишь загрузить компактный GridBean
Единые принципы работы с различными GridBean’ами
Приложение работает в распределенной среде, получая, таким образом, доступ к почти неограниченным вычислительным ресурсам