Научная статья на тему 'Вопросы построения базовой библиотеки научной визуализации для Windows'

Вопросы построения базовой библиотеки научной визуализации для Windows Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
89
27
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Баенова Г.М.

Windovs үшін гылыми визуалды базалық кітапхананы қуру мәселгсіне арналган мақала.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The article is devoted to the questions o f the library host building o f the science visualizationfor Windows.

Текст научной работы на тему «Вопросы построения базовой библиотеки научной визуализации для Windows»

УДК 004.92

ВОПРОСЫ ПОСТРОЕНИЯ БАЗОВОЙ БИБЛИОТЕКИ НАУЧНОЙ ВИЗУАЛИЗАЦИИ ДЛЯ WINDOWS

Г.М. Баенова

Институт вычислительной математики и математической геофизики СО РАН, г. Новосибирск

1. Введшие

1.1 Общие вопросы машинной графики

На каждом этапе развития вычислительной техники и программных продуктов закладывается все больше и больше требований для расширшия их возможностей в соответствии с ростом уровня научных исследований. Машинная графика представляет собой область использования средств вычислительной техники, в которой на сегодняшний дшь достигнуты существошые успехи [1]. На основе изучения отечественной и зарубежной литературы можно выделить основные достижшия в ее развитии:

а) интенсивное развитие алгоритмической базы для решения графических задач,

б) работы по разработке графических стандартов;

в) разработка интерфейсов;

г) разработка графических форматов файлов;

д) разработка методов вычислительной геометрии;

е) развитие технических средств машинной графики;

ж) разработка систем визуализации;

з) обработка изображений;

и) создание программных продуктов визуализации данных; и т.д. Принимая во внимание .ютрсбность специалистов любой области научных исследований в визуализации результатов математического моделирования и вычислений, ранее был изучен ряд наиболее представительных программных продуктов, содержащих графические средства анализа расчетных данных с целью определэшя уровнгй их при-могаия и удовлетвори ия пользователей, занимающихся научной визуализацией [2].

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

1.2 Основные недостатки использования программных продуктов

Как показывает анализ, существующие системы научной визуализации ее отвечают в полней мере требованиям иссждователя по следующим причинам. На сегодняшний дал» ситуэ,тчя сложилась таким образом, что программы, относящиеся к научной категории, не

являются свободно доступными, в частности, Open DX от ШМ [3], являясь кроссплэтфор-мзшсй программой, при инсталляции на Windows, требует установку модуля Х-Win32, который распространяется на платной основе. Другой недостаток использования готовых imo, раммных продуктов заключается в том, что они являются «замкнутыми обрабатывающими цопрами» и их трудно интегрировать с прикладными задачами пользователя. Также »обходимо отметить, что в таких крупных и дорогостоящих рабочих станциях типа Matlab (www.mathworks.com). Mathematica (www.wolfram.com i. Maple (www.maplesoft. cam). Mathcad (www mathsoft.com). графические средства, яьляюгся лишь вспомогательным инструмэп м для решетя (пред<чншых задач. Помимо этих причин, все системы, начиная от MatLab, Mathematica и до Compaq Array Viewer и OpenDX, обладают общим, но существашым недостатком: они нах^идывают ту или иную дисциплину на структуру прикладной программы. Этот »достаток № позволяет иссждователю ис юльзова другие возможности для визуализации графических пред ставящий.

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

1J Эффективность использования библиотеки

Обычно библиотеки используются в качестве «строительных блоков» в прикладных программах. Применэше библиотек в собствашых программных реализациях математических моделей обеспечивает для пользователей экономию времени и финансовых средств [4]. Также учитывая, тот факт, что библиотеки в средствах научной визуализации представляют собой «черные ящики», придает разработке научной библиотеки актуальный характер.

Эффективность использования библиотек определяется следующими присущими ей характеристиками: простота в использовании, низкая стоимость, завершшность для при-мавшя, независимость от интерфейсов систем, в которых она будет использоваться.

Первые отечествшные программы библиотечного типа - это СМОГ [5,6] и ГРАФОР [7], разработанные в 1970-х годах, предназначались для научной визуализации. На тот период эти библиотеки подходили для конкретного типа компьютера. С появлением стандартов на периферийное оборудование появляется возможность писать единые программы, взаимодействующие с этим оборудованием для разных компьютеров, вычислительная мощность компьютерной техники значительно возрастает, появляется операционная система Windows, которая содержит графический интерфейс пользователя (GUI). В настоящее время и СМОГ и ГРАФОР нуждаются в значительных изметшиях и доползииях, однако, как показывает практика развития программных продуктов зарубежных производителей, перенос старых функций и операций на новые платформу операционную систему и среду программирования является нецелесообразным.

2. Характерные черты библиотеки научной визуализации

2.1 Общее описание

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

1) Полный набор графических представтаий, покрывающий все имеющиеся в ведущих программных продуктах. Сюда относятся графики, изолинии и векторные поля и т. д.

2) Подписи и аннотирующие элемаггы. Дополнительнее и вспомогательное оснащение того или иного графического изображения. Легенда - это набор условных знаков (текстовых, цифровых, символьных и графических), поясняющих изображение, размещать» внутри или за пределами изображения.

3) Компоновка графического представления. Сборка всех составляющих (рамки, оси, подписи и легенды) окончательного графического изображшия.

Реализация библиотеки научной визуализации предусмотрена в рамках операционной системы Windows и выбрана среда программирования Microsoft Visual С-н-. Данный выбор обусловят исходя из того факта, что Windows является самой распространошой операционной системой и располагает обширными графическими средствами GDI, OpenGL, DirectX, а также важности создания собственных приложший с помощью графических примитивов, а не средствами интерфейса.

Структура библиотеки представляет собой двухуровневую архитектуру, нижним слоем которого является стандартная графическая библиотека GDI, обеспечивающая вывод графических изображений общего назначения (линии, тексты, круги), т.е. примитивы двумерного графического представления [8]. Использование GDI избавляет пользователя от задания математических выражший, описывающих эти фигуры. Кроме тощ с помощью этих примитивов можно строить различные типы графиков. Верхний слой архитектуры представляет собой расширенную функциональность, включающую в себя визуализацию скалярных и векторных полей, заданных на регулярных и »регулярных сетках в пространстве любой размерности.

2.2 Задачи библиотеки

Научная визуализация включает в себя разные области задач визуализации, к которым относятся молекулярные и томографические исследования, математическое моделирование, статистика и т.д. Разрабатываемая библиотека научной визуализации (SVL) предназначена для решения задач в области вычислительной математики и математического моделирования.

В основе любой программы лежат различные наборы данных. В SVL визуализации подлежат только данные, представленные в виде сеточных функций (скалярные или векторные). Сеточная функция задается в форме одномерных, двумерных и многомерных массивов чисел, т.е. рассматривается некоторое поле, а файл данных формируется в результате последовательного перебора значений функции сначала при фиксированной строке по столбцам или в другой последовательности при фиксированном столбце по строкам. Для получшия изображены данные задаются на регулярных и нерегулярных сетках в декартовой, цилиндрической или сферической системах координат. Общепринятыми методами изображзшй являются построение линий уровня и цветовая «заливка», векторное поле обычно отображается в виде направлюных стрелок, длина которых соответствует модулю вектора. Есть и другие методы отображения скалярных и векторных функций, достаточно известных и уже реализованных в различных вариантах, в том числе и в ГРАФОРе [9]. В настоящее время ставиться задача реализации таких методов с учетом новых возможностей, предоставляемых операционной системой Windows.

Как было уже отмечено выше, изучшие современных программных пакетов осуществлялось не только с точки зрашя конечного пользователя, но в первую очередь с точки зршия анализа поддерживаемых графических функций. В этом смысле дополнительное внимание уделено таким пакетам как Array-Viewer (www.compaq.co>"), PV-Wave fwww.-Tii.com). OpenDX (www.opendx.org). основное назначение которых состоит в, анализе огромного объема зхсперимаггальных данных, а не только в формировании

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

• визуализация данных, сопровождаемая легендой;

• слайсинг - сечение плоскостью или двумерной поверхностью под разными углами, значения на которой можно показать цветами;

• построение изображение в соответствующей системе координат. Добавлять оцифрованные оси;

• построение графинов функций I использованием нескольких координатных осей У;

• построение координатной сетки;

• объединение нескольких изображений в одной области, в виде «этажерки»;

• определение >заимосвязи всех объектов на экране и поведение каждого объекта в отдельности;

• компоновка всех составляющих графического изооражения.

«Этажерка» - это условное общепринятое название графического послойного изоб-гажаяия данных, представлтного на одном виде. В виде «этажерки» можно представить как один и тот же набор данных, так и серию разных наборов данных.

Компоновка представляет собой отображаше отдельных составляющих (элемоггов) на габаритном кубе, имеющем четкую структуру и раздельным на несколько областей - область легаты, область жпосредстветно графика/карты изолиний, оси координат и подписи к ним. При этом каждая область имеет свои параметры.

23 Графические представления

1. Система координат

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

При оформлгаии графика важное значшие имеют оси с разметками или шкалы. Оси могут иметь названия и подписываться за пределами области, вдоль ее границ или рядом с осью. Ось размечается основными и дополнительными делзшями -тики. С основными делениями соотносятся их числашые знача!ия, которые фиксируются на графике. Кроме тощ через основные делния на осях может быть проведена координатная сетка с некоторым шагом сетки и оцифровкой координатных осей. Оцифровывать можно к каждую линию сетки оси, а через одну, две, три и т.д. для того чтобы предотвратить возможные валожетия изображений чисел оцифровки друг на друга в случае, если эти числа состоят из нескольких цифр. Иногда очшь удобным является установлзше разрывов в осях и установлиие прозрачности осей, т.е. расположение оси за объектом или на объекте. При необходимости для построшия нескольких криволикйных функций на одном графике можно определить положения координатных осей У в произвольных позициях.

Ось

Параметры:

Прямоугольник = [задаются координаты начального положения сетки, стиль (в виде прямоугольника, креста или отсутствие осей)];

Оси = [(прямая линия или вектор)- масштаб (равномерный/логарифмический) толщина линий, разрывы, цвет, прозрачность];

Тики = [задаются интервалы и промежуточные интервалы по каждой оси соответственно!;

Координатная сетка = [гип линий (сплошной, пгпзиховка, пунктирный, пггрих-пунк;ирный), добавить или ж добавлять];

Подпись = [подпись и оцифровка осей].

Пример установки оси: оси = Оси(прямоугольные координаты осей х, у, рамка, тики, сетка, толщина, цвет, масштаб, тип тика по оси х, тип тика по оси у, тип тика по оси г, шаг тика по оси х, шаг тика по оси у, шаг тика по оси г, подпись осей, шрифт).

Таким образом,

- прямоугольник задает область, на которую отображается координатные оси, определяет положение начала координат и степоо. взаимозависимости осей. Оси можно определить как независимые, тогда измаетия, производимые на одной из осей, не влияют на характеристики другой. Координатные оси ориентированы по отношению к экрану, так что горизонтальная ось X совпадает с горизонтальной осью экрана, вепгикальная ось У совпадает с вертикальной осью экрана, а ось Ъ перпендикулярная плоскости экрана;

- оси устанавливают характеристики линий оси: цвет и толщину, масштаб устанавливается по каждой оси в отдельности и для всех осей одновременна Логарифмический масштаб определяется основанием логарифма, полулогарифмические оси представляют собой логарифмическую шкалу по одной оси и линейную по другой оси;

- тики используются для управлшия разметками осей координат. Задаются следующие папаметры: число промежуточных меток, интервалы между метками, длина и толщина меток, ориентация меток относительно линии оси;

- сетка используется для тощ чтобы задать сеточные линии и установить графический .тиль этих линий;

- подписи позволяют yпpaвJuгrь характеристиками подписей меток. Задаются следующие параметры: цвет шрифт, размер и формат чисел

м»

»74«

■ 510

иг

ЧУР

10*0

» г 1 г, )

1 1 {■ 11 •

II 1 ' 1 I 1 г

1 ) 1 У г

II 1

«Я 1.41 114 ТЫ 10Я 13М иа М.74 И44 М « ММ

х

Рисунок 1 - Координатные оси с сеткой

Легенда Параметра

Легенда = [прямоугольник, положшие (горизонтальное или вертикальное}, тип легшды (отрезки, обрамленные цветные полоски), подписи].

Для любого изображения может быть создана легенда. Легшда - это линеика. устанавливающая соответствие между абстрактным символом (цветом или номером) и

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

2. График функции одной перемечай

Построение графиков различных функций, заданных массивами значений координат точек, дает наглядное представление об их поведшии при изменении аргумента. Криволинейные функции на графиках могут быть псстрошы по точкам, соединяя их отрезками прямых (интерполяция) или путем аппроксимации. Если на графике представ лщ набор линий, то они могут различаться по начертанию (сплошная, пунктирная и т.д.) или по цвету.

График

Параметры:

График = {одномерный массив данных, чинии- маркеры, тики '■етка, цвет, подписи,

Л2ГШД31

Линии = [тип (сплошной, пунктирный, штрих пунктирный), цвет, толщина];

Диаграммы = [одномерный массив данных, примитивы, заполнение цветом или штриховками, оси, тики, подписи, жгшда].

Пример построашя графика: график = Графнк(массив данных, диаграмма, маркеры, тики, рамка, сетка, тип линии, цвет, толщина, шрифт, легшла, расположшие легшды, подпись^

Рисунок 2 - Графики функпчй одной переменной

3. График функции двух перемогаых

Для построения функции двух переменных г = / (х, у), которая в пространстве образует некоторую трехмерную поверхность или фигуру, используется координатная система с тремя осями координат. Свойства скалярных полей изучаются при помощи поверхностей или линий равного уровня. Трехмерные изображения можно представлять в виде

- зависимости функции / от перемшныг х и у;

- каркасной модели, представляющей собой совокупность множества «равномерных многоугольников;

- изолиний - графики линий равных высот;

- векторных полей.

Изолинии

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Параметры:

Поверхность = [прямоугольник или куб, оси, двумерный массив значений параметров в узлах сетки, тип положшия изолиний (плоскость - в виде проекций на координатные

плоскости, поверхность - изс линии изображаются на поверхности функции кпосредс твеино, совместное изоЬражаше как линий равных значений, так и соответствующих проекций)];

Изолинии = [количество линий, тип линий (сплошная, тгактирная и т.д.). толщина, цвет, шаг между изолиниями, тоно ая заливка];

Оцифровка = [нанесшие значший параметра либо порядкового номера изолиний, размер шрифта, формат, расположшие (над линиями, под линиями, в разрыве между линиями)].

Визуализация поля скалярной величины производится путем построшия изолиний. Для этого определяется область, в которой будут изображаться изолинии, утанавли-вается массив значашй функции, для которого производится построение изолиний, количество изолиний на изображаши, шаг между изолиниями и подпись. Построение изолиний может осуществи. гься разными способами: путем аппроксимации, либо интерполяцией. При интерполяции точки равного значшия соединяются прямыми линиями. при аппроксимации образуется более гладкая кривая, соединяющая точки равных значений. Можно задавать число уровней изолиний и строить незамкнутые изолинии, т.е. такие, которые начинаются и заканчиваются на границе области, и замкнутые, которые лежат целиком внутри обласги определения функции. Функция задается таблицей значений в углах »которой с .леи.

Пример построения изолиний функции двух перемшных, заданной таблично:

изолинии = изолинии(веществшные массивы с размерностями х[п], у[т], г[п,т], определяющие исходную функцию, область задания функции по осям х и у, массив значений исходной функции, количество узлов сетки по х и ^подпись, шрифт, цвет, маркировка).

II 1« Ц II 14 М М 1« и М Н

Рисунок 3 - Изолинии

Векторные поля

Параметры:

Поверхность = [прямоугольник или куб, оси, двумерный массив значений параметров в узлах сетки, тип положения векторов (либо наконечник вектора находится в узле расчетной сетки, либо начало вектора находится в узле расчетной сетки)];

Стрелки = [длина, толщина, цвет];

Тип = [наличие закрашашого наконечника либо простого накокчника];

Оцифровка = [размер шрифта, расположение].

Визуализация векторного поля производится путем построения векторов - направленных отрезков, т.е. осуществляется прорисовка векторного поля на заданной сетке, т.е. в каждом узле (х(1), у(1)) рисуется вектор с проекциями на оси хну. Интшсивность поля может определяться длиной стрелки либо цветом. Тип стрелки может быть либо с простым накокчником, либо с закрашошым накожчником. Векторное поле формируется таким образом, что его граничные линии сетки лежат внутри прямоугольника или куба

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

Пример установки векторного поля и интерполяции:

поле = поле(массив значений, массив проекций векторов на оси х и у, число векторов по вертикали, число векторов по горизонтали, размеры области рамки, на которой отображается поле, длина и толщина стрелки, цвет, подпись, шрифт);

интерполяция - интерполяция(массив значтий начальной сетки, массив проекции векторов на оси х и у , число векторов начальной сетки по вертикали, число векторов начальной сетки по горизонтали, массив значений новой сетки, массив проекций векторов на оси х и у, число векторов новой сетки по вертикал» , число векторов новей сетки по горизонтали;.

4. График функции трех переменных

Функциями трех перемшных являются поверхности, изоповерхносп и и объемные изображали. Осуществляется пострсшие поверхностей, заданных таблично с удаляием жвиди мых линий и использованием ликйней и кубической интерполяции точных функций.

Поверхность

Параметры:

Поверхность = [прямоугольник или куб, оси, п-мерный массив значошй параметров в узлах криво лижйной сетки, тоновая заливка];

ОЙ; мнее изображен ,

Параметры:

Ршдеринг объема = [куб, оси. дву* юный массив значошй].

Объемные данные можно представить в трех формах: рендеринг объема, слайсинг и изоповерхности. Рендеринг объема - это цветовое объемное изображаше. Слайсы - это разрезы объемного изображо!ия в виде плоскостей или поверхностей, которые диффе-рацируются различными цветами. Изоповерхность - это множество точек, значашя в которых постоянны.

Рисунок 4 - Векторное пол

Рисунок 5 - Поверхность

5. Компоновка

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

С одной стороны, на шести плоскостях куба могут быть отображшы простые графики на фоне координатных осей, либо любое изображение, сопровождаемое минимальным пояснением в виде легенды и оцифровки осей, либо дополнительными видами. Чтобы лучше исследовать объемные изображали, нужно увидеть его внутрашее содержание, которое возможно с помощью разрезов на плоскости или поверхности. А точечные графики лучше изучаются на фоне координатных сеток.

Компоновка

Параметры:

Компоновка = [прямоугольник или куб, оси, п-мерный массив значошй, проекции на любую координатную ось (тоновая заливка, изолинии, векторные поля), изоповерх-ности, оощеринг объема, слаисы, льгшда, подписи].

Рисунок 6 - Вид компоновки

На рисунке 6 показан хороший пример компоновочного изображения. Мы видим габаритный куб с прозрачными плоскостями, в котором изображшие представлю в виде «этажерки». На двух нижних горизонтальных плоскостях представлзш карты изолиний, на верхней - цветная трехмерная поверхность. Это может быть серия разных наборов данных, например, отображения одного параметра в различные моменты времо!и или нескольких рг> «личных параметров либо это может быть визуализация промежуточных результатов вычислительного эксперимшта. В центре куба помещено объемное изображшие, сквозь которое показаны пунктирные направления проекций некоторых значошй трехмерной поверхности на карты изолиний. Весь этот набор изображений сопровождается вертикальной легендой, прямоугольной формы, расположошсй в нижнем лвом углу, с указанием численного диапазона, соответствующего определенной цветовой гамме. В правом нижнем углу показано направление координатных осей.

3. Заключение

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

Современные научные программные системы, прейдя определений эволюционный

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

Таким образом, в разрабатываемой библиотеке SVL обобщош возможности ведущих систем визуализации с использованием в качестве нижнего уровня отображшия графики интерфейса Win32 GDI. Следующим этапом в разработке прототипа библиотеки SVL является описание всех функций и процедур на языке спецификаций и окончательное докумдатирование библиотеки SVL, когорт тяжет в основу эффективного подхода к программированию [10].

Ли1 ература

1. Энджел Й. Практическое введение в машинную графику: Пер. с англ. - М.: Радио и связь, 1984. - 136с., ил.

2. Баенова Г. М. Разработка библиотеки визуализации в научных вычислениях: постановка задачи // Гр. конф. молодых ученых ИВМ МГ СО РАН - Новосибирск, 2005.-С. 24-34.

3. Официальный сайт Open DX - http://www.opendx.org.

4. Зарубежные библиотеки и пакеты программ по вычислительной математике. Под редакцией У.Кауэлла, пер. с англ. под редакцией О.Б. Арушаняна. - М.: Наука, 1993.

5. Математическое обеспечение графопостроителей. I уровень. СМОГ: Инструкция по программированию. - Новосибирск, ВЦ СО АН СССР 1976. - 118 с.

6. Математическое обеспечение графопостроителей. II уровень. СМОГ: Инструкция по программированию. - Новосибирск, ВЦ СО АН СССР 1976. - 78 с.

7. Баяковский Ю.М. и др. Графор. Графическое расширение фортрана. - М.: Наука. 1985.-288 с.

8. http://www.msdn.microsoft.com

9. Методические рекомендации по анкетному анализу систем машинной графики. Москва. 1986.

10. Орлик С. Программная инженерия. Проектирование программного обеспечения. Глава базируется на IEEE Guide to the Software Engeneering Body of Knowledg -SWEBOK, 2004.

Туйтдеме

Windovs yiuiH гылыми визуалды базалык, ктапхананы к^ру мэселеане арналган макрла

Resume

The article is devoted to the questions of the library host building of the science visualization for Windows.

i Надоели баннеры? Вы всегда можете отключить рекламу.