MathGL – library for scientific graphics


Main

News

Features

MGL scripts

Pictures

FAQ

Download

Documentation

Contact

Other projects

SourceForge.net Logo thefreecountry.com: Free Programmers' Resources, Free Webmasters' Resources, Free Security Resources, Free Software
Last news concerning MathGL:
  • 25 November 2008. New version of MathGL will be released. Most interesting: Python and Octave interface, new types of graphics (Barh and Region), Qt interface, new data hadling functions, new features in color scheme and in legend drawing, other improvements are added.
    All these features are availible in SVN.
    Changes for v. 1.8
    • Create Python and Octave interfaces using SWIG. Generally interfaces for a set of languages (Java, Lisp, Perl, PHP, Tcl, R, Ruby, Modula3, C# and other SWIG supported) can be simply created by the same way.
    • MathGL documentation is completely rewritten for v.1.8. Now it is based on TeXinfo files and allows one to compile it in HTML, PDF and other formats. Also the structure of sections is sufficiently updated. New sections for Python, MGL and Samples are written.
    • Add Qt interface:
      • New class QMathGL is added. This is the Qt widget for drawing MathGL graphics.
      • New class mglGraphQt is added for creating Qt window with MathGL plotting.
    • Add functions to make FLTK, QT and GLUT windows from Fortran programs.
    • Add new plot Barh() for horizontal bars.
    • Add new plot Region() for filling the area between 2 curves.
    • Add new plot Vect() for vector field by arrows which color and length depend on amplitude. At this old function Vect() (for vector field by hachures) was renamed to VectL().
    • Add Plot(), Surf() functions for plotting a curve or a surface specified by textual formula.
    • Add new functions for data handling:
      • Envelop() for finding data envelop;
      • Sew() for sewing data (removing phase jumps);
      • Evaluate() for producing array interpolated by coordinates from other array(s);
      • Put() for setting a value (number or array) for range of data.
      • Fill() for filling by formula with coordinates x,y,z in specified range.
      • mglPDE() for solving PDE in more or less general case.
      • mglRay() for ray tracing (for finding trajectory in 3D space).
      • mglQO2d() for beam tracing in 2D case (PDE solving in accompanied coordinates).
      • mglJacobian() for evaluating Jacobian of coordinates transformation.
    • Add new function ShowImage() for displaying the current picture.
    • Color scheme will disable interpolation (color smoothing) if its style contain '|' symbol.
    • Color inside string can be changed by TeX-like commands \color? or #? where ? is color id.
    • Function Bars() now draw boounding box of the rectangle if its style contain '#' symbol.
    • Function Chart() will not draw a peace if its color specification is ' '.
    • Add argument for line length in Legend().
    • Legend entry with empty style (i.e. "" but not NULL) is printed without indent.
    • Default mglGraph::Org value now is mglPoint(NAN,NAN,NAN). I.e. MathGL library try to select optimal axis origin position by default.
    • Add some utility functions:
      • Title() for printing the title of the plot;
      • SetPalette() for simplifing palette setting;
      • SetTicks() for setting the ticks easely;
      • SetTicksVal() for setting the manual ticks (at arbitrary positions and with arbitrary labels);
      • Ellipse() for drawing ellipsoid;
      • Restore() for restoring transformation matrix after last InPlot().
    • Information about mouse click position is shown in widgets (if ShowMousePos=true).
    • Clean up C/Fortran interface: replace 'bool' to 'int' in C interface; add a lot of new interface functions; change the order of arguments in mgl_data_set_value(); rename functions mgl_tile_r*() to mgl_tiles*()
    • Add MGL commands 'fplot', 'fsurf', 'fgets', 'export', 'import', 'write', 'region', 'title', 'sew', 'envelop', 'evaluate', 'put', 'pde', 'ray', 'qo2d', 'jacobian'.
    • Extend MGL commands 'info', 'fill', 'copy'.
    • Add const modifiers everywhere.
    • Move declaration of window functions in mglGraphAB (as base class).
    • Class mglFormula and functions for data extraction (like SubData, Hist and so on) now are thread safe.
    • Allow mglData::Resize() to have size=1.
    • Function STFA() now normalize array on dn (for amplitude independency on value of dn).
    • Variable mglGraph::TickStr is removed. Use mglGraph::SetTicksVal() instead.
    • Function mglGraph::WriteTIFF() is removed.
    • Bug with wrong normales at points on bounding box in Surf3*() is corrected.
    • Bug with non-visible marks into the legend is corrected.
    • Bug of not-drawn quads with the same vertexes is corrected.
    • Bug with "inverted" colors in WriteBMP() is corrected.
    • Some other minor bugs are corrected.
  • 1 June 2008. New version of MathGL is released. Most interesting: MGL parser is sufficiently rewritten, converter MGL->C++, import to IDTF (and later to U3D) format, nonlinear fitting and other minor improvements are added.
    Changes for v. 1.7
    • MGL parser is sufficiently rewritten :
      • User now can define its own MGL command (by changing mglParse::Cmd).
      • Export MGL script to C++ file for the most of commands (except 'list', 'delete', 'call', 'for|next') is possible.
      • New tool 'mgl2cpp' is added for exporting MGL script to C++ file.
      • Uniform interface for tools: mgl2png, mgl2eps, mgl2svg, mglview.
      • New command: 'define $N sth'.
      • New conditional commands: 'if|else|elseif|endif'.
      • New for-cycle commands: 'for|next'. Format is: 'for $N var' or 'for $N x1 x2 [dx]'.
      • Command [xyz]tick now has additional argument for the start position of ticks.
      • A set of MGL commands is extended by adding the new ones: 'mirror', 'face[xyz]', 'perspective', 'fit', 'fits', 'normsl', 'momentum', 'putsfit', 'rearrange', 'arrowsize', '[xyz]label', 'ctick'.
      • Unicode support in scripts.
      • Commands 'cont3' and 'contf3' now have variants for manual setting of contour level values.
    • New class mglGraphIDTF is added for exporting graphics in IDTF format (which can be converted later to U3D pictures for inserting in PDF).
    • New functions mglGraph::Fit[23S]() are added for nonlinear fitting of data arrays.
    • New function mglGraph::PutsFit() is added for printing the fitted formula.
    • Color specification in color scheme (not in line style!) now support "brighted" colors like "b1b2b3...b9". At this, color "b5" is equal to "b". Also, function mglColor::Set now has additional argument for "brightness" of the color.
    • Color scheme now may contain up to 32 colors.
    • New variable mglGraph::OrgT is added for manual setting of tick position (if OrgT.[xyz]!=NAN).
    • Improved algorithm for automatic axis positioning (if Org.[xyz]==NAN).
    • Function SubPlot() and MGL command 'subplot' now have arguments for additional relative plot shifting.
    • Class mglGraphGL is derived now from mglGraphAB. It slightly decreases its speed but produce more similar plots.
    • New function mglData::Mirror() is added for mirroring data in some direction(s).
    • New function mglData::Rearrange() is added for rearrange data dimensions.
    • Tool 'mglview' now does not display info/error message about availible command-line arguments.
    • Centered label now are drawn at sqrt(Min*Max) if dx (or dy, dz correspondingly) is zero.
    • New functions FaceX(), FaceY(), FaceZ() are added as simplified interface to Face() function.
    • New function mglData::NormSl() for data normalization slice by slice is added.
    • New function mglData::Momentum() for getting an array of data momentums along some direction is created.
    • New functions mglData::Insert*(), mglData::Delete*() are added for inserting/deleting slices in data arrays.
    • New function mglFormula::CalcD() is added for evaluating the formula derivate over some variable.
    • Bounding box now is drawn along isolines in curvilinear coordinates.
    • Bug/feature with legend option with included "'" is corrected.
    • Bug for partly ommitted points with NAN values returned by transformation formulas are corrected.
    • Bug with momentum evaluation along x-direction is corrected.
    • Bug with mglData::Squeeze() is corrected.
    • Extend a set of C/Fortran functions.
  • 11 May 2008. New unstable version of the library.
  • 18 April 2008. Add example of TeX parsing and add table for drawing time for different kind of plots (also change FAQ).
  • 5 April 2008. Upload RPM files for v.1.6.2.
  • 4 April 2008. Update MGL documentation and MGL examples. Add pages for new plots: Tile and TextMark.
  • 4 April 2008. New version of MathGL is released. Most interesting: add TeX commands (\frac, \overset, \underset, \stack, ...) and fix some bugs.
  • 3 April 2008. New version of MathGL is released. Most interesting: named data columns, new (STFA, TextMark) and extended (Tile, Bars) plots, many other improvements.
  • 18 March 2008. Update SVN: new plots STFA and Tile with variable size; new functions mglData::ReadMat(), mglFont::Copy(), mgl_data_read_mat(), mgl_set_font(); bug correction with ctt; improvements in Window() functions and TeX symbol parsing; color ids can be changed by user now; add "smoothing" for edges of cutted surfaces.
  • 13 March 2008. New version of MathGL is released. Most interesting: Unicode fonts with arbitrary fontfaces, improvement in TeX parsing, FLTK window, reorganization of the library structure.
  • 10 March 2008. Update Contacts and add counter for page statistic.
  • 8 January 2008. New version of MathGL is released. Most interesting: waking up OpenGL, arbitrary ticks labels, new types of plots and so on.
  • 8 January 2008. Web site is updated: new section Nightly build is added for latest changes and for further plans; section Pictures is divided by several parts for speeding up; new plots and examples are added.
  • 24 December 2007. New version of MathGL (v.1.4.3.1) is released. It correct some bugs of v.1.4.3.
  • 24 December 2007. Update Pictures page by adding examples of log-log and semi-log plots, mirrored surface and surface by boxes
  • 18 December 2007. New version of MathGL (v.1.4.3) is released. Most interesting: Fortran interface, Fog imitation and Ternary plot.
  • 17 December 2007. Update pictures page by including the C++/MGL/C/Fortran code examples for most of pictures.
  • 3 December 2007. Update download section: include link to Debian/Ubuntu packages for most of platforms.
  • 26 November 2007. New version of MathGL (v.1.4.2) is released. Most interesting: the speeding up of the drawing and some new features in MGL scripts (for UDAV mostly).
  • 14 November 2007. New version of MathGL (v.1.4.1) is released. Most interesting things are: line and text smoothing, 64-bit compatibility and improvement in MGL scripts.
  • 12 November 2007. New unstable version of the library: line and text smooting (full list of changes here).
  • 30 October 2007. New version of MathGL (v.1.4) is released. Most interesting thing are: SVG export, new graphics types and improvement in MGL scripts.
  • 16 October 2007. Debian packages for AMD64 are added in download page. Formal version number is 1.3.1 but it is built exactly from v.1.3 source files.
  • 15 October 2007. Change download page by adding unstable sources section. Current changes of unstable version is here.
  • 9 October 2007. Add FAQ section.
  • 8 October 2007. New version of MathGL (v.1.3) is released. Most interesting thing is support of MGL scripts.
  • 8 October 2007. First version of web site is created