From d459f04de4dbdfd1f6de9e7e36c187834cea962d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rafael=20Laboissi=C3=A8re?= Date: Thu, 13 Jan 2022 05:53:49 -0300 Subject: [PATCH] New upstream version 8.0.1 --- CMakeLists.txt | 7 ++++--- ChangeLog.txt | 12 +++++++++--- mathgl_en.po | 4 ++-- mathgl_es.po | 4 ++-- mathgl_ru.po | 4 ++-- src/base.cpp | 2 +- src/exec_dat.cpp | 2 +- src/export.cpp | 2 +- src/export_2d.cpp | 4 ++-- texinfo/concept_en.texi | 6 +++--- texinfo/core_en.texi | 4 ++-- texinfo/data_en.texi | 2 +- texinfo/doc_en.texi | 2 +- texinfo/ex_mgl_en.texi | 2 +- texinfo/ex_mgl_ru.texi | 2 +- texinfo/example_en.texi | 4 ++-- texinfo/example_ru.texi | 4 ++-- texinfo/mathgl_en.texi | 2 +- texinfo/overview_en.texi | 2 +- texinfo/overview_ru.texi | 2 +- texinfo/parse_en.texi | 8 ++++---- texinfo/symbols_en.texi | 2 +- texinfo/symbols_ru.texi | 2 +- texinfo/udav_en.texi | 8 ++++---- texinfo/udav_ru.texi | 8 ++++---- texinfo/web_en.texi | 17 ++++++++++++++--- texinfo/web_fr.texi | 2 +- texinfo/web_ru.texi | 17 ++++++++++++++--- todo.txt | 1 + udav/udav_wnd.cpp | 2 +- 30 files changed, 85 insertions(+), 55 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d8f842e..8e5b1b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,9 +27,9 @@ endif(NOT CMAKE_BUILD_TYPE) set(CMAKE_VERBOSE_MAKEFILE ON) set(MathGL_VERSION_MAJOR 8) set(MathGL_VERSION_MINOR 0) -set(MathGL_PATCH_VERSION 0) +set(MathGL_PATCH_VERSION 1) set(MathGL_VERSION ${MathGL_VERSION_MAJOR}.${MathGL_VERSION_MINOR}.${MathGL_PATCH_VERSION}) -set(MathGL_SOVERSION 8.0) +set(MathGL_SOVERSION ${MathGL_VERSION_MAJOR}) string(TIMESTAMP MathGL_DATE UTC) if(CMAKE_BUILD_TYPE STREQUAL "Debug") @@ -83,6 +83,7 @@ function(mgl_add_lib mgl_tmp_lib) add_library(${mgllib} SHARED ${mgl_src_lst}) add_library(${mgllib}-static STATIC ${mgl_src_lst}) set_target_properties(${mgllib} PROPERTIES SOVERSION ${MathGL_SOVERSION}) + set_target_properties(${mgllib} PROPERTIES VERSION ${MathGL_VERSION}) set_target_properties(${mgllib} PROPERTIES DEFINE_SYMBOL "mgl_EXPORTS") set_target_properties(${mgllib} PROPERTIES C_VISIBILITY_PRESET hidden) set_target_properties(${mgllib} PROPERTIES CXX_VISIBILITY_PRESET hidden) @@ -222,7 +223,7 @@ CMAKE_DEPENDENT_OPTION(enable-qt "Enable Qt5 widget" OFF "NOT enable-all-widgets #option(enable-qt5 "Enable Qt5 widget" OFF) CMAKE_DEPENDENT_OPTION(enable-qt5asqt "Set Qt5 as default libmgl-qt" OFF "enable-qt5" OFF) CMAKE_DEPENDENT_OPTION(enable-freetype "Enable freetype support" OFF "NOT enable-all" ON) -set(PY3VERSION_DOTTED "3.8" CACHE STRING "Used python version") +set(PY3VERSION_DOTTED "3.9" CACHE STRING "Used python version") string(REPLACE "." "" PY3VERSION_NODOT ${PY3VERSION_DOTTED}) # msvc fwprintf print char* for the specifier of "%s" format diff --git a/ChangeLog.txt b/ChangeLog.txt index 1103ada..eeb4520 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1,3 +1,9 @@ +8.0.1 Released 12 January 2022 + +* Increase accuracy at line segment skipping. +* Changes in SOVERSION numbering. +* Minor spelling fix (thanks to Rafael Laboissière) + 8.0 Released 1 January 2022 * Change version numbering according Debian rules. @@ -229,7 +235,7 @@ INCOMPATIBLE: 2.3.4 Released 13 February 2016 * Add mglData::Pulse() for determining pulse parameters. -* Add mglData::ScanFile() for getting formated data from textual file. +* Add mglData::ScanFile() for getting formatted data from textual file. * Add mglData::SetList() for setting data from variable argument list of double values. * Add mglIFS2d() and mglIFS3d() for fractal generation using iterated function system (thanks to Diego Sejas Viscarra). * Add option to SetSize() for scaling only primitives but don't erase it. @@ -372,8 +378,8 @@ INCOMPATIBLE: - Add new primitives (arc,polygon,rotated text) as mouse handled ones; - Add close button to data tabs; - Add button to stop script drawing and stop() slot for QMathGL; - - Allow to delete/hide/unhide selected plot; - - Allow to move selected plot between inplots; + - allow one to delete/hide/unhide selected plot; + - allow one to move selected plot between inplots; - Improve NewCommand dialog -- now it replace the script command if user change arguments only; - MGL commands 'perspective' and 'fog' now work correctly in UDAV; - Update UDAV icons to use Oxygen ones. diff --git a/mathgl_en.po b/mathgl_en.po index 3db32ce..0da0da6 100644 --- a/mathgl_en.po +++ b/mathgl_en.po @@ -2304,7 +2304,7 @@ msgid "Get data column filled by formula on column ids" msgstr "" #: src/exec_dat.cpp:1595 -msgid "Get formated data from file" +msgid "Get formatted data from file" msgstr "" #: src/exec_dat.cpp:1568 @@ -3416,7 +3416,7 @@ msgstr "" #: udav/udav_wnd.cpp:198 msgid "" "Open and execute/show script or data from file (Ctrl+O).\n" -"You may switch off automatic exection in UDAV properties." +"You may switch off automatic execution in UDAV properties." msgstr "" #: mgllab/help.cpp:169 diff --git a/mathgl_es.po b/mathgl_es.po index 957ba31..34e9bd0 100644 --- a/mathgl_es.po +++ b/mathgl_es.po @@ -2497,7 +2497,7 @@ msgid "Get data column filled by formula on column ids" msgstr "Llenar columna de datos por fórmula en ids de columnas" #: src/exec_dat.cpp:1809 -msgid "Get formated data from file" +msgid "Get formatted data from file" msgstr "Obtener datos con formato de archivo" #: src/exec_dat.cpp:1734 @@ -3638,7 +3638,7 @@ msgstr "Cargar todos los arreglos del archivo HDF" #: udav/udav_wnd.cpp:198 msgid "" "Open and execute/show script or data from file (Ctrl+O).\n" -"You may switch off automatic exection in UDAV properties." +"You may switch off automatic execution in UDAV properties." msgstr "" "Abrir y ejecutar/mostrar script o datos de archivo (Ctrl+O).\n" "Puede desactivar ejecucion automatica en propiedades de UDAV." diff --git a/mathgl_ru.po b/mathgl_ru.po index 02d0909..de43b45 100644 --- a/mathgl_ru.po +++ b/mathgl_ru.po @@ -2477,7 +2477,7 @@ msgid "Get data column filled by formula on column ids" msgstr "Вычислить данные по формуле из имен колонок" #: src/exec_dat.cpp:1809 -msgid "Get formated data from file" +msgid "Get formatted data from file" msgstr "Загрузить форматированные данные из файла" #: src/exec_dat.cpp:1734 @@ -3619,7 +3619,7 @@ msgstr "Загрузить все данные из HDF файла" #: udav/udav_wnd.cpp:198 msgid "" "Open and execute/show script or data from file (Ctrl+O).\n" -"You may switch off automatic exection in UDAV properties." +"You may switch off automatic execution in UDAV properties." msgstr "" "Открыть и выполнить скрипт или данные (Ctrl+O).\n" "Вы можете отключить автоматическое выполнение в настройках." diff --git a/src/base.cpp b/src/base.cpp index bf95b01..3220e4e 100644 --- a/src/base.cpp +++ b/src/base.cpp @@ -1804,7 +1804,7 @@ void mglBase::curve_plot(size_t num, size_t k0, size_t step) for(k=i+1;kt1 && tt+dd?t+dd:t2; } // new range else break; diff --git a/src/exec_dat.cpp b/src/exec_dat.cpp index 4070733..8de8f91 100644 --- a/src/exec_dat.cpp +++ b/src/exec_dat.cpp @@ -1806,7 +1806,7 @@ mglCommand mgls_dat_cmd[] = { {"roots",_("Find roots using data as initial values"), "roots Res 'func' Ini ['var']|Res 'func' ini ['var']|Res 'func' 'vars' Ini", mgls_roots ,4}, {"save",_("Save data to file"),"save Dat 'file'|val 'file'|'str' 'file' ['how']", mgls_save ,3}, {"savehdf",_("Save data to HDF5 file"),"savehdf Dat 'file' 'id' [rewrite]|val 'file' 'id' [rewrite]", mgls_savehdf ,3}, - {"scanfile",_("Get formated data from file"),"scanfile Dat 'fname 'templ'", mgls_scanfile ,4}, + {"scanfile",_("Get formatted data from file"),"scanfile Dat 'fname 'templ'", mgls_scanfile ,4}, {"section",_("Extract sub-array between values"),"section Res Dat id ['dir' val]|Res Dat Ids ['dir' val]", mgls_section ,4}, {"sew",_("Remove jump into the data, like phase jumps"),"sew Dat ['dir' da]", mgls_sew ,16}, {"sinfft",_("Sin-Fourier transform at some direction"),"sinfft Dat 'dir'", mgls_sinfft ,16}, diff --git a/src/export.cpp b/src/export.cpp index eb67257..0b287ab 100644 --- a/src/export.cpp +++ b/src/export.cpp @@ -222,7 +222,7 @@ int MGL_NO_EXPORT mgl_bps_save(const char *fname, int w, int h, unsigned char ** bool gz = fname[strlen(fname)-1]=='z'; void *fp; - if(!strcmp(fname,"-")) fp = stdout; // allow to write in stdout + if(!strcmp(fname,"-")) fp = stdout; // allow one to write in stdout else { fp = gz ? (void*)gzopen(fname,"wt") : (void*)fopen(fname,"wt"); diff --git a/src/export_2d.cpp b/src/export_2d.cpp index bd07404..ba0e9cb 100644 --- a/src/export_2d.cpp +++ b/src/export_2d.cpp @@ -204,7 +204,7 @@ void MGL_EXPORT mgl_write_eps(HMGL gr, const char *fname,const char *descr) bool gz = fname[strlen(fname)-1]=='z'; void *fp; - if(!strcmp(fname,"-")) fp = stdout; // allow to write in stdout + if(!strcmp(fname,"-")) fp = stdout; // allow one to write in stdout else fp = gz ? (void*)gzopen(fname,"wt") : (void*)fopen(fname,"wt"); if(!fp) { gr->SetWarn(mglWarnOpen,fname); return; } int w = _Gr_->GetWidth(), h = _Gr_->GetHeight(); @@ -455,7 +455,7 @@ void MGL_EXPORT mgl_write_svg(HMGL gr, const char *fname,const char *descr) bool gz = fname[strlen(fname)-1]=='z'; long hh = _Gr_->GetHeight(), ww = _Gr_->GetWidth(); - void *fp = stdout; // allow to write in stdout + void *fp = stdout; // allow one to write in stdout bool head = true; if(strcmp(fname,"-")) fp = gz ? (void*)gzopen(fname,"wt") : (void*)fopen(fname,"wt"); else head = false; diff --git a/texinfo/concept_en.texi b/texinfo/concept_en.texi index a71b9a4..f241e7d 100644 --- a/texinfo/concept_en.texi +++ b/texinfo/concept_en.texi @@ -18,7 +18,7 @@ There are six most general (base) concepts: @item @strong{All plots are vector plots.} The MathGL library is intended for handling scientific data which have vector nature (lines, faces, matrices and so on). As a result, vector representation is used in all cases! In addition, the vector representation allows one to scale the plot easily -- change the canvas size by a factor of 2, and the picture will be proportionally scaled. @item -@strong{New drawing never clears things drawn already.} This, in some sense, unexpected, idea allows to create a lot of ``combined'' graphics. For example, to make a surface with contour lines one needs to call the function for surface plotting and the function for contour lines plotting (in any order). Thus the special functions for making this ``combined'' plots (as it is done in Matlab and some other plotting systems) are superfluous. +@strong{New drawing never clears things drawn already.} This, in some sense, unexpected, idea allows one to create a lot of ``combined'' graphics. For example, to make a surface with contour lines one needs to call the function for surface plotting and the function for contour lines plotting (in any order). Thus the special functions for making this ``combined'' plots (as it is done in Matlab and some other plotting systems) are superfluous. @end enumerate In addition to the general concepts I want to comment on some non-trivial or less commonly used general ideas -- plot positioning, axis specification and curvilinear coordinates, styles for lines, text and color scheme. @@ -123,7 +123,7 @@ The final color is a linear interpolation of color array. The color array is con The special 2-axis color scheme (like in @ref{map} plot) can be used if it contain symbol @samp{%}. In this case the second direction (alpha channel) is used as second coordinate for colors. At this, up to 4 colors can be specified for corners: @{c1,a1@}, @{c2,a1@}, @{c1,a2@}, @{c2,a2@}. Here color and alpha ranges are @{c1,c2@} and @{a1,a2@} correspondingly. If one specify less than 4 colors then black color is used for corner @{c1,a1@}. If only 2 colors are specified then the color of their sum is used for corner @{c2,a2@}. -There are several useful combinations. String @samp{kw} corresponds to the simplest gray color scheme where higher values are brighter. String @samp{wk} presents the inverse gray color scheme where higher value is darker. Strings @samp{kRryw}, @samp{kGgw}, @samp{kBbcw} present the well-known @emph{hot}, @emph{summer} and @emph{winter} color schemes. Strings @samp{BbwrR} and @samp{bBkRr} allow to view bi-color figure on white or black background, where negative values are blue and positive values are red. String @samp{BbcyrR} gives a color scheme similar to the well-known @emph{jet} color scheme. +There are several useful combinations. String @samp{kw} corresponds to the simplest gray color scheme where higher values are brighter. String @samp{wk} presents the inverse gray color scheme where higher value is darker. Strings @samp{kRryw}, @samp{kGgw}, @samp{kBbcw} present the well-known @emph{hot}, @emph{summer} and @emph{winter} color schemes. Strings @samp{BbwrR} and @samp{bBkRr} allow one to view bi-color figure on white or black background, where negative values are blue and positive values are red. String @samp{BbcyrR} gives a color scheme similar to the well-known @emph{jet} color scheme. For more precise coloring, you can change default (equidistant) position of colors in color scheme. The format is @samp{@{CN,pos@}}, @samp{@{CN,pos@}} or @samp{@{xRRGGBB,pos@}}. The position value @var{pos} should be in range [0, 1]. Note, that alternative method for fine tuning of the color scheme is using the formula for coloring (see @ref{Curved coordinates}). @@ -160,7 +160,7 @@ Text style is specified by the string which may contain: color id characters @sa The font styles are: @samp{r} -- roman (or regular) font, @samp{i} -- italic style, @samp{b} -- bold style. By default roman roman font is used. The align types are: @samp{L} -- align left (default), @samp{C} -- align center, @samp{R} -- align right, @samp{T} -- align under, @samp{V} -- align center vertical. Additional font effects are: @samp{w} -- wired, @samp{o} -- over-lined, @samp{u} -- underlined. -Also a parsing of the LaTeX-like syntax is provided. There are commands for the font style changing inside the string (for example, use \b for bold font): \a or \overline -- over-lined, \b or \textbf -- bold, \i or \textit -- italic, \r or \textrm -- roman (disable bold and italic attributes), \u or \underline -- underlined, \w or \wire -- wired, \big -- bigger size, @@ -- smaller size. The lower and upper indexes are specified by @samp{_} and @samp{^} symbols. At this the changed font style is applied only on next symbol or symbols in braces @{@}. The text in braces @{@} are treated as single symbol that allow one to print the index of index. For example, compare the strings @samp{sin (x^@{2^3@})} and @samp{sin (x^2^3)}. You may also change text color inside string by command #? or by \color? where @samp{?} is symbolic id of the color (@pxref{Color styles}). For example, words @samp{blue} and @samp{red} will be colored in the string @samp{#b@{blue@} and \colorr@{red@} text}. The most of functions understand the newline symbol @samp{\n} and allows to print multi-line text. Finally, you can use arbitrary (if it was defined in font-face) UTF codes by command @code{\utf0x????}. For example, @code{\utf0x3b1} will produce +Also a parsing of the LaTeX-like syntax is provided. There are commands for the font style changing inside the string (for example, use \b for bold font): \a or \overline -- over-lined, \b or \textbf -- bold, \i or \textit -- italic, \r or \textrm -- roman (disable bold and italic attributes), \u or \underline -- underlined, \w or \wire -- wired, \big -- bigger size, @@ -- smaller size. The lower and upper indexes are specified by @samp{_} and @samp{^} symbols. At this the changed font style is applied only on next symbol or symbols in braces @{@}. The text in braces @{@} are treated as single symbol that allow one to print the index of index. For example, compare the strings @samp{sin (x^@{2^3@})} and @samp{sin (x^2^3)}. You may also change text color inside string by command #? or by \color? where @samp{?} is symbolic id of the color (@pxref{Color styles}). For example, words @samp{blue} and @samp{red} will be colored in the string @samp{#b@{blue@} and \colorr@{red@} text}. The most of functions understand the newline symbol @samp{\n} and allows one to print multi-line text. Finally, you can use arbitrary (if it was defined in font-face) UTF codes by command @code{\utf0x????}. For example, @code{\utf0x3b1} will produce @ifhtml @html α symbol. diff --git a/texinfo/core_en.texi b/texinfo/core_en.texi index 9e8a611..792f280 100644 --- a/texinfo/core_en.texi +++ b/texinfo/core_en.texi @@ -8,7 +8,7 @@ This chapter contains a lot of plotting commands for 1D, 2D and 3D data. It also @end ifset @ifclear UDAV -The core of MathGL is @strong{mglGraph} class defined in @code{#include }. It contains a lot of plotting functions for 1D, 2D and 3D data. It also encapsulates parameters for axes drawing. Moreover an arbitrary coordinate transformation can be used for each axis. All plotting functions use data encapsulated in mglData class (see @ref{Data processing}) that allows to check sizes of used arrays easily. Also it have many functions for data handling: modify it by formulas, find momentums and distribution (histogram), apply operator (differentiate, integrate, transpose, Fourier and so on), change data sizes (interpolate, squeeze, crop and so on). Additional information about colors, fonts, formula parsing can be found in @ref{General concepts} and @ref{Other classes}. +The core of MathGL is @strong{mglGraph} class defined in @code{#include }. It contains a lot of plotting functions for 1D, 2D and 3D data. It also encapsulates parameters for axes drawing. Moreover an arbitrary coordinate transformation can be used for each axis. All plotting functions use data encapsulated in mglData class (see @ref{Data processing}) that allows one to check sizes of used arrays easily. Also it have many functions for data handling: modify it by formulas, find momentums and distribution (histogram), apply operator (differentiate, integrate, transpose, Fourier and so on), change data sizes (interpolate, squeeze, crop and so on). Additional information about colors, fonts, formula parsing can be found in @ref{General concepts} and @ref{Other classes}. @end ifclear Some of MathGL features will appear only in novel versions. To test used MathGL version you can use following function. @@ -1442,7 +1442,7 @@ Exports current frame to EPS file using bitmap representation. Parameter @var{fn @deftypefn {Method on @code{mglGraph}} @code{void} WriteSVG (@code{const char *}fname, @code{const char *}descr=@code{""}) @deftypefnx {C function} @code{void} mgl_write_svg (@code{HMGL} gr, @code{const char *}fname, @code{const char *}descr) -Exports current frame to SVG (Scalable Vector Graphics) file using vector representation. In difference of EPS format, SVG format support transparency that allows to correctly draw semitransparent plot (like @ref{surfa}, @ref{surf3a} or @ref{cloud}). Note, the output file may be too large for graphic of large data array (especially for surfaces). It is better to use bitmap format (for example PNG or JPEG). However, program has no internal limitations for size of output file. Parameter @var{fname} specifies the file name, @var{descr} adds description to file (default is file name). If file name is terminated by @samp{z} (for example, @samp{fname.svgz}) then file will be compressed in gzip format. Note, that SVG format don't support color interpolation, and the resulting plot will look as you use @ref{quality}=1 for plotting. +Exports current frame to SVG (Scalable Vector Graphics) file using vector representation. In difference of EPS format, SVG format support transparency that allows one to correctly draw semitransparent plot (like @ref{surfa}, @ref{surf3a} or @ref{cloud}). Note, the output file may be too large for graphic of large data array (especially for surfaces). It is better to use bitmap format (for example PNG or JPEG). However, program has no internal limitations for size of output file. Parameter @var{fname} specifies the file name, @var{descr} adds description to file (default is file name). If file name is terminated by @samp{z} (for example, @samp{fname.svgz}) then file will be compressed in gzip format. Note, that SVG format don't support color interpolation, and the resulting plot will look as you use @ref{quality}=1 for plotting. @end deftypefn @deftypefn {Method on @code{mglGraph}} @code{void} WriteTEX (@code{const char *}fname, @code{const char *}descr=@code{""}) diff --git a/texinfo/data_en.texi b/texinfo/data_en.texi index 684afc1..06b35ef 100644 --- a/texinfo/data_en.texi +++ b/texinfo/data_en.texi @@ -1001,7 +1001,7 @@ Gets array which is @var{id}-th section (range of slices separated by value @var @deftypefnx {Method on @code{mglData}} @code{mglData} Solve (@code{mreal} val, @code{char} dir, @code{const mglDataA &}idat, @code{bool} norm=@code{true}) @code{const} @deftypefnx {C function} @code{HMDT} mgl_data_solve (@code{HCDT} dat, @code{mreal} val, @code{char} dir, @code{HCDT} idat, @code{int} norm) @end ifclear -Gets array which values is indexes (roots) along given direction @var{dir}, where interpolated values of data @var{dat} are equal to @var{val}. Output data will have the sizes of @var{dat} in directions transverse to @var{dir}. If data @var{idat} is provided then its values are used as starting points. This allows to find several branches by consequentive calls. Indexes are supposed to be normalized in range [0,1] (if @var{norm}=@code{true}) or in ranges [0,nx], [0,ny], [0,nz] correspondingly. Function return NULL or create empty data if data cannot be created for given arguments. @sref{Solve sample} +Gets array which values is indexes (roots) along given direction @var{dir}, where interpolated values of data @var{dat} are equal to @var{val}. Output data will have the sizes of @var{dat} in directions transverse to @var{dir}. If data @var{idat} is provided then its values are used as starting points. This allows one to find several branches by consequentive calls. Indexes are supposed to be normalized in range [0,1] (if @var{norm}=@code{true}) or in ranges [0,nx], [0,ny], [0,nz] correspondingly. Function return NULL or create empty data if data cannot be created for given arguments. @sref{Solve sample} @end deftypefn @anchor{roots} diff --git a/texinfo/doc_en.texi b/texinfo/doc_en.texi index d0163b2..82a16dc 100644 --- a/texinfo/doc_en.texi +++ b/texinfo/doc_en.texi @@ -169,7 +169,7 @@ screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+ Table below show plotting time in seconds for all samples in file @uref{http://sourceforge.net/p/mathgl/code/HEAD/tree/mathgl-2x/examples/samples.cpp, examples/samples.cpp}. The test was done in my laptop (i5-2430M) with 64-bit Debian. -Few words about the speed. Firstly, direct bitmap drawing (Quality=4,5,6) is faster than buffered one (Quality=0,1,2), but sometimes it give incorrect result (see @ref{cloud}) and don't allow to export in vector or 3d formats (like EPS, SVG, PDF ...). Secondly, lower quality is faster than high one generally, i.e. Quality=1 is faster than Quality=2, and Quality=0 is faster than Quality=1. However, if plot contain a lot of faces (like @ref{cloud}, @ref{surf3}, @ref{pipe}, @ref{dew}) then Quality=0 may become slow, especially for small images. Finally, smaller images are drawn faster than larger ones. +Few words about the speed. Firstly, direct bitmap drawing (Quality=4,5,6) is faster than buffered one (Quality=0,1,2), but sometimes it give incorrect result (see @ref{cloud}) and don't allow one to export in vector or 3d formats (like EPS, SVG, PDF ...). Secondly, lower quality is faster than high one generally, i.e. Quality=1 is faster than Quality=2, and Quality=0 is faster than Quality=1. However, if plot contain a lot of faces (like @ref{cloud}, @ref{surf3}, @ref{pipe}, @ref{dew}) then Quality=0 may become slow, especially for small images. Finally, smaller images are drawn faster than larger ones. Results for image size 800*600 (default one). @include time.texi diff --git a/texinfo/ex_mgl_en.texi b/texinfo/ex_mgl_en.texi index 8c1ad3e..f303425 100644 --- a/texinfo/ex_mgl_en.texi +++ b/texinfo/ex_mgl_en.texi @@ -1372,7 +1372,7 @@ text -0.5 0.2 'i\partial_z\i u \approx\ exp(-\i x^2)\i u+exp(\partial_x^2)[\i u] @subsection Drawing phase plain @nav{} -Here I want say a few words of plotting phase plains. Phase plain is name for system of coordinates @math{x}, @math{x'}, i.e. a variable and its time derivative. Plot in phase plain is very useful for qualitative analysis of an ODE, because such plot is rude (it topologically the same for a range of ODE parameters). Most often the phase plain @{@math{x}, @math{x'}@} is used (due to its simplicity), that allows to analyze up to the 2nd order ODE (i.e. @math{x''+f(x,x')=0}). +Here I want say a few words of plotting phase plains. Phase plain is name for system of coordinates @math{x}, @math{x'}, i.e. a variable and its time derivative. Plot in phase plain is very useful for qualitative analysis of an ODE, because such plot is rude (it topologically the same for a range of ODE parameters). Most often the phase plain @{@math{x}, @math{x'}@} is used (due to its simplicity), that allows one to analyze up to the 2nd order ODE (i.e. @math{x''+f(x,x')=0}). The simplest way to draw phase plain in MathGL is using @ref{flow} function(s), which automatically select several points and draw flow threads. If the ODE have an integral of motion (like Hamiltonian @math{H(x,x')=const} for dissipation-free case) then you can use @ref{cont} function for plotting isolines (contours). In fact. isolines are the same as flow threads, but without arrows on it. Finally, you can directly solve ODE using @ref{ode} function and plot its numerical solution. diff --git a/texinfo/ex_mgl_ru.texi b/texinfo/ex_mgl_ru.texi index 17e728e..b722eae 100644 --- a/texinfo/ex_mgl_ru.texi +++ b/texinfo/ex_mgl_ru.texi @@ -1373,7 +1373,7 @@ text -0.5 0.2 'i\partial_z\i u \approx\ exp(-\i x^2)\i u+exp(\partial_x^2)[\i u] @subsection Drawing phase plain @nav{} -Here I want say a few words of plotting phase plains. Phase plain is name for system of coordinates @math{x}, @math{x'}, i.e. a variable and its time derivative. Plot in phase plain is very useful for qualitative analysis of an ODE, because such plot is rude (it topologically the same for a range of ODE parameters). Most often the phase plain @{@math{x}, @math{x'}@} is used (due to its simplicity), that allows to analyze up to the 2nd order ODE (i.e. @math{x''+f(x,x')=0}). +Here I want say a few words of plotting phase plains. Phase plain is name for system of coordinates @math{x}, @math{x'}, i.e. a variable and its time derivative. Plot in phase plain is very useful for qualitative analysis of an ODE, because such plot is rude (it topologically the same for a range of ODE parameters). Most often the phase plain @{@math{x}, @math{x'}@} is used (due to its simplicity), that allows one to analyze up to the 2nd order ODE (i.e. @math{x''+f(x,x')=0}). The simplest way to draw phase plain in MathGL is using @ref{flow} function(s), which automatically select several points and draw flow threads. If the ODE have an integral of motion (like Hamiltonian @math{H(x,x')=const} for dissipation-free case) then you can use @ref{cont} function for plotting isolines (contours). In fact. isolines are the same as flow threads, but without arrows on it. Finally, you can directly solve ODE using @ref{ode} function and plot its numerical solution. diff --git a/texinfo/example_en.texi b/texinfo/example_en.texi index ee5133d..b3d401c 100644 --- a/texinfo/example_en.texi +++ b/texinfo/example_en.texi @@ -495,7 +495,7 @@ int main(int argc,char **argv) QMainWindow *Wnd = new QMainWindow; Wnd->resize(810,610); // for fill up the QMGL, menu and toolbars Wnd->setWindowTitle("QMathGL sample"); - // here I allow to scroll QMathGL -- the case + // here I allow one to scroll QMathGL -- the case // then user want to prepare huge picture QScrollArea *scroll = new QScrollArea(Wnd); @@ -2334,7 +2334,7 @@ int sample(mglGraph *gr) @subsection Drawing phase plain @nav{} -Here I want say a few words of plotting phase plains. Phase plain is name for system of coordinates @math{x}, @math{x'}, i.e. a variable and its time derivative. Plot in phase plain is very useful for qualitative analysis of an ODE, because such plot is rude (it topologically the same for a range of ODE parameters). Most often the phase plain @{@math{x}, @math{x'}@} is used (due to its simplicity), that allows to analyze up to the 2nd order ODE (i.e. @math{x''+f(x,x')=0}). +Here I want say a few words of plotting phase plains. Phase plain is name for system of coordinates @math{x}, @math{x'}, i.e. a variable and its time derivative. Plot in phase plain is very useful for qualitative analysis of an ODE, because such plot is rude (it topologically the same for a range of ODE parameters). Most often the phase plain @{@math{x}, @math{x'}@} is used (due to its simplicity), that allows one to analyze up to the 2nd order ODE (i.e. @math{x''+f(x,x')=0}). The simplest way to draw phase plain in MathGL is using @ref{flow} function(s), which automatically select several points and draw flow threads. If the ODE have an integral of motion (like Hamiltonian @math{H(x,x')=const} for dissipation-free case) then you can use @ref{cont} function for plotting isolines (contours). In fact. isolines are the same as flow threads, but without arrows on it. Finally, you can directly solve ODE using @ref{ode} function and plot its numerical solution. diff --git a/texinfo/example_ru.texi b/texinfo/example_ru.texi index 45ab16b..b835702 100644 --- a/texinfo/example_ru.texi +++ b/texinfo/example_ru.texi @@ -494,7 +494,7 @@ int main(int argc,char **argv) QMainWindow *Wnd = new QMainWindow; Wnd->resize(810,610); // for fill up the QMGL, menu and toolbars Wnd->setWindowTitle("QMathGL sample"); - // here I allow to scroll QMathGL -- the case + // here I allow one to scroll QMathGL -- the case // then user want to prepare huge picture QScrollArea *scroll = new QScrollArea(Wnd); @@ -2324,7 +2324,7 @@ int sample(mglGraph *gr) @subsection Drawing phase plain @nav{} -Here I want say a few words of plotting phase plains. Phase plain is name for system of coordinates @math{x}, @math{x'}, i.e. a variable and its time derivative. Plot in phase plain is very useful for qualitative analysis of an ODE, because such plot is rude (it topologically the same for a range of ODE parameters). Most often the phase plain @{@math{x}, @math{x'}@} is used (due to its simplicity), that allows to analyze up to the 2nd order ODE (i.e. @math{x''+f(x,x')=0}). +Here I want say a few words of plotting phase plains. Phase plain is name for system of coordinates @math{x}, @math{x'}, i.e. a variable and its time derivative. Plot in phase plain is very useful for qualitative analysis of an ODE, because such plot is rude (it topologically the same for a range of ODE parameters). Most often the phase plain @{@math{x}, @math{x'}@} is used (due to its simplicity), that allows one to analyze up to the 2nd order ODE (i.e. @math{x''+f(x,x')=0}). The simplest way to draw phase plain in MathGL is using @ref{flow} function(s), which automatically select several points and draw flow threads. If the ODE have an integral of motion (like Hamiltonian @math{H(x,x')=const} for dissipation-free case) then you can use @ref{cont} function for plotting isolines (contours). In fact. isolines are the same as flow threads, but without arrows on it. Finally, you can directly solve ODE using @ref{ode} function and plot its numerical solution. diff --git a/texinfo/mathgl_en.texi b/texinfo/mathgl_en.texi index dbfde73..3b4c492 100644 --- a/texinfo/mathgl_en.texi +++ b/texinfo/mathgl_en.texi @@ -129,7 +129,7 @@ This file documents the Mathematical Graphic Library (MathGL), a collection of c Table below show plotting time in seconds for all samples in file @uref{http://sourceforge.net/p/mathgl/code/HEAD/tree/mathgl-2x/examples/samples.cpp, examples/samples.cpp}. The test was done in my laptop (i5-2430M) with 64-bit Debian. -Few words about the speed. Firstly, direct bitmap drawing (Quality=4,5,6) is faster than buffered one (Quality=0,1,2), but sometimes it give incorrect result (see @ref{cloud}) and don't allow to export in vector or 3d formats (like EPS, SVG, PDF ...). Secondly, lower quality is faster than high one generally, i.e. Quality=1 is faster than Quality=2, and Quality=0 is faster than Quality=1. However, if plot contain a lot of faces (like @ref{cloud}, @ref{surf3}, @ref{pipe}, @ref{dew}) then Quality=0 may become slow, especially for small images. Finally, smaller images are drawn faster than larger ones. +Few words about the speed. Firstly, direct bitmap drawing (Quality=4,5,6) is faster than buffered one (Quality=0,1,2), but sometimes it give incorrect result (see @ref{cloud}) and don't allow one to export in vector or 3d formats (like EPS, SVG, PDF ...). Secondly, lower quality is faster than high one generally, i.e. Quality=1 is faster than Quality=2, and Quality=0 is faster than Quality=1. However, if plot contain a lot of faces (like @ref{cloud}, @ref{surf3}, @ref{pipe}, @ref{dew}) then Quality=0 may become slow, especially for small images. Finally, smaller images are drawn faster than larger ones. Results for image size 800*600 (default one). @include time.texi diff --git a/texinfo/overview_en.texi b/texinfo/overview_en.texi index 9416ac8..1c949f7 100644 --- a/texinfo/overview_en.texi +++ b/texinfo/overview_en.texi @@ -184,7 +184,7 @@ Add pipes support in utilities (@code{mglconv, mglview}). @section Utilities for parsing MGL @nav{} -MathGL library provides several tools for parsing MGL scripts. There is tools saving it to bitmap or vectorial images (@code{mglconv}). Tool @code{mglview} show MGL script and allow to rotate and setup the image. Another feature of @code{mglview} is loading *.mgld files (see @code{ExportMGLD()}) for quick viewing 3d pictures. +MathGL library provides several tools for parsing MGL scripts. There is tools saving it to bitmap or vectorial images (@code{mglconv}). Tool @code{mglview} show MGL script and allow one to rotate and setup the image. Another feature of @code{mglview} is loading *.mgld files (see @code{ExportMGLD()}) for quick viewing 3d pictures. Both tools have similar set of arguments. They can be name of script file or options. You can use @samp{-} as script name for using standard input (i.e. pipes). Options are: @itemize diff --git a/texinfo/overview_ru.texi b/texinfo/overview_ru.texi index 4d998fe..e49714c 100644 --- a/texinfo/overview_ru.texi +++ b/texinfo/overview_ru.texi @@ -186,7 +186,7 @@ Add pipes support in utilities (@code{mglconv, mglview}). @section Utilities for parsing MGL @nav{} -MathGL library provides several tools for parsing MGL scripts. There is tools saving it to bitmap or vectorial images (@code{mglconv}). Tool @code{mglview} show MGL script and allow to rotate and setup the image. Another feature of @code{mglview} is loading *.mgld files (see @code{ExportMGLD()}) for quick viewing 3d pictures. +MathGL library provides several tools for parsing MGL scripts. There is tools saving it to bitmap or vectorial images (@code{mglconv}). Tool @code{mglview} show MGL script and allow one to rotate and setup the image. Another feature of @code{mglview} is loading *.mgld files (see @code{ExportMGLD()}) for quick viewing 3d pictures. Both tools have similar set of arguments. They can be name of script file or options. You can use @samp{-} as script name for using standard input (i.e. pipes). Options are: @itemize diff --git a/texinfo/parse_en.texi b/texinfo/parse_en.texi index c6c6c58..46924f3 100644 --- a/texinfo/parse_en.texi +++ b/texinfo/parse_en.texi @@ -27,7 +27,7 @@ MathGL library supports the simplest scripts for data handling and plotting. The MGL script language is rather simple. Each string is a command. First word of string is the name of command. Other words are command arguments. Words are separated from each other by space or tabulation symbol. The upper or lower case of words is important, i.e. variables @var{a} and @var{A} are different variables. Symbol @samp{#} starts the comment (all characters after # will be ignored). The exception is situation when @samp{#} is a part of some string. Also options can be specified after symbol @samp{;} (@pxref{Command options}). Symbol @samp{:} starts new command (like new line character) if it is not placed inside a string or inside brackets. -If string contain references to external parameters (substrings @samp{$0}, @samp{$1} ... @samp{$9}) or definitions (substrings @samp{$a}, @samp{$b} ... @samp{$z}) then before execution the values of parameter/definition will be substituted instead of reference. It allows to use the same MGL script for different parameters (filenames, paths, condition and so on). +If string contain references to external parameters (substrings @samp{$0}, @samp{$1} ... @samp{$9}) or definitions (substrings @samp{$a}, @samp{$b} ... @samp{$z}) then before execution the values of parameter/definition will be substituted instead of reference. It allows one to use the same MGL script for different parameters (filenames, paths, condition and so on). Argument can be a string, a variable (data arrays) or a number (scalars). @itemize @bullet @@ -449,7 +449,7 @@ The same as previous but read script from the file @var{fp}. If @var{print}=@cod @deftypefnx {Method on @code{mglParse}} @code{int} Parse (@code{mglGraph *}gr, @code{const wchar_t *}str, @code{long} pos=@code{0}) @deftypefnx {C function} @code{int} mgl_parse_line (@code{HMGL} gr, @code{HMPR} p, @code{const char *}str, @code{int} pos) @deftypefnx {C function} @code{int} mgl_parse_linew (@code{HMGL} gr, @code{HMPR} p, @code{const wchar_t *}str, @code{int} pos) -Function parses the string @var{str} and executes it by using @var{gr} as a graphics plotter. Returns the value depending on an error presence in the string @var{str}: 0 -- no error, 1 -- wrong command argument(s), 2 -- unknown command, 3 -- string is too long, 4 -- strings is not closed. Optional argument @var{pos} allows to save the string position in the document (or file) for using @code{for|next} command. +Function parses the string @var{str} and executes it by using @var{gr} as a graphics plotter. Returns the value depending on an error presence in the string @var{str}: 0 -- no error, 1 -- wrong command argument(s), 2 -- unknown command, 3 -- string is too long, 4 -- strings is not closed. Optional argument @var{pos} allows one to save the string position in the document (or file) for using @code{for|next} command. @end deftypefn @deftypefn {Method on @code{mglParse}} @code{mglData} Calc (@code{const char *}formula) @@ -510,7 +510,7 @@ Restore Once flag. @deftypefn {Method on @code{mglParse}} @code{void} AllowSetSize (@code{bool} a) @deftypefnx {C function} @code{void} mgl_parser_allow_setsize (@code{HMPR} p, @code{int} a) -Allow to parse @ref{setsize} command or not. +allow one to parse @ref{setsize} command or not. @end deftypefn @deftypefn {Method on @code{mglParse}} @code{void} AllowFileIO (@code{bool} a) @@ -520,7 +520,7 @@ Allow reading/saving files or not. @deftypefn {Method on @code{mglParse}} @code{void} AllowDllCall (@code{bool} a) @deftypefnx {C function} @code{void} mgl_parser_allow_dll_call (@code{HMPR} p, @code{int} a) -Allow to parse @ref{load} command or not. +allow one to parse @ref{load} command or not. @end deftypefn @deftypefn {Method on @code{mglParse}} @code{void} Stop () diff --git a/texinfo/symbols_en.texi b/texinfo/symbols_en.texi index 0c15b23..8d4a7bc 100644 --- a/texinfo/symbols_en.texi +++ b/texinfo/symbols_en.texi @@ -624,7 +624,7 @@ style of @ref{tape}. @tab Create new window with empty script. Note, all scripts share variables. So, second window can be used to see some additional information of existed variables. @item @key{Ctrl-O} -@tab Open and execute/show script or data from file. You may switch off automatic exection in UDAV properties +@tab Open and execute/show script or data from file. You may switch off automatic execution in UDAV properties @item @key{Ctrl-S} @tab Save script to a file. diff --git a/texinfo/symbols_ru.texi b/texinfo/symbols_ru.texi index 0c15b23..8d4a7bc 100644 --- a/texinfo/symbols_ru.texi +++ b/texinfo/symbols_ru.texi @@ -624,7 +624,7 @@ style of @ref{tape}. @tab Create new window with empty script. Note, all scripts share variables. So, second window can be used to see some additional information of existed variables. @item @key{Ctrl-O} -@tab Open and execute/show script or data from file. You may switch off automatic exection in UDAV properties +@tab Open and execute/show script or data from file. You may switch off automatic execution in UDAV properties @item @key{Ctrl-S} @tab Save script to a file. diff --git a/texinfo/udav_en.texi b/texinfo/udav_en.texi index 74621d9..ccc77f8 100644 --- a/texinfo/udav_en.texi +++ b/texinfo/udav_en.texi @@ -57,7 +57,7 @@ There are a set of dialogs, which allow change/add a command, setup global plot @ufig{udav_cmd,8, New command dialog} -One of most interesting dialog (hotkey @key{Meta-C} or @key{Win-C}) is dialog which help to enter new command or change arguments of existed one. It allows consequently select the category of command, command name in category and appropriate set of command arguments. At this right side show detailed command description. Required argument(s) are denoted by bold text. Strings are placed in apostrophes, like @code{'txt'}. Buttons below table allow to call dialogs for changing style of command (if argument @code{'fmt'} is present in the list of command arguments); to set variable or expression for argument(s); to add options for command. Note, you can click on a cell to enter value, or double-click to call corresponding dialog. +One of most interesting dialog (hotkey @key{Meta-C} or @key{Win-C}) is dialog which help to enter new command or change arguments of existed one. It allows consequently select the category of command, command name in category and appropriate set of command arguments. At this right side show detailed command description. Required argument(s) are denoted by bold text. Strings are placed in apostrophes, like @code{'txt'}. Buttons below table allow one to call dialogs for changing style of command (if argument @code{'fmt'} is present in the list of command arguments); to set variable or expression for argument(s); to add options for command. Note, you can click on a cell to enter value, or double-click to call corresponding dialog. @ufig{udav_pen,5, Style dialog - pen style} @ufig{udav_sch,5, Style dialog - color scheme} @@ -68,11 +68,11 @@ Dialog for changing style can be called independently, but usually is called fro @ufig{udav_var,3, Variable dialog} -Dialog for entering variable allow to select variable or expression which can be used as argument of a command. Here you can select the variable name; range of indexes in each directions; operation which will be applied (like, summation, finding minimal/maximal values and so on). Usually it can be called from New command dialog. +Dialog for entering variable allow one to select variable or expression which can be used as argument of a command. Here you can select the variable name; range of indexes in each directions; operation which will be applied (like, summation, finding minimal/maximal values and so on). Usually it can be called from New command dialog. @ufig{udav_opt,7.5, Dialog for options of a command} -Dialog for command options allow to change @ref{Command options}. Usually it can be called from New command dialog. +Dialog for command options allow one to change @ref{Command options}. Usually it can be called from New command dialog. @@ -92,7 +92,7 @@ Also you can set or change script parameters (@samp{$0} ... @samp{$9}, see @ref{ @ufig{udav_prop,5, Dialog for UDAV settings} -Finally, there is dialog for UDAV settings. It allow to change most of things in UDAV appearance and working, including colors of keywords and numbers, default font and image size, and so on (see figure above). +Finally, there is dialog for UDAV settings. It allow one to change most of things in UDAV appearance and working, including colors of keywords and numbers, default font and image size, and so on (see figure above). There are also a set of dialogs for data handling, but they are too simple and clear. So, I will not put them here. diff --git a/texinfo/udav_ru.texi b/texinfo/udav_ru.texi index 74621d9..ccc77f8 100644 --- a/texinfo/udav_ru.texi +++ b/texinfo/udav_ru.texi @@ -57,7 +57,7 @@ There are a set of dialogs, which allow change/add a command, setup global plot @ufig{udav_cmd,8, New command dialog} -One of most interesting dialog (hotkey @key{Meta-C} or @key{Win-C}) is dialog which help to enter new command or change arguments of existed one. It allows consequently select the category of command, command name in category and appropriate set of command arguments. At this right side show detailed command description. Required argument(s) are denoted by bold text. Strings are placed in apostrophes, like @code{'txt'}. Buttons below table allow to call dialogs for changing style of command (if argument @code{'fmt'} is present in the list of command arguments); to set variable or expression for argument(s); to add options for command. Note, you can click on a cell to enter value, or double-click to call corresponding dialog. +One of most interesting dialog (hotkey @key{Meta-C} or @key{Win-C}) is dialog which help to enter new command or change arguments of existed one. It allows consequently select the category of command, command name in category and appropriate set of command arguments. At this right side show detailed command description. Required argument(s) are denoted by bold text. Strings are placed in apostrophes, like @code{'txt'}. Buttons below table allow one to call dialogs for changing style of command (if argument @code{'fmt'} is present in the list of command arguments); to set variable or expression for argument(s); to add options for command. Note, you can click on a cell to enter value, or double-click to call corresponding dialog. @ufig{udav_pen,5, Style dialog - pen style} @ufig{udav_sch,5, Style dialog - color scheme} @@ -68,11 +68,11 @@ Dialog for changing style can be called independently, but usually is called fro @ufig{udav_var,3, Variable dialog} -Dialog for entering variable allow to select variable or expression which can be used as argument of a command. Here you can select the variable name; range of indexes in each directions; operation which will be applied (like, summation, finding minimal/maximal values and so on). Usually it can be called from New command dialog. +Dialog for entering variable allow one to select variable or expression which can be used as argument of a command. Here you can select the variable name; range of indexes in each directions; operation which will be applied (like, summation, finding minimal/maximal values and so on). Usually it can be called from New command dialog. @ufig{udav_opt,7.5, Dialog for options of a command} -Dialog for command options allow to change @ref{Command options}. Usually it can be called from New command dialog. +Dialog for command options allow one to change @ref{Command options}. Usually it can be called from New command dialog. @@ -92,7 +92,7 @@ Also you can set or change script parameters (@samp{$0} ... @samp{$9}, see @ref{ @ufig{udav_prop,5, Dialog for UDAV settings} -Finally, there is dialog for UDAV settings. It allow to change most of things in UDAV appearance and working, including colors of keywords and numbers, default font and image size, and so on (see figure above). +Finally, there is dialog for UDAV settings. It allow one to change most of things in UDAV appearance and working, including colors of keywords and numbers, default font and image size, and so on (see figure above). There are also a set of dialogs for data handling, but they are too simple and clear. So, I will not put them here. diff --git a/texinfo/web_en.texi b/texinfo/web_en.texi index 2295e31..dc3c8f7 100644 --- a/texinfo/web_en.texi +++ b/texinfo/web_en.texi @@ -53,6 +53,9 @@ Generally, MathGL is GPL library. However, you can use LGPL license for MathGL c @strong{Latest news} @itemize +@item @strong{12 January 2022} +New version (v.8.0.1) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are increase accuracy at line segment skipping, changes in SOVERSION numbering, minor spelling fix (thanks to Rafael Laboissière). + @item @strong{1 January 2022.} New version (v.8.0) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are change version numbering according Debian rules, and add accurate line segment and quadrangle/triangle face cutting at axis border crossing. @@ -83,6 +86,14 @@ Javascript interface was developed with support of @url{http://www.datadvance.ne @itemize +@item @strong{12 January 2022} +New version (v.8.0.1) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. +@itemize @bullet +@item Increase accuracy at line segment skipping. +@item Changes in SOVERSION numbering. +@item Minor spelling fix (thanks to Rafael Laboissière). +@end itemize + @item @strong{1 January 2022} New version (v.8.0) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. @itemize @bullet @@ -365,12 +376,12 @@ You may download current version of MathGL for following configurations: @itemize @bullet @item @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.tar.gz, Source} file with cmake build system. -@c@item -@c @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}-mingw.win32.7z,GPL} or @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.LGPL-mingw.win32.7z,LGPL} binaries for MinGW, 32-bit build for Pentium IV. +@item +@uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}-mingw.win32.7z,GPL} or @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.LGPL-mingw.win32.7z,LGPL} binaries for MinGW, 32-bit build for Pentium IV. @item @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}-mingw.win64.7z,GPL} or @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.LGPL-mingw.win64.7z,LGPL} binaries for MinGW, 64-bit build. @item -@c MathGL utilities with all required DLL files for @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win32.7z,32-bit} and @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win64.7z,64-bit} versions of MS Windows. +MathGL utilities with all required DLL files for @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win32.7z,32-bit} and @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win64.7z,64-bit} versions of MS Windows. MathGL utilities with all required DLL files for @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win64.7z,64-bit} versions of MS Windows. @item @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.eng.pdf,PDF} documentation in English. diff --git a/texinfo/web_fr.texi b/texinfo/web_fr.texi index a0829e7..99ab33f 100644 --- a/texinfo/web_fr.texi +++ b/texinfo/web_fr.texi @@ -463,7 +463,7 @@ There are samples for @ref{1D plotting, 1D arrays}, @ref{2D plotting, 2D arrays} MGL script language is rather simple. Each string is a command. First word of string is the name of command. Other words are command arguments. Command may have up to 1000 arguments (at least for now). Words are separated from each other by space or tabulation symbol. The upper or lower case of words is important, i.e. variables @var{a} and @var{A} are different variables. Symbol @samp{#} starts the comment (all characters after # will be ignored). The exception is situation when @samp{#} is a part of some string. Also options can be specified after symbol @samp{;}. Symbol @samp{:} starts new command (like new line character) if it is not placed inside a string or inside brackets. -If string contain references to external parameters (substrings @samp{$0}, @samp{$1} ... @samp{$9}) or definitions (substrings @samp{$a}, @samp{$b} ... @samp{$z}) then before execution the values of parameter/definition will be substituted instead of reference. It allows to use the same MGL script for different parameters (file names, paths, condition and so on). +If string contain references to external parameters (substrings @samp{$0}, @samp{$1} ... @samp{$9}) or definitions (substrings @samp{$a}, @samp{$b} ... @samp{$z}) then before execution the values of parameter/definition will be substituted instead of reference. It allows one to use the same MGL script for different parameters (file names, paths, condition and so on). Argument can be a string, a variable (data arrays) or a number (scalars). @itemize @bullet diff --git a/texinfo/web_ru.texi b/texinfo/web_ru.texi index a6fcef3..059649b 100644 --- a/texinfo/web_ru.texi +++ b/texinfo/web_ru.texi @@ -53,6 +53,9 @@ Generally, MathGL is GPL library. However, you can use LGPL license for MathGL c @strong{Latest news} @itemize +@item @strong{12 January 2022} +New version (v.8.0.1) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are increase accuracy at line segment skipping, changes in SOVERSION numbering, minor spelling fix (thanks to Rafael Laboissière). + @item @strong{1 January 2022.} New version (v.8.0) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. There are change version numbering according Debian rules, and add accurate line segment and quadrangle/triangle face cutting at axis border crossing. @@ -83,6 +86,14 @@ Javascript interface was developed with support of @url{http://www.datadvance.ne @itemize +@item @strong{12 January 2022} +New version (v.8.0.1) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. +@itemize @bullet +@item Increase accuracy at line segment skipping. +@item Changes in SOVERSION numbering. +@item Minor spelling fix (thanks to Rafael Laboissière). +@end itemize + @item @strong{1 January 2022} New version (v.8.0) of @uref{http://sourceforge.net/projects/mathgl, MathGL} is released. @itemize @bullet @@ -364,12 +375,12 @@ You may download current version of MathGL for following configurations: @itemize @bullet @item @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.tar.gz, Source} file with cmake build system. -@c @item -@c @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}-mingw.win32.7z,GPL} or @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.LGPL-mingw.win32.7z,LGPL} binaries for MinGW, 32-bit build for Pentium IV. +@item +@uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}-mingw.win32.7z,GPL} or @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.LGPL-mingw.win32.7z,LGPL} binaries for MinGW, 32-bit build for Pentium IV. @item @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}-mingw.win64.7z,GPL} or @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.LGPL-mingw.win64.7z,LGPL} binaries for MinGW, 64-bit build. @item -@c MathGL utilities with all required DLL files for @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win32.7z,32-bit} and @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win64.7z,64-bit} versions of MS Windows. +MathGL utilities with all required DLL files for @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win32.7z,32-bit} and @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win64.7z,64-bit} versions of MS Windows. MathGL utilities with all required DLL files for @uref{http://downloads.sourceforge.net/mathgl/mgl_scripts-@value{VERSION}.win64.7z,64-bit} versions of MS Windows. @item @uref{http://downloads.sourceforge.net/mathgl/mathgl-@value{VERSION}@value{MINVER}.eng.pdf,PDF} documentation in English. diff --git a/todo.txt b/todo.txt index c24e766..6ee1ba3 100644 --- a/todo.txt +++ b/todo.txt @@ -51,6 +51,7 @@ 12. Triangulation in 3d + rewrite crust (test 2d version too). See https://en.wikipedia.org/wiki/Bowyer%E2%80%93Watson_algorithm 13. Algorithm of combining primitives with the same color to the larger one. +14. Add mgl_setup_paths(MGL_FONT_PATH, MGL_INSTALL_DIR) for replacing default paths 16. Add mgl_set_font_hscale() to MGL 22. Add "map res 'eqs' 'vars' ini ['how' A B C [D E]]" -- like "ode" but just simple mapping + progonka. diff --git a/udav/udav_wnd.cpp b/udav/udav_wnd.cpp index 03271b5..2cb4f33 100644 --- a/udav/udav_wnd.cpp +++ b/udav/udav_wnd.cpp @@ -195,7 +195,7 @@ MainWindow::MainWindow(QWidget *wp) : QMainWindow(wp) aload = a = new QAction(QPixmap(":/png/document-open.png"), _("Open file"), this); connect(a, SIGNAL(triggered()), this, SLOT(choose())); - a->setToolTip(_("Open and execute/show script or data from file (Ctrl+O).\nYou may switch off automatic exection in UDAV properties.")); + a->setToolTip(_("Open and execute/show script or data from file (Ctrl+O).\nYou may switch off automatic execution in UDAV properties.")); a->setShortcut(Qt::CTRL+Qt::Key_O); asave = a = new QAction(QPixmap(":/png/document-save.png"), _("Save script"), this); -- 2.30.2