Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018) — различия между версиями

Материал из 0x1.tv

(Batch edit: replace PCRE (\n\n)+(\n) with \2)
 
(не показана одна промежуточная версия этого же участника)
;{{SpeakerInfo}}: {{Speaker|Денис Лутошкин}}
<blockquote>
Представлены разработанные авторами кроссплатформенные библиотеки построения графиков функций на языках С++ и Fortran.
</blockquote>

{{VideoSection}}
{{vimeoembed|254114845|800|450}}
<!-- {{youtubelink|}} -->
|Kdh1ysxULw8}}{{letscomment}}
{{SlidesSection}}
[[File:Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf|left|page=-|300px]]

{{----}}

== Thesis ==
<latex>
\section{Введение}
Наиболее часто используемыми языками разработки быстроработающих приложений, решающих вычислительные задачи, являются
С++ и Фортран. В вычислительных приложениях могут использоваться блоки, предназначенные для рисования двух{}- и
трёхмерных графиков. Данные блоки повышают сложность кода, что снижает его производительность и повышает сложность
отладки. Поэтому, при решении инженерных задач и задач вычислительной математики, где нельзя обойтись без построения
графики, используются сторонние графические библиотеки.

Целью данной работы являлась разработка доступных, кроссплатформенных, свободных и простых для пользователя программных
комплексов на языках С/С++ и Fortran построения графиков функций.

\section{Обзор существующих графических библиотек}
На сегодняшний день существует несколько графических библиотек и программ, из них можно выделить: 
PGPlot\footnote{\url{http://www.astro.caltech.edu/tjp/pgplot/}}, PLPlot\footnote{\url{http://plplot.sourceforge.net/}}, 
Dislin\footnote{\url{http://www.mps.mpg.de/dislin}}, GNUPlot\footnote{\url{http://www.gnuplot.info/}}.

Среди особенностей существующих библиотек можно выделить:
\begin{itemize}
\item отсутствие поддержки 3D графики в PGPLot;
\item плохая портируемость PLPlot в операционные системы отличные от семейства Linux;
\item коммерческая (проприетарная) библиотека Dislin генерирует только статические изображения (фигуру нельзя повернуть
или изменить масштаб);
\item Dislin бесплатна только для некоммерческого использования;
\item при использовании свободной графической библиотеки GNUPlot необходимо иметь её целиком на компьютере.
\end{itemize}

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

\section{Разработка библиотеки Plotter}
Была поставлена задача разработки универсальных программных комплексов построения графиков на языках программирования
Fortran и C++. Разрабатываемая библиотека должна удовлетворять следующим условиям:

\begin{itemize}
\item должна быть достаточно простой в применении, для её использования следует просто подключить к программе и передать
данные в команду вызова;
\item пользователь должен иметь возможность взаимодействовать с изображением;
\item должна иметь возможность изображать все основные объекты: графики и поверхности.
\end{itemize}

При разработке программных комплексов была использована графическая библиотека OpenGL и свободная кроссплатформенная
реализация библиотеки GLUT  FreeGLUT. Были разработаны свободные и кроссплатформенные библиотеки Plotter построения
двух- и трёхмерных графиков. Библиотеки представляет собой набор функций. Для использования библиотек достаточно
использовать главную функцию \Sys{Draw()} (C++) и \Sys{DrawGraph()} (Fortran).

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

Пользователь может управлять положением камеры: смещать камеру по осям, вращать её, масштабировать изображение.
Изображение учитывает соотношение сторон окна. Пользователь также может изменять режим отображения объектов, что
осуществляется через обработчик нажатий на клавиши клавиатуры. Пользователь может изменить некоторые параметры перед
стартом отображения. Это осуществляется посредством задания параметров отображения.

Для подключения библиотеки Plotter на языке Fortran необходимо добавить в программу строку use plotter, на языке С++
следует в файле исходного кода подключить непосредственно библиотеку: \#include
{\textquotedbl}Plotter.h{\textquotedbl}. Для её использования пользователю достаточно знать одну функцию Draw() (C++) и
DrawGraph()(Fortran) и вызывать с различными параметрами. В зависимости от параметров меняется изображение.

На сегодняшний день тестирование библиотек проведено в ОС Ubuntu Linux, Linux Mint с использованием следующих
компиляторов: Intel Fortran Compiler, Intel C/C++ Compiler, GNU GCC и ОС Windows (Intel Fortran Compiler, Intel C/C++
Compiler, GNU GCC, Microsoft (R) C/C++ Optimizing Compiler). Планируется адаптация библиотек для ОС Debian, Альт
Образование, Simply Linux.

\section{Возможности работы подпрограммы DrawGraph и Draw}
\begin{enumerate}
\item рисование графика одной функции;
\item рисование графиков нескольких функций. Пример графиков представлен на рисунке 1;
\item рисование графика функции с интервалами исключения;
\item рисование графиков нескольких функций с интервалами исключения;
\item рисование графика по точкам;
\item построение графика по точкам с исключёнными точками;
\item построение графика по точкам с интервалами исключения;
\item построение графиков по нескольким наборам точек;
\item построение графиков по нескольким наборам точек с исключёнными точками.

\item построение графиков по нескольким наборам точек с интервалами исключения ;
\item построение поверхности. 
\item построение нескольких поверхностей.
\end{enumerate}

Библиотеки можно загрузить по адресу: \url{https://github.com/LibPlotter/}. 

Библиотека Plotter используется в учебной деятельности ВятГУ при обучении бакалавров и магистрантов направления
«Прикладная математика и информатика».

Данный программный комплекс можно использовать в научной деятельности: при решении инженерных задач, задач
вычислительной математики, при разработке вычислительных приложений на языках C++ и Fortran.

</latex>

[[File:{{#setmainimage:Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций!.jpg}}|center|640px]]
{{LinksSection}}
<!-- <blockquote>[©]</blockquote> -->

{{fblink|2092387187680958}}                                          
{{vklink|1130}}                                          
<references/>

[[Категория:Draft]]
* https://github.com/LibPlotter/
{{stats|disqus_comments=0|refresh_time=2018-02-13T16:16:182021-08-31T18:13:10.151540063360|vimeo_plays=20|youtube_comments=1|youtube_plays=0}}182}}

[[Категория:OSEDUCONF-2018]]
[[Категория:Свободные библиотеки построения графиков]]
[[Категория:Fortran]]

Текущая версия на 12:23, 4 сентября 2021

Докладчик
Денис Лутошкин

Представлены разработанные авторами кроссплатформенные библиотеки построения графиков функций на языках С++ и Fortran.

Видео

on youtube

Посмотрели доклад? Понравился? Напишите комментарий! Не согласны? Тем более напишите.

Презентация

Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций (Денис Лутошкин, OSEDUCONF-2018).pdf

Thesis

Разработка кроссплатформенных библиотек на языке Fortran и С++ построения графиков функций!.jpg

Примечания и ссылки

Plays:202   Comments:1