MathGL

A library for scientific graphics.
Download

MathGL Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • Alexey Kakunin
  • Publisher web site:

MathGL Tags


MathGL Description

A library for scientific graphics. MathGL is a library for scientific graphics.MathGL is ...· a library for making high-quality scientific graphics under Linux and Windows;· a library for the fast data plotting and handling of large data arrays;· a library for working in window and console modes and for easy embedding into other programs;· a library with large and growing set of graphics.Developer commentsI tried to make plots as well-looking as possible: surface can be transparent and highlighted by several (up to 10) light sources. Most of drawing functions have 2 variants: simple one for the fast plotting of data, complex one for specifying of the exact position of plot (including parametric representation). Resulting image can be saved in bitmap (PNG, JPEG, TIFF) format or in vector EPS or SVG format.All text are drawn by vector font, that allows high scalability and portability. Text may contain commands for: some of TeX-like symbols, changing index (upper or lower indexes) and style of font inside text string. Texts of ticks are rotated with axis rotation. It is possible to create a legend of plot and put text in arbitrary position of plot.Special class mglData is used for data incapsulation. Except safe creation and deleting of data arrays it includes functions for data processing (smoothing, differentiating, integrating, interpolating and so on) and reading of data files with automatic size determination. Class mglData can handle arrays with up to three dimensions (arrays which depend up to 3 independent indexes aijk). Using an array with higher number of dimensions is not reasonable because I do not know how it can be plotted. Data filling and modifying may be fulfilled manually or by textual formulas.Class mglFormula allows the fast evaluation of a textual mathematical expression. It is based on string precompilation to tree-like code at creation of class instance. At evaluation stage code performs only fast tree-walk and returns the value of the expression. Except changing data array values, textual formulas are used for drawing in arbitrary curvilinear coordinates. So, a set of such curvilinear coordinates is limited only by user imagination but not a fixed list like polar, parabolic, spherical and so on. Here are some key features of "MathGL": · one-dimensional plots: regular curve plot Plot(), curve with filling Area(), vertical boxes Bars(), stairs Step(), vertical lines Stem(), surface of curve rotation Torus(), charts Chart(), error boxes Error(), tubes Tube(), variable size marks Mark(), text along curve Text(); · two-dimensional plots: mesh surface Mesh(), solid surface Surf(), density plot Dens(), contour lines Cont(), filled contours ContF(), surface of boxes Boxs(), surface of contour lines rotation Axial(), waterfall-like Fall(), surface of belt Belt(), surface of horizontal tiles Tile(); · three-dimensional plots: density plot on slices Dens3(), contour lines on slices Cont3(), filled contours on slices ContF3(), isosurface Surf3(), cloud-like CloudQ() or CloudP(); · dual data plots: vector fields Vect(), VectC() and Dew(), flow threads Flow() and pipes Pipe(), mapping chart Map(), surfaces and isosurfaces transpared or colored by other data SurfA(), SurfC(), Surf3A(), Surf3C(). What's New in This Release: · Improve export in EPS and SVG: lines are exported as single object, improve line dashing, text is exported by glyphs now. · Write new MGL parser which can handle arbitrary expression as argument for data and/or number. · Function mglGraph*::Window() now can handle NULL-pointer as function (draw built-in bitmap only). The window can be created from Fortran programs too. · Add new plot Traj() for drawing vectors along the curve. · Add new plot ContD() for drawing solid contours with manual colors (useful for phase diagrams). · Add new plot Radar() for drawing radar chart. · Add new plot Flow(mglPoint p, ...) for drawing the flow thread from a point. · Functions mglGraph::Vect() now have additional argument for kind of vector plot. Correspondingly mgl_vect_*() functions now have additional argument too! · Add function mglGraph::Axis() for predefined curvilinear coordinates. · Add function mglData::SubData() for indirect access to the data elements. · Add function mglData::Trace() for getting diagonal elements. · Add function for manual setting of ticks/subticks line style. · Now you can set colors for multiple curves (palette) directly in function style, i.e. like gr->Plot(y,"rgb;"). · Improve ticks drawing if RotatedText = false; · NOTE! Hide TickLen variable and change it to SetTickLen() function. Also add additional argument to mgl_set_tick_len() function. · You can now select base type for floating point numbers (double or float). · Legend now is drawn flat (without any rotation). · Function mglData::Sew() now handle NAN values correctly. · Add MGL command types for further UDAV developping. · Line width now don't influence on text printing. · Bug correction in marker drawing for EPS, SVG. · Bug with not always defined mglGraph::id. · Bug correction in configure (older compiler support, wrong glut.h demand). · Bug in lang/CMakeLists.txt (for making Python interface). · Better support for isnan() function on different compilers.


MathGL Related Software