Next: , Previous: , Up: Axis settings   [Contents][Index]


5.3.2 Криволинейные координаты

Команда MGL: axis '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)

Задает формулы перехода к криволинейным координатам. Каждая строка является математическим выражением, зависящим от старых координат ‘x’, ‘y’, ‘z’ и ‘a’ или ‘c’ для цветовой шкалы. Например, для цилиндрических координат будет SetFunc("x*cos(y)", "x*sin(y)", "z");. Для удаления формул соответствующий параметр должен быть пустым или NULL. Использование формул преобразования слегка замедляет программу. Параметр EqA задает аналогичную формулу для цветовой шкалы. See Textual formulas.

Команда MGL: axis how
Метод класса mglGraph: void SetCoor (int how)
Функция С: void mgl_set_coor (HMGL gr, int how)

Устанавливает одну из предопределенных систем криволинейных координат в зависимости от параметра how: mglCartesian=0 – декартова система (нет преобразования координат, наиболее быстрая); mglPolar=1 – полярные координаты x_n=x*cos(y),y_n=x*sin(y), z_n=z; mglSpherical=2 – сферические координаты x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y); mglParabolic=3 – параболические координаты x_n=x*y, y_n=(x*x-y*y)/2, z_n=z; mglParaboloidal=4 – Paraboloidal coordinates x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y; mglOblate=5 – Oblate coordinates x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y); mglProlate=6 – Prolate coordinates x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y); mglElliptic=7 – эллиптические координаты x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z; mglToroidal=8 – тороидальные координаты x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y)); mglBispherical=9 – бисферические координаты x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y)); mglBipolar=10 – биполярные координаты x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z; mglLogLog=11 – log-log координаты x_n=lg(x), y_n=lg(y), z_n=lg(z); mglLogX=12 – log-x координаты x_n=lg(x), y_n=y, z_n=z; mglLogY=13 – log-y координаты x_n=x, y_n=lg(y), z_n=z.

Команда MGL: ternary val
Метод класса mglGraph: void Ternary (int tern)
Функция С: void mgl_set_ternary (HMGL gr, int tern)

Задает рисование треугольных (Ternary, tern=1), пирамидальных (Quaternary, tern=2) осей координат и проекций осей координат (tern=4,5,6).

Ternary – специальный тип графика для 3 зависимых координат (компонент) a, b, c таких, что a+b+c=1. MathGL использует только 2 независимые координаты a=x и b=y поскольку их достаточно для построения всех графиков. При этом третья координата z является независимым параметром для построения линий уровня, поверхностей и т.д.

Соответственно Quaternary координаты – 4 зависимые координаты a, b, c и d, такие что a+b+c+d=1. MathGL использует только 2 независимые координаты a=x, b=y и d=z поскольку их достаточно для построения всех графиков.

Проекции строятся если к переменной tern добавить число 4. Так что tern=4 нарисует проекции в декартовых координатах, tern=5 нарисует проекции в треугольных координатах, tern=6 нарисует проекции в пирамидальных координатах. Если добавить 8 вместо 4, то текст не будет выводиться на проекциях.

Используйте Ternary(0) для возвращения к привычным координатам. См. раздел Ternary axis, для примеров кода и графика. См. раздел Axis projection, для примеров кода и графика.





Next: , Previous: , Up: Axis settings   [Contents][Index]