'fx' 'fy' 'fz' ['fa'=''] ¶mglGraph: void SetFunc (const char *EqX, const char *EqY, const char *EqZ="", const char *EqA="") ¶void mgl_set_func (HMGL gr, const char *EqX, const char *EqY, const char *EqZ, const char *EqA) ¶Sets transformation formulas for curvilinear coordinate. Each string should contain mathematical expression for real coordinate depending on internal coordinates ‘x’, ‘y’, ‘z’ and ‘a’ or ‘c’ for colorbar. For example, the cylindrical coordinates are introduced as SetFunc("x*cos(y)", "x*sin(y)", "z");. For removing of formulas the corresponding parameter should be empty or NULL. Using transformation formulas will slightly slowing the program. Parameter EqA set the similar transformation formula for color scheme. See Textual formulas.
how ¶mglGraph: void SetCoor (int how) ¶void mgl_set_coor (HMGL gr, int how) ¶Sets one of the predefined transformation formulas for curvilinear coordinate. Parameter how define the coordinates:
mglCartesian=0Cartesian coordinates (no transformation, {x,y,z});
mglPolar=1Polar coordinates: {x*cos(y), x*sin(y), z};
mglSpherical=2Sperical coordinates: {x*sin(y)*cos(z), x*sin(y)*sin(z), x*cos(y)};
mglParabolic=3Parabolic coordinates: {x*y, (x*x-y*y)/2, z}
mglParaboloidal=4Paraboloidal coordinates: {(x*x-y*y)*cos(z)/2, (x*x-y*y)*sin(z)/2, x*y};
mglOblate=5Oblate coordinates: {cosh(x)*cos(y)*cos(z), cosh(x)*cos(y)*sin(z), sinh(x)*sin(y)};
mglProlate=6Prolate coordinates: {sinh(x)*sin(y)*cos(z), sinh(x)*sin(y)*sin(z), cosh(x)*cos(y)};
mglElliptic=7Elliptic coordinates: {cosh(x)*cos(y), sinh(x)*sin(y), z};
mglToroidal=8Toroidal coordinates: {sinh(x)*cos(z)/(cosh(x)-cos(y)), sinh(x)*sin(z)/(cosh(x)-cos(y)), sin(y)/(cosh(x)-cos(y))};
mglBispherical=9Bispherical coordinates: {sin(y)*cos(z)/(cosh(x)-cos(y)), sin(y)*sin(z)/(cosh(x)-cos(y)), sinh(x)/(cosh(x)-cos(y))};
mglBipolar=10Bipolar coordinates: {sinh(x)/(cosh(x)-cos(y)), sin(y)/(cosh(x)-cos(y)), z};
mglLogLog=11Log-log coordinates: {lg(x), lg(y), lg(z)};
mglLogX=12Log-x coordinates: {lg(x), y, z};
mglLogY=13Log-y coordinates: {x, lg(y), z}.
val ¶mglGraph: void Ternary (int tern) ¶void mgl_set_ternary (HMGL gr, int tern) ¶The function sets to draws Ternary (tern=1), Quaternary (tern=2) plot or projections (tern=4,5,6).
Ternary plot is special plot for 3 dependent coordinates (components) a, b, c so that a+b+c=1. MathGL uses only 2 independent coordinates a=x and b=y since it is enough to plot everything. At this third coordinate z act as another parameter to produce contour lines, surfaces and so on.
Correspondingly, Quaternary plot is plot for 4 dependent coordinates a, b, c and d so that a+b+c+d=1. MathGL uses only 3 independent coordinates a=x, b=y and d=z since it is enough to plot everything.
Projections can be obtained by adding value 4 to tern argument. So, that tern=4 will draw projections in Cartesian coordinates, tern=5 will draw projections in Ternary coordinates, tern=6 will draw projections in Quaternary coordinates. If you add 8 instead of 4 then all text labels will not be printed on projections.
Use Ternary(0) for returning to usual axis. See Ternary axis, for sample code and picture. See Axis projection, for sample code and picture.