From 9f6ca8a5f8dbd11efebc405e134c51952825857f Mon Sep 17 00:00:00 2001 From: Dimitrios Eftaxiopoulos Date: Sun, 26 Feb 2012 13:10:53 +0200 Subject: [PATCH] Add gawk to build depends --- debian/control | 4 +- debian/source/options | 2 +- texinfo/mgl_ru.info-1 | 4526 +++++++++++++++++++++++++---------------- texinfo/mgl_ru.info-2 | Bin 54027 -> 54959 bytes 4 files changed, 2803 insertions(+), 1729 deletions(-) diff --git a/debian/control b/debian/control index 8361ceb..bead61e 100644 --- a/debian/control +++ b/debian/control @@ -5,8 +5,8 @@ Maintainer: Debian Science Maintainers , D Haley DM-Upload-Allowed: yes Build-Depends: debhelper (>= 7.2.3~), libltdl-dev, libgsl0-dev, freeglut3-dev, - libgl1-mesa-dev | libgl-dev, libpng-dev, libhdf5-dev, - libjpeg-dev, libtiff-dev, libfltk1.3-dev | libfltk-dev, libqt4-dev, libwxgtk2.8-dev, swig, + libgl1-mesa-dev | libgl-dev, libpng-dev, libhdf5-dev, gawk, swig, + libjpeg-dev, libtiff-dev, libfltk1.3-dev | libfltk-dev, libqt4-dev, libwxgtk2.8-dev, texinfo, texi2html, texlive, texlive-generic-recommended, octave3.2-headers, libgif-dev, autoconf, automake, python, python-dev, python-numpy, python-support, libhdf4-dev, chrpath diff --git a/debian/source/options b/debian/source/options index 633e446..07421a3 100644 --- a/debian/source/options +++ b/debian/source/options @@ -1 +1 @@ - extend-diff-ignore = "(^|/)(config\.log)$" \ No newline at end of file + extend-diff-ignore = "(^|/)(config\.log|texinfo/mgl_ru\.info-1|texinfo/mgl_ru\.info-2)$" \ No newline at end of file diff --git a/texinfo/mgl_ru.info-1 b/texinfo/mgl_ru.info-1 index 15034fc..e80adfa 100644 --- a/texinfo/mgl_ru.info-1 +++ b/texinfo/mgl_ru.info-1 @@ -1,8 +1,10 @@ This is mgl_ru.info, produced by makeinfo version 4.13 from mgl_ru.texi. -Это документация для MathGL (версии 1.11) - библиотеки классов и -функций для построения научной графики. Пожалуйста сообщайте о любых -ошибках в этом руководстве на . +Это документация для MathGL (версии 1.11) - +библиотеки классов и функций для +построения научной графики. +Пожалуйста сообщайте о любых ошибках в +этом руководстве на . Copyright (C) 2009 Алексей Балакин. @@ -29,10 +31,13 @@ File: mgl_ru.info, Node: Top, Next: MGL interface, Up: (dir) Язык MGL ************ -Это документация для языка MGL (версии 1.11). Пожалуйста сообщайте о -любых ошибках в этом руководстве на . -Дополнительную информацию о MGL и MathGL можно найти на домашней -странице проекта `http://mathgl.sourceforge.net/'. +Это документация для языка MGL (версии +1.11). Пожалуйста сообщайте о любых +ошибках в этом руководстве на +. Дополнительную +информацию о MGL и MathGL можно найти на +домашней странице проекта +`http://mathgl.sourceforge.net/'. Copyright (C) 2010 Алексей Балакин. @@ -62,97 +67,156 @@ File: mgl_ru.info, Node: MGL interface, Next: Examples, Up: Top 1 Язык MGL ************** -MathGL имеет встроенный скриптовый язык MGL для обработки и отображения -данных. Скрипты MGL можно использовать как независимо (программами -UDAV, mgl2png, mgl2eps, mgl2svg и пр., *note Utilities::) так и -вызовами библиотеки. - - Язык MGL достаточно простой. Каждая строка - отдельная команда. -Первое слово - имя команды, а все остальные ее аргументы. Команда может -иметь до 1000 аргументов (по крайней мере сейчас). Слова разделяются -одно от другого пробелом или символом табуляции. Различий между верхним -и нижним индексом нет, т.е. переменные A и A идентичны. Символ `#' -начинает комментарий - все символы после него игнорируются до конца -строки. Исключением является случай, когда `#' входит в строку. Опции -команды указываются после символа `;' (*note Command options::). Символ -`:' начинает новую команду (подобно переводу строки) если он расположен -не внутри скобок или строки. - - Если строка содержит ссылки на внешние параметры (`$0', `$1' ... -`$9') или макроопределения (`$a', `$b' ... `$z'), то текущие значения -параметров/макроопределений подставляются в строку вместо ссылки до -выполнением команды. Это позволяет использовать один и тот же скрипт -при различных входных параметрах командной строки или вводить -макроопределения по ходу исполнения команд скрипта. - - Аргументы команды могут быть строками, переменными или числами. - * Строка - произвольный набор символов между метками `''. - - * Обычно переменная имеет имя, состоящее из букв и чисел (должно - начинаться с буквы и не быть длиннее 64 символов). В качестве - переменной можно использовать временные массивы, включающие в себя: - * срезы ("подмассивы") массивов данных (подобно команде *note - subdata::). Например, `a(1)' или `a(1,:)' или `a(1,:,:)' - - вторая строка массива A, `a(:,2)' или `a(:,2,:)' - третий - столбец, `a(:,:,0)' - первый срез и т.д. Также можно выделить - часть массива с m-го по n-ый элемент `a(m:n,:,:)' или просто +MathGL имеет встроенный скриптовый язык +MGL для обработки и отображения данных. +Скрипты MGL можно использовать как +независимо (программами UDAV, mgl2png, mgl2eps, +mgl2svg и пр., *note Utilities::) так и вызовами +библиотеки. + + Язык MGL достаточно простой. Каждая +строка - отдельная команда. Первое +слово - имя команды, а все остальные ее +аргументы. Команда может иметь до 1000 +аргументов (по крайней мере сейчас). +Слова разделяются одно от другого +пробелом или символом табуляции. +Различий между верхним и нижним +индексом нет, т.е. переменные A и A +идентичны. Символ `#' начинает +комментарий - все символы после него +игнорируются до конца строки. +Исключением является случай, когда `#' +входит в строку. Опции команды +указываются после символа `;' (*note Command +options::). Символ `:' начинает новую команду +(подобно переводу строки) если он +расположен не внутри скобок или строки. + + Если строка содержит ссылки на +внешние параметры (`$0', `$1' ... `$9') или +макроопределения (`$a', `$b' ... `$z'), то +текущие значения +параметров/макроопределений +подставляются в строку вместо ссылки +до выполнением команды. Это позволяет +использовать один и тот же скрипт при +различных входных параметрах +командной строки или вводить +макроопределения по ходу исполнения +команд скрипта. + + Аргументы команды могут быть +строками, переменными или числами. + * Строка - произвольный набор + символов между метками `''. + + * Обычно переменная имеет имя, + состоящее из букв и чисел (должно + начинаться с буквы и не быть длиннее + 64 символов). В качестве переменной + можно использовать временные + массивы, включающие в себя: + * срезы ("подмассивы") массивов + данных (подобно команде *note subdata::). + Например, `a(1)' или `a(1,:)' или `a(1,:,:)' - + вторая строка массива A, `a(:,2)' или + `a(:,2,:)' - третий столбец, `a(:,:,0)' - + первый срез и т.д. Также можно + выделить часть массива с m-го по + n-ый элемент `a(m:n,:,:)' или просто `a(m:n)'. - * произвольные комбинации столбцов данных (например, - `a('n*w^2/exp(t)')'), если столбцы данных были именованы - командой *note idset:: или в файле данных (в строке + * произвольные комбинации + столбцов данных (например, + `a('n*w^2/exp(t)')'), если столбцы данных + были именованы командой *note idset:: + или в файле данных (в строке начинающейся с `##'). - * произвольное выражение из существующих переменных и констант. - Например, `sqrt(dat(:,5)+1)' даст временный массив данных с - элементами равными `tmp[i,j] = sqrt(dat[i,5,j]+1)'. - - * массивы с элементами заданными в квадратных скобках [], - разделенные `,'. При этом внутри выражения не должно быть - пробелов! Например, `[1,2,3]' даст временный массив из 3 - элементов {1, 2, 3}; `[[11,12],[21,22]]' даст матрицу 2*2 и - т.д. Элементами такой конструкции могут быть и массивы если - их размерности одинаковые, например `[v1,v2,...,vn]'. - - * результат команд построения новых данных (*note Make another - data::), если они заключены в фигурные скобки {}. Например, - `{sum dat 'x'}' даст временный массив, который есть результат - суммирования DAT вдоль 'x'. Это такой же массив как и TMP, - полученный командой `sum tmp dat 'x''. При этом можно - использовать вложенные конструкции, например `{sum {max dat - 'z'} 'x'}'. - Временные массивы не могут стоять в качестве первого аргумента - команд, создающих массивы (например, `new', `read', `hist' и т.д.). - - * К скалярным переменным, кроме собственно чисел, относятся: - специальные переменные `nan=#QNAN, pi=3.1415926..., on=1, off=0, - :=-1', переменные с суффиксами (*note Suffixes::), переменные - определенные командой *note define::. Также массивы размером 1x1x1 - считаются скалярами (например, `pi/dat.nx'). - Перед первым использованием все переменные должны быть определены с -помощью команд, создающих массивы (*note new::, *note var::, *note -list::, *note copy::, *note read::, *note hist::, *note sum:: и др., -*note Data create:: и *note Make another data::). - - Команды могут иметь несколько наборов аргументов (например, `plot -ydat' и `plot xdat ydat'). Все аргументы команды для выбранного набора -должны быть указаны, однако часть из них могут иметь значения по -умолчанию. Такие аргументы в описании команд будут помещены в -квадратные скобки [], например `plot ydat ['stl'='' zval=nan]'. При -этом запись `[arg1 arg2 arg3 ...]' подразумевает `[arg1 [arg2 [arg3 -...]]]', т.е. опускать можно только аргументы с конца, если вы согласны -с их значениями по умолчанию. Например, `plot ydat '' 1' или `plot ydat -''' правильно, а `plot ydat 1' не правильно (аргумент `'stl'' пропущен). - - Все команды MGL можно разделить на несколько групп. В дальнейшем -будет использованы следующие обозначения при описании команд: имя -команды выделено жирным, строки заключены в одинарные кавычки ", -переменные выделены курсивом, числа (скаляры) выделены моноширинным -шрифтом. Необязательные аргументы будут помещены в квадратные скобки [] -и показаны их значения по умолчанию. Подробную информацию о цвете и -стиле линий (*note Line styles::), цветовых схемах (*note Color -scheme::), стиле текста и символах TeX (*note Font styles::), текстовых -формулах (*note Textual formulas::) можно найти в соответствующих + * произвольное выражение из + существующих переменных и + констант. Например, `sqrt(dat(:,5)+1)' + даст временный массив данных с + элементами равными `tmp[i,j] = + sqrt(dat[i,5,j]+1)'. + + * массивы с элементами заданными в + квадратных скобках [], + разделенные `,'. При этом внутри + выражения не должно быть + пробелов! Например, `[1,2,3]' даст + временный массив из 3 элементов {1, + 2, 3}; `[[11,12],[21,22]]' даст матрицу 2*2 и + т.д. Элементами такой конструкции + могут быть и массивы если их + размерности одинаковые, например + `[v1,v2,...,vn]'. + + * результат команд построения + новых данных (*note Make another data::), если + они заключены в фигурные скобки + {}. Например, `{sum dat 'x'}' даст + временный массив, который есть + результат суммирования DAT вдоль + 'x'. Это такой же массив как и TMP, + полученный командой `sum tmp dat 'x''. + При этом можно использовать + вложенные конструкции, например + `{sum {max dat 'z'} 'x'}'. + Временные массивы не могут стоять в + качестве первого аргумента команд, + создающих массивы (например, `new', + `read', `hist' и т.д.). + + * К скалярным переменным, кроме + собственно чисел, относятся: + специальные переменные `nan=#QNAN, + pi=3.1415926..., on=1, off=0, :=-1', переменные с + суффиксами (*note Suffixes::), переменные + определенные командой *note define::. + Также массивы размером 1x1x1 + считаются скалярами (например, + `pi/dat.nx'). + Перед первым использованием все +переменные должны быть определены с +помощью команд, создающих массивы (*note +new::, *note var::, *note list::, *note copy::, *note read::, *note +hist::, *note sum:: и др., *note Data create:: и *note Make another +data::). + + Команды могут иметь несколько +наборов аргументов (например, `plot ydat' и +`plot xdat ydat'). Все аргументы команды для +выбранного набора должны быть указаны, +однако часть из них могут иметь +значения по умолчанию. Такие аргументы +в описании команд будут помещены в +квадратные скобки [], например `plot ydat +['stl'='' zval=nan]'. При этом запись `[arg1 arg2 arg3 +...]' подразумевает `[arg1 [arg2 [arg3 ...]]]', т.е. +опускать можно только аргументы с +конца, если вы согласны с их значениями +по умолчанию. Например, `plot ydat '' 1' или +`plot ydat ''' правильно, а `plot ydat 1' не +правильно (аргумент `'stl'' пропущен). + + Все команды MGL можно разделить на +несколько групп. В дальнейшем будет +использованы следующие обозначения +при описании команд: имя команды +выделено жирным, строки заключены в +одинарные кавычки ", переменные +выделены курсивом, числа (скаляры) +выделены моноширинным шрифтом. +Необязательные аргументы будут +помещены в квадратные скобки [] и +показаны их значения по умолчанию. +Подробную информацию о цвете и стиле +линий (*note Line styles::), цветовых схемах (*note +Color scheme::), стиле текста и символах TeX (*note +Font styles::), текстовых формулах (*note Textual +formulas::) можно найти в соответствующих разделах. * Menu: @@ -192,55 +256,95 @@ File: mgl_ru.info, Node: General concepts, Prev: Utilities, Up: MGL interface 1.1 Основные принципы ===================================== -Возможности библиотеки MathGL довольно богаты - число только основных -типов графиков превышает 50 видов. Кроме того, есть функции для -обработки данных, настройки вида графика и пр. и пр. Тем не менее, я -старался придерживаться единого стиля в порядке аргументов функций и -способе их "настройки". В основном все ниже сказанное относится к -функциям рисования различных графиков. - - Всего основных концепций (базисных идей) четыре: - 1. *Все настройки графиков (стиль линий, цветовые схемы поверхностей, - стиль и цвет текста) задаются строками.* Это обеспечивает: - удобство для пользователя - короткую строку легче читать и здесь - тяжелее ошибиться, чем в большом списке параметров; переносимость - - строки выглядят одинаково на всех платформах и не надо - заботиться о типе и числе аргументов. - - 2. *Все функции имеют "упрощенный" и "продвинутый" варианты.* Сделано - опять из-за удобства. В "упрощенном" варианте для построения - графика нужны только один-два массив(а) данных, которые - автоматически равнораспределяются в заданном диапазоне осей - координат. В "продвинутой" версии можно не только указать явно - диапазон построения графика, но и задать его параметрически. - Последнее позволяет легко строить довольно сложные кривые и - поверхности. В обоих вариантах функций порядок аргументов - стандартен: сначала идут массивы данных, потом необязательный - строковый параметр стиля графика, а далее - второстепенные - необязательные параметры для более точной настройки графика. - - 3. *Все элементы рисунков векторные.* Изначально библиотека MathGL - была ориентированна на работу с научными данными, которые по своей - природе векторные (линии, грани, матрицы и т.д.). Поэтому - векторность используется во всех рисунках! Причем иногда даже в - ущерб производительности (например, при выводе шрифтов). Помимо - всего прочего, векторность позволяет легко масштабировать рисунок - - измените размер картинки в 2 раза, и рисунок пропорционально - растянется. - - 4. *Новые графики не удаляют уже нарисованное.* Этот, в чем-то - неожиданный, подход позволяет создавать огромное количество - "комбинированных" графиков. Например, поверхность с наложенными - линиями уровня строится двумя последовательными вызовами функций - рисования поверхности и линий уровня (в любом порядке). И - совершенно не надо писать специальную функцию (как в Matlab и - некоторых других программах) для рисования этого графика. Примеров - таких графиков можно привести множество (см. раздел *note Hints:: - и сайт программы `http://mathgl.sf.net/index.html'). - - Кроме основных концепций я хотел бы остановиться на нескольких, как -оказалось, нетривиальных моментах - способе указания положения графика, -осей координат и строковых параметров линий, поверхностей, текста. +Возможности библиотеки MathGL довольно +богаты - число только основных типов +графиков превышает 50 видов. Кроме того, +есть функции для обработки данных, +настройки вида графика и пр. и пр. Тем +не менее, я старался придерживаться +единого стиля в порядке аргументов +функций и способе их "настройки". В +основном все ниже сказанное относится +к функциям рисования различных +графиков. + + Всего основных концепций (базисных +идей) четыре: + 1. *Все настройки графиков (стиль + линий, цветовые схемы поверхностей, + стиль и цвет текста) задаются + строками.* Это обеспечивает: + удобство для пользователя - + короткую строку легче читать и + здесь тяжелее ошибиться, чем в + большом списке параметров; + переносимость - строки выглядят + одинаково на всех платформах и не + надо заботиться о типе и числе + аргументов. + + 2. *Все функции имеют "упрощенный" и + "продвинутый" варианты.* Сделано + опять из-за удобства. В "упрощенном" + варианте для построения графика + нужны только один-два массив(а) + данных, которые автоматически + равнораспределяются в заданном + диапазоне осей координат. В + "продвинутой" версии можно не только + указать явно диапазон построения + графика, но и задать его + параметрически. Последнее + позволяет легко строить довольно + сложные кривые и поверхности. В + обоих вариантах функций порядок + аргументов стандартен: сначала идут + массивы данных, потом + необязательный строковый параметр + стиля графика, а далее - + второстепенные необязательные + параметры для более точной + настройки графика. + + 3. *Все элементы рисунков векторные.* + Изначально библиотека MathGL была + ориентированна на работу с научными + данными, которые по своей природе + векторные (линии, грани, матрицы и + т.д.). Поэтому векторность + используется во всех рисунках! + Причем иногда даже в ущерб + производительности (например, при + выводе шрифтов). Помимо всего + прочего, векторность позволяет + легко масштабировать рисунок - + измените размер картинки в 2 раза, и + рисунок пропорционально растянется. + + 4. *Новые графики не удаляют уже + нарисованное.* Этот, в чем-то + неожиданный, подход позволяет + создавать огромное количество + "комбинированных" графиков. + Например, поверхность с наложенными + линиями уровня строится двумя + последовательными вызовами функций + рисования поверхности и линий + уровня (в любом порядке). И + совершенно не надо писать + специальную функцию (как в Matlab и + некоторых других программах) для + рисования этого графика. Примеров + таких графиков можно привести + множество (см. раздел *note Hints:: и сайт + программы `http://mathgl.sf.net/index.html'). + + Кроме основных концепций я хотел бы +остановиться на нескольких, как +оказалось, нетривиальных моментах - +способе указания положения графика, +осей координат и строковых параметров +линий, поверхностей, текста. * Menu: @@ -256,54 +360,89 @@ File: mgl_ru.info, Node: Coordinate axes, Next: Line styles, Up: General conc 1.1.1 Оси координат ------------------------------- -Представление системы координат в MathGL состоит из двух частей. -Вначале координаты нормируются в интервал MINxMAX (*note Axis -settings::). Если флаг CUT установлен, то точки вне интервала -отбрасываются, в противном случае, они проецируются на ограничивающий -параллелепипед (*note Cutting::). Кроме того, отбрасываются точки -внутри границ, определенных переменными CUTMINxCUTMAX и точки, для -которых значение функции `CutOff'() не равно нулю. После этого формулы -перехода в криволинейную систему координат `SetFunc()'применяются к -каждой точке. Наконец, точка данных отображается с помощью одной из +Представление системы координат в MathGL +состоит из двух частей. Вначале +координаты нормируются в интервал MINxMAX +(*note Axis settings::). Если флаг CUT установлен, +то точки вне интервала отбрасываются, +в противном случае, они проецируются +на ограничивающий параллелепипед (*note +Cutting::). Кроме того, отбрасываются точки +внутри границ, определенных +переменными CUTMINxCUTMAX и точки, для +которых значение функции `CutOff'() не +равно нулю. После этого формулы +перехода в криволинейную систему +координат `SetFunc()'применяются к каждой +точке. Наконец, точка данных +отображается с помощью одной из графических функций. - Величины MAX, MIN можно изменять вручную. Однако, после этого -необходимо вызвать функцию `RecalcBorder()' для настройки графика. -Более удобный и безопасный путь состоит в вызове функций `Axis(), -SetRanges()' и др. В последнем случае функция `RecalcBorder()' -вызывается автоматически. Размеры осей можно задавать и автоматически -по минимальному и максимальному значениям массива данных. Для этого -предназначены функции `XRange(), YRange(), ZRange()'. Второй не -обязательный аргумент указывает, заменять ли новые значения диапазона -изменения оси координат (по умолчанию) или только расширить уже + Величины MAX, MIN можно изменять +вручную. Однако, после этого +необходимо вызвать функцию `RecalcBorder()' +для настройки графика. Более удобный и +безопасный путь состоит в вызове +функций `Axis(), SetRanges()' и др. В последнем +случае функция `RecalcBorder()' вызывается +автоматически. Размеры осей можно +задавать и автоматически по +минимальному и максимальному +значениям массива данных. Для этого +предназначены функции `XRange(), YRange(), +ZRange()'. Второй не обязательный аргумент +указывает, заменять ли новые значения +диапазона изменения оси координат (по +умолчанию) или только расширить уже существующий диапазон. - Точка пересечения осей координат задается переменной ORG и действует -на последующие вызовы функций рисования осей координат и сетки. По -умолчанию, если точка пересечения осей координат попадает вне диапазона -осей координат, то она проецируется на границу области. Изменить такое -поведение можно, задав AUTOORG=`false'. В случае, если одно из значений -ORG равно NAN, то соответствующее значение будет выбрано автоматически. - - Кроме привычных осей _x, y, z_ есть еще одна ось - цветовая шкала - -ось _c_. Она используется при окрашивании поверхностей и задает границы -изменения функции при окрашивании. При вызове `Axis()' ее границы -автоматически устанавливаются равными Min.z и Max.z. Возможно и ручное -изменение границ цветового интервала посредством вызова функции -`CAxis()' или изменение границ по заданному массиву `CRange()'. -Используйте `Colorbar()' для отображения цветовой шкалы. - - Вид меток по осям определяется функцией `SetTicks()' (*note Axis -settings::). Она имеет 3 аргумента: первый D задает шаг меток (если -положительны) или их число (если отрицательны) или логарифмические -метки (если равны нулю); второ NS задает число "подметок"; последний -определяет начальную точку для меток (по умолчанию это точка -пересечения осей). Функция SETTUNETICKS включает/выключает выделение -общего множителя (большого или малого факторов в диапазоне) для меток -осей координат. Наконец, если стандартный вид меток не устраивает -пользователя, то их шаблон можно задать явно (можно использовать и ТеХ -символы), воспользовавшись функциями `SetXTT(), SetYTT(). SetZTT(). -SetCTT()'. Кроме того, в качестве меток можно вывести произвольный + Точка пересечения осей координат +задается переменной ORG и действует на +последующие вызовы функций рисования +осей координат и сетки. По умолчанию, +если точка пересечения осей координат +попадает вне диапазона осей координат, +то она проецируется на границу +области. Изменить такое поведение +можно, задав AUTOORG=`false'. В случае, если +одно из значений ORG равно NAN, то +соответствующее значение будет +выбрано автоматически. + + Кроме привычных осей _x, y, z_ есть еще +одна ось - цветовая шкала - ось _c_. Она +используется при окрашивании +поверхностей и задает границы +изменения функции при окрашивании. При +вызове `Axis()' ее границы автоматически +устанавливаются равными Min.z и Max.z. +Возможно и ручное изменение границ +цветового интервала посредством +вызова функции `CAxis()' или изменение +границ по заданному массиву `CRange()'. +Используйте `Colorbar()' для отображения +цветовой шкалы. + + Вид меток по осям определяется +функцией `SetTicks()' (*note Axis settings::). Она +имеет 3 аргумента: первый D задает шаг +меток (если положительны) или их число +(если отрицательны) или +логарифмические метки (если равны +нулю); второ NS задает число "подметок"; +последний определяет начальную точку +для меток (по умолчанию это точка +пересечения осей). Функция SETTUNETICKS +включает/выключает выделение общего +множителя (большого или малого +факторов в диапазоне) для меток осей +координат. Наконец, если стандартный +вид меток не устраивает пользователя, +то их шаблон можно задать явно (можно +использовать и ТеХ символы), +воспользовавшись функциями `SetXTT(), +SetYTT(). SetZTT(). SetCTT()'. Кроме того, в качестве +меток можно вывести произвольный текст использовав функцию `SetTicksVal()'.  @@ -312,56 +451,81 @@ File: mgl_ru.info, Node: Line styles, Next: Color scheme, Prev: Coordinate ax 1.1.2 Стиль линий --------------------------- -Стиль линии задается строкой, которая может содержать символ цвета -(`wkrgbcymhRGBCYMHWlenupqLENUPQ'), тип пунктира (`-|;:ji' или пробел), -ширину линии (`0123456789') и тип маркера (`o+xsd.^v' и модификатор -`#'). Если пропущен цвет или тип пунктира, то используется значение по -умолчанию с последним указанным цветом или значение из палитры (для -*note 1D plotting::). По умолчанию палитры содержит следующие цвета: -темно серый `H', синий `b', зеленый `g', красный `r', голубой `c', -пурпурный `m', yellow `y', серый `h', сине-зеленый `l', небесно-синий -`n', оранжевый `q', желто-зеленый `e', сине-фиолетовый `u', фиолетовый -`p'. - - Символы цвета те же, что и в классе mglColor (*note mglColor -class::): `k' - черный, `r' - красный, `R' - темно красный, `g' - -зеленый, `G' - темно зеленый, `b' - синий, `B' - темно синий, `c' - -голубой, `C' - темно голубой, `m' - пурпурный, `M' - темно пурпурный, -`y' - желтый, `Y' - темно желтый (золотой), `h' - серый, `H' - темно -серый, `w' - белый, `W' - светло серый, `l' - сине-зеленый, `L' - темно -сине-зеленый, `e' - желто-зеленый, `E' - темно желто-зеленый, `n' - -небесно-синий, `N' - темно небесно-синий, `u' - сине-фиолетовый, `U' - -темно сине-фиолетовый, `p' - фиолетовый, `P' - темно фиолетовый, `q' - -оранжевый, `Q' - темно оранжевый (коричневый). - - Тип пунктира: пробел - нет линии (для рисования только маркеров), -`-' - сплошная линия (################), `|' - длинный пунктир -(########________), `;' - пунктир (####____####____), `=' - короткий -пунктир (##__##__##__##__), `:' - точки (#___#___#___#___), `j' - -пунктир с точками (#######____#____), `i' - мелкий пунктир с точками -(###__#__###__#__). - - Типы маркеров: `o' - окружность, `+' - крест, `x' - косой крест, `s' -- квадрат, `d' - ромб, `.' - точка, `^' - треугольник вверх, `v' - -треугольник вниз, `<' - треугольник влево, `>' - треугольник вправо, -`#*' - знак Y, `#+' - крест в квадрате, `#x' - косой крест в квадрате, -`#.' - точка в окружности. Если в строке присутствует символ `#', то -используются символы с заполнением. +Стиль линии задается строкой, которая +может содержать символ цвета +(`wkrgbcymhRGBCYMHWlenupqLENUPQ'), тип пунктира (`-|;:ji' +или пробел), ширину линии (`0123456789') и тип +маркера (`o+xsd.^v' и модификатор `#'). Если +пропущен цвет или тип пунктира, то +используется значение по умолчанию с +последним указанным цветом или +значение из палитры (для *note 1D plotting::). +По умолчанию палитры содержит +следующие цвета: темно серый `H', синий +`b', зеленый `g', красный `r', голубой `c', +пурпурный `m', yellow `y', серый `h', +сине-зеленый `l', небесно-синий `n', +оранжевый `q', желто-зеленый `e', +сине-фиолетовый `u', фиолетовый `p'. + + Символы цвета те же, что и в классе +mglColor (*note mglColor class::): `k' - черный, `r' - +красный, `R' - темно красный, `g' - зеленый, +`G' - темно зеленый, `b' - синий, `B' - темно +синий, `c' - голубой, `C' - темно голубой, `m' +- пурпурный, `M' - темно пурпурный, `y' - +желтый, `Y' - темно желтый (золотой), `h' - +серый, `H' - темно серый, `w' - белый, `W' - +светло серый, `l' - сине-зеленый, `L' - +темно сине-зеленый, `e' - желто-зеленый, +`E' - темно желто-зеленый, `n' - +небесно-синий, `N' - темно небесно-синий, +`u' - сине-фиолетовый, `U' - темно +сине-фиолетовый, `p' - фиолетовый, `P' - +темно фиолетовый, `q' - оранжевый, `Q' - +темно оранжевый (коричневый). + + Тип пунктира: пробел - нет линии (для +рисования только маркеров), `-' - +сплошная линия (################), `|' - длинный +пунктир (########________), `;' - пунктир +(####____####____), `=' - короткий пунктир +(##__##__##__##__), `:' - точки (#___#___#___#___), `j' - +пунктир с точками (#######____#____), `i' - +мелкий пунктир с точками (###__#__###__#__). + + Типы маркеров: `o' - окружность, `+' - +крест, `x' - косой крест, `s' - квадрат, `d' - +ромб, `.' - точка, `^' - треугольник вверх, +`v' - треугольник вниз, `<' - треугольник +влево, `>' - треугольник вправо, `#*' - знак +Y, `#+' - крест в квадрате, `#x' - косой крест +в квадрате, `#.' - точка в окружности. +Если в строке присутствует символ `#', +то используются символы с заполнением. [image src="../png/sample5.png"] Стили линий и маркеров. - На конце и в начале линии можно выводить специальный символ -(стрелку), если в строке указать один из символов: `A' - стрелка -наружу, `V' - стрелка внутрь, `I' - поперечная черта, `K' - стрелка с -чертой, `T' - треугольник, `S' - квадрат, `D' - ромб, `O' - круг, `_' - -нет стрелки (по умолчанию). При этом действует следующее правило: -первый символ определяет стрелку на конце линии, второй символ - -стрелку в начале линии. Например, `r-A' - красная сплошная линия со -стрелкой на конце, `b|AI' - синий пунктир со стрелкой на конце и чертой -вначале, `_O' - линия с текущим стилем и кружком вначале. Эти стили -действуют и при построении графиков (например, *note 1D plotting::). + На конце и в начале линии можно +выводить специальный символ (стрелку), +если в строке указать один из символов: +`A' - стрелка наружу, `V' - стрелка внутрь, +`I' - поперечная черта, `K' - стрелка с +чертой, `T' - треугольник, `S' - квадрат, `D' - +ромб, `O' - круг, `_' - нет стрелки (по +умолчанию). При этом действует +следующее правило: первый символ +определяет стрелку на конце линии, +второй символ - стрелку в начале линии. +Например, `r-A' - красная сплошная линия +со стрелкой на конце, `b|AI' - синий +пунктир со стрелкой на конце и чертой +вначале, `_O' - линия с текущим стилем и +кружком вначале. Эти стили действуют и +при построении графиков (например, *note +1D plotting::). [image src="../png/sampled.png"] @@ -373,63 +537,96 @@ File: mgl_ru.info, Node: Color scheme, Next: Font styles, Prev: Line styles, 1.1.3 Цветовая схема --------------------------------- -Цветовая схема используется для определения цвета поверхностей, линий -уровня и пр. Цветовая схема задается строкой _s_, которая содержит -символы цвета (*note Line styles::) или символы `d#:|'. Символ `d' -указывает на определение цвета в зависимости от положения точки в -пространстве, а не по амплитуде данных. Символ `#' переключает -рисование поверхности на сетчатое (для трехмерных поверхностей) или -включает рисование сетки на поверхности. Символ `|' отключает -интерполяцию цвета в цветовой схеме. Это может быть полезно для -"резких" цветов, например, при рисовании матриц. Если в строке -встречается символ `:', то он принудительно заканчивает разбор строки -для стиля поверхности. После этого символа могут идти описание стиля -текста или оси вращения кривой/линий уровня. Цветовая схема может -содержать до 32 значений цвета. - - В цветовой схеме можно использовать тональные ("подсвеченные") цвета -(_не в стиле линий!_). Тональный цвет задается двумя символами: первый -- обычный цвет, второй - его яркость цифрой. Цифра может быть в -диапазоне `1'...`9'. При этом `5' соответствует нормальному цвету, `1' -- очень темная версия цвета (почти черный), `9' - очень светлая версия -цвета (почти белый). Например цветовая схема может быть `b2b7wr7r2'. +Цветовая схема используется для +определения цвета поверхностей, линий +уровня и пр. Цветовая схема задается +строкой _s_, которая содержит символы +цвета (*note Line styles::) или символы `d#:|'. +Символ `d' указывает на определение +цвета в зависимости от положения точки +в пространстве, а не по амплитуде +данных. Символ `#' переключает +рисование поверхности на сетчатое (для +трехмерных поверхностей) или включает +рисование сетки на поверхности. Символ +`|' отключает интерполяцию цвета в +цветовой схеме. Это может быть полезно +для "резких" цветов, например, при +рисовании матриц. Если в строке +встречается символ `:', то он +принудительно заканчивает разбор +строки для стиля поверхности. После +этого символа могут идти описание +стиля текста или оси вращения +кривой/линий уровня. Цветовая схема +может содержать до 32 значений цвета. + + В цветовой схеме можно использовать +тональные ("подсвеченные") цвета (_не в +стиле линий!_). Тональный цвет задается +двумя символами: первый - обычный цвет, +второй - его яркость цифрой. Цифра +может быть в диапазоне `1'...`9'. При этом +`5' соответствует нормальному цвету, `1' - +очень темная версия цвета (почти +черный), `9' - очень светлая версия цвета +(почти белый). Например цветовая схема +может быть `b2b7wr7r2'. [image src="../png/colors.png"] Цвета и их идентификаторы. - При определении цвета по _амплитуде_ (наиболее часто используется) -окончательный цвет определяется путем линейной интерполяции массива -цветов. Массив цветов формируется из цветов, указанных в строке -спецификации. Аргумент - амплитуда, нормированная между CMIN - CMAX -(*note Axis settings::). Например, строка из 4 символов `bcyr' -соответствует изменению цвета от синего (минимальное значение) через -голубой и желтый (промежуточные значения) к красному (максимальное -значение). Строка `kw' соответствует изменению цвета от черного -(минимальное значение) к белому (максимальное значение). Строка из -одного символа (например, `g') соответствует однотонному цвету (в + При определении цвета по _амплитуде_ +(наиболее часто используется) +окончательный цвет определяется путем +линейной интерполяции массива цветов. +Массив цветов формируется из цветов, +указанных в строке спецификации. +Аргумент - амплитуда, нормированная +между CMIN - CMAX (*note Axis settings::). Например, +строка из 4 символов `bcyr' соответствует +изменению цвета от синего (минимальное +значение) через голубой и желтый +(промежуточные значения) к красному +(максимальное значение). Строка `kw' +соответствует изменению цвета от +черного (минимальное значение) к +белому (максимальное значение). Строка +из одного символа (например, `g') +соответствует однотонному цвету (в данному случае зеленому). - Есть несколько полезных цветовых схем. Строка `kw' дает обычную -серую (черно-белую) схему, когда большие значения светлее. Строка `wk' -представляет обратную серую схему, когда большие значения темнее. -Строки `kRryw', `kGgw', `kBbcw' представляют собой хорошо известные -схемы _hot_, _summer_ и _winter_. Строки `BbwrR' и `bBkRr' позволяют -рисовать двухцветные фигуры на белом или черном фоне, когда -отрицательные значения показаны синим цветом, а положительные - -красным. Строка `BbcyrR' дает цветовую схему, близкую к хорошо -известной схеме _jet_. + Есть несколько полезных цветовых +схем. Строка `kw' дает обычную серую +(черно-белую) схему, когда большие +значения светлее. Строка `wk' +представляет обратную серую схему, +когда большие значения темнее. Строки +`kRryw', `kGgw', `kBbcw' представляют собой +хорошо известные схемы _hot_, _summer_ и _winter_. +Строки `BbwrR' и `bBkRr' позволяют рисовать +двухцветные фигуры на белом или черном +фоне, когда отрицательные значения +показаны синим цветом, а положительные +- красным. Строка `BbcyrR' дает цветовую +схему, близкую к хорошо известной +схеме _jet_. [image src="../png/color_schemes.png"] Наиболее популярные цветовые схемы. - При определении цвета по _положению точки в пространстве_ -окончательный цвет определяется по формуле c=x*c[1] + y*c[2] + z*c[3]. -Здесь c[1], c[2], c[3] - первые три цвета в цветовом массиве; x, y, z - -координаты точки, нормированные на MINxMAX. Такой тип определения цвета -полезен, например, при построении поверхностей уровня, когда цвет дает -представление о положении точки в пространстве. + При определении цвета по _положению +точки в пространстве_ окончательный +цвет определяется по формуле c=x*c[1] + y*c[2] ++ z*c[3]. Здесь c[1], c[2], c[3] - первые три цвета +в цветовом массиве; x, y, z - координаты +точки, нормированные на MINxMAX. Такой тип +определения цвета полезен, например, +при построении поверхностей уровня, +когда цвет дает представление о +положении точки в пространстве.  File: mgl_ru.info, Node: Font styles, Next: Textual formulas, Prev: Color scheme, Up: General concepts @@ -437,80 +634,105 @@ File: mgl_ru.info, Node: Font styles, Next: Textual formulas, Prev: Color sch 1.1.4 Стиль текста ----------------------------- -Стиль текста задается строкой, которая может содержать несколько -символов: тип шрифта (`ribwou') и/или выравнивания (`LRC'), а также -цвет текста `wkrgbcymhRGBCYMHW' (*note Line styles::) после символа -`:'. Например, `biC:b' соответствует жирному курсиву с выравниванием по -центру синего цвета. - - Начертания шрифта: `r' - прямой шрифт, `i' - курсив, `b' - жирный. -По умолчанию используется прямой шрифт. Типы выравнивания текста: `L' - -по левому краю (по умолчанию), `C' - по центру, `R' - по правому краю. -Дополнительные эффекты шрифта: `w' - контурный, `o' - надчеркнутый, `u' -- подчеркнутый. - - Синтаксический разбор LaTeX-их команд по умолчанию включен. Это -команды смены стиля текста (например, \b для жирного текста): \a или -\overline - надчеркивание, \b или \textbf - жирный, \i или \textit - -курсив, \r или \textrm - прямой (отменяет стили жирного и курсива), \u -или \underline - подчеркнутый, \w или \wire - контурный, \big - -большего размера, @ - меньшего размера. Нижний и верхний индексы -задаются символами `_' и `^'. При этом изменение стиля применяется -только к следующему символу или к символам в фигурных скобках {}, -которые понимаются как единый блок. Например, сравните строки `sin -(x^{2^3})' и `sin (x^2^3)'. Можно также менять цвет текста внутри -строки с помощью команд #? или \color?, где `?' - символ цвета (*note -Line styles::). Например, слова `Blue' и `red' будут окрашены в -соответствующий цвет в строке `#b{Blue} and \colorr{red} text'. -Большинство функций понимает символ новой строки `\n' и позволяет -выводить много строчный текст. Наконец, можно использовать символы с -произвольным UTF кодом с помощью команды `\utf0x????'. Например, +Стиль текста задается строкой, которая +может содержать несколько символов: +тип шрифта (`ribwou') и/или выравнивания +(`LRC'), а также цвет текста `wkrgbcymhRGBCYMHW' (*note +Line styles::) после символа `:'. Например, `biC:b' +соответствует жирному курсиву с +выравниванием по центру синего цвета. + + Начертания шрифта: `r' - прямой шрифт, +`i' - курсив, `b' - жирный. По умолчанию +используется прямой шрифт. Типы +выравнивания текста: `L' - по левому краю +(по умолчанию), `C' - по центру, `R' - по +правому краю. Дополнительные эффекты +шрифта: `w' - контурный, `o' - надчеркнутый, +`u' - подчеркнутый. + + Синтаксический разбор LaTeX-их команд +по умолчанию включен. Это команды +смены стиля текста (например, \b для +жирного текста): \a или \overline - +надчеркивание, \b или \textbf - жирный, \i или +\textit - курсив, \r или \textrm - прямой +(отменяет стили жирного и курсива), \u +или \underline - подчеркнутый, \w или \wire - +контурный, \big - большего размера, @ - +меньшего размера. Нижний и верхний +индексы задаются символами `_' и `^'. При +этом изменение стиля применяется +только к следующему символу или к +символам в фигурных скобках {}, которые +понимаются как единый блок. Например, +сравните строки `sin (x^{2^3})' и `sin (x^2^3)'. +Можно также менять цвет текста внутри +строки с помощью команд #? или \color?, где +`?' - символ цвета (*note Line styles::). Например, +слова `Blue' и `red' будут окрашены в +соответствующий цвет в строке `#b{Blue} and +\colorr{red} text'. Большинство функций +понимает символ новой строки `\n' и +позволяет выводить много строчный +текст. Наконец, можно использовать +символы с произвольным UTF кодом с +помощью команды `\utf0x????'. Например, `\utf0x3b1' даст символ \alpha. - Распознаются также большинство символов TeX и AMSTeX, команды смены -стиля текста (\textrm, \textbf, \textit, \textsc, \overline, + Распознаются также большинство +символов TeX и AMSTeX, команды смены стиля +текста (\textrm, \textbf, \textit, \textsc, \overline, \underline), акценты (\hat, \tilde, \dot, \ddot, \acute, \check, -\grave, \bar, \breve) и корни (\sqrt, \sqrt3, \sqrt4). Полный список -содержит около 2000 символов. Отмечу, что первый пробел (пробел, -табуляция и пр.) после команды игнорируется, а все остальные пробелы -печатаются обычным образом. Например, следующие строки дают одинаковый +\grave, \bar, \breve) и корни (\sqrt, \sqrt3, \sqrt4). +Полный список содержит около 2000 +символов. Отмечу, что первый пробел +(пробел, табуляция и пр.) после команды +игнорируется, а все остальные пробелы +печатаются обычным образом. Например, +следующие строки дают одинаковый результат \tilde a: `\tilde{a}'; `\tilde a'; `\tilde{}a'. - В частности, распознаются греческие буквы: \alpha - \alpha, \beta - -\beta, \gamma - \gamma, \delta - \delta, \epsilon - \epsilon, \eta - -\eta, \iota - \iota, \chi - \chi, \kappa - \kappa, \lambda - \lambda, -\mu - \mu, \nu - \nu, o - \o, \omega - \omega, \phi - \phi, \pi - \pi, -\psi - \psi, \rho - \rho, \sigma - \sigma, \theta - \theta, \tau - -\tau, \upsilon - \upsilon, \xi - \xi, \zeta - \zeta, \varsigma - -\varsigma, \varepsilon - \varepsilon, \vartheta - \vartheta, \varphi - -\varphi, A - \Alpha, B - \Beta, \Gamma - \Gamma, \Delta - \Delta, E - -\Epsilon, H - \Eta, I - \Iota, C - \Chi, K - \Kappa, \Lambda - \Lambda, -M - \Mu, N - \Nu, O - \O, \Omega - \Omega, \Phi - \Phi, \Pi - \Pi, \Psi -- \Psi, R - \Rho, \Sigma - \Sigma, \Theta - \Theta, T - \Tau, \Upsilon -- \Upsilon, \Xi - \Xi, Z - \Zeta. - - Еще примеры наиболее общеупотребительных TeX-их символов: \angle - -\angle, \aleph - \aleph, \cdot - \cdot, \clubsuit - \clubsuit, \cup - -\cup, \cap - \cap, \diamondsuit - \diamondsuit, \diamond - \diamond, -\div - \div, \downarrow - \downarrow, \dag - \dag, \ddag - \ddag, -\equiv - \equiv, \exists - \exists, \frown - \frown, \flat - \flat, \ge -- \ge, \geq - \geq, \gets - \gets, \heartsuit - \heartsuit, \infty - -\infty, \in - \in, \int - \int, \Im - \Im, \langle - \langle, \le - -\le, \leq - \leq, \leftarrow - \leftarrow, \mp - \mp, \nabla - \nabla, -\ne - \ne, \neq - \neq, \natural - \natural, \oint - \oint, \odot - -\odot, \oplus - \oplus, \partial - \partial, \parallel - \parallel, -\perp - \perp, \pm - \pm, \propto - \propto, \prod - \prod, \Re - \Re, -\rightarrow - \rightarrow, \rangle - \rangle, \spadesuit - \spadesuit, -\sim - \sim, \smile - \smile, \subset - \subset, \supset - \supset, -\surd - \sqrt or \surd, \S - \S, \sharp - \sharp, \sum - \sum, \times - -\times, \to - \to, \uparrow - \uparrow, \wp - \wp and so on. - - Размер текста может быть задан явно (если SIZE>0) или относительно -базового размера шрифта для рисунка |SIZE|*FONTSIZE при SIZE<0. -Значение SIZE=0 указывает, что соответствующая строка выводиться не -будет. Базовый размер шрифта измеряется во внутренних единицах. -Специальные функции `SetFontSizePT(), SetFontSizeCM(), SetFontSizeIN()' -позволяют задавать его в более "привычных" единицах. + В частности, распознаются греческие +буквы: \alpha - \alpha, \beta - \beta, \gamma - \gamma, \delta - +\delta, \epsilon - \epsilon, \eta - \eta, \iota - \iota, \chi - \chi, +\kappa - \kappa, \lambda - \lambda, \mu - \mu, \nu - \nu, o - \o, +\omega - \omega, \phi - \phi, \pi - \pi, \psi - \psi, \rho - \rho, +\sigma - \sigma, \theta - \theta, \tau - \tau, \upsilon - \upsilon, \xi +- \xi, \zeta - \zeta, \varsigma - \varsigma, \varepsilon - \varepsilon, +\vartheta - \vartheta, \varphi - \varphi, A - \Alpha, B - \Beta, \Gamma +- \Gamma, \Delta - \Delta, E - \Epsilon, H - \Eta, I - \Iota, C - \Chi, +K - \Kappa, \Lambda - \Lambda, M - \Mu, N - \Nu, O - \O, \Omega - +\Omega, \Phi - \Phi, \Pi - \Pi, \Psi - \Psi, R - \Rho, \Sigma - \Sigma, +\Theta - \Theta, T - \Tau, \Upsilon - \Upsilon, \Xi - \Xi, Z - \Zeta. + + Еще примеры наиболее +общеупотребительных TeX-их символов: +\angle - \angle, \aleph - \aleph, \cdot - \cdot, \clubsuit - \clubsuit, +\cup - \cup, \cap - \cap, \diamondsuit - \diamondsuit, \diamond - +\diamond, \div - \div, \downarrow - \downarrow, \dag - \dag, \ddag - +\ddag, \equiv - \equiv, \exists - \exists, \frown - \frown, \flat - +\flat, \ge - \ge, \geq - \geq, \gets - \gets, \heartsuit - \heartsuit, +\infty - \infty, \in - \in, \int - \int, \Im - \Im, \langle - \langle, +\le - \le, \leq - \leq, \leftarrow - \leftarrow, \mp - \mp, \nabla - +\nabla, \ne - \ne, \neq - \neq, \natural - \natural, \oint - \oint, +\odot - \odot, \oplus - \oplus, \partial - \partial, \parallel - +\parallel, \perp - \perp, \pm - \pm, \propto - \propto, \prod - \prod, +\Re - \Re, \rightarrow - \rightarrow, \rangle - \rangle, \spadesuit - +\spadesuit, \sim - \sim, \smile - \smile, \subset - \subset, \supset - +\supset, \surd - \sqrt or \surd, \S - \S, \sharp - \sharp, \sum - \sum, +\times - \times, \to - \to, \uparrow - \uparrow, \wp - \wp and so on. + + Размер текста может быть задан явно +(если SIZE>0) или относительно базового +размера шрифта для рисунка |SIZE|*FONTSIZE +при SIZE<0. Значение SIZE=0 указывает, что +соответствующая строка выводиться не +будет. Базовый размер шрифта +измеряется во внутренних единицах. +Специальные функции `SetFontSizePT(), +SetFontSizeCM(), SetFontSizeIN()' позволяют задавать +его в более "привычных" единицах.  File: mgl_ru.info, Node: Textual formulas, Prev: Font styles, Up: General concepts @@ -518,68 +740,93 @@ File: mgl_ru.info, Node: Textual formulas, Prev: Font styles, Up: General con 1.1.5 Текстовые формулы --------------------------------------- -MathGL имеет быстрый парсер текстовых формул , понимающий большое число -функций и операций. Базовые операции: `+' - сложение, `-' - вычитание, -`*' - умножение, `/' - деление, `^' - возведение в целосичленную -степень. Также есть логические операции: `<' - истина если if x' -- истина если x>y, `=' - истина если x=y, `&' - истина если x и y оба -не равны нулю, `|' - истина если x или y не нуль. Логические операции -имеют наинизший приоритет и возвращают 1 если истина или 0 если ложно. - - Базовые функции: `sqrt(x)' - квадратный корень из X, `pow(x,y)' - X -в степени Y, `ln(x)' - натуральный логарифм X, `lg(x)' - десятичный -логарифм X, `log(a,x)' - логарифм по основанию A от X, `abs(x)' - -модуль X, `sign(x)' - знак X, `mod(x,y)' - остаток от деления x на y, -`step(x)' - ступенчатая функция, `int(x)' - целая часть X, `rnd' - -случайное число, `pi' - число \pi=3.1415926... - - Тригонометрические функции: `sin(x)', `cos(x)', `tan(x)' (или -`tg(x)'). Обратные тригонометрические функции: `asin(x)', `acos(x)', -`atan(x)'. Гиперболические функции: `sinh(x)' (или `sh(x)'), `cosh(x)' -(или `ch(x)'), `tanh(x)' (или `th(x)'). Обратные гиперболические +MathGL имеет быстрый парсер текстовых +формул , понимающий большое число +функций и операций. Базовые операции: +`+' - сложение, `-' - вычитание, `*' - +умножение, `/' - деление, `^' - возведение в +целосичленную степень. Также есть +логические операции: `<' - истина если if +x' - истина если x>y, `=' - истина если x=y, +`&' - истина если x и y оба не равны нулю, `|' +- истина если x или y не нуль. Логические +операции имеют наинизший приоритет и +возвращают 1 если истина или 0 если +ложно. + + Базовые функции: `sqrt(x)' - квадратный +корень из X, `pow(x,y)' - X в степени Y, `ln(x)' - +натуральный логарифм X, `lg(x)' - +десятичный логарифм X, `log(a,x)' - логарифм +по основанию A от X, `abs(x)' - модуль X, `sign(x)' +- знак X, `mod(x,y)' - остаток от деления x на y, +`step(x)' - ступенчатая функция, `int(x)' - +целая часть X, `rnd' - случайное число, `pi' - +число \pi=3.1415926... + + Тригонометрические функции: `sin(x)', +`cos(x)', `tan(x)' (или `tg(x)'). Обратные +тригонометрические функции: `asin(x)', +`acos(x)', `atan(x)'. Гиперболические функции: +`sinh(x)' (или `sh(x)'), `cosh(x)' (или `ch(x)'), `tanh(x)' +(или `th(x)'). Обратные гиперболические функции: `asinh(x)', `acosh(x)', `atanh(x)'. - Специальные функции: `gamma(x)' - гамма функция \Gamma(x) = -\int_0^\infty dt t^{x-1} \exp(-t) , `psi(x)' - дигамма функция \psi(x) -= \Gamma’(x)/\Gamma(x) для x!=0, `ai(x)' - Эйри функция -Ai(x), `bi(x)' - Эйри функция Bi(x), `cl(x)' - функция Клаузена, -`li2(x)' (или `dilog(x)') - дилогарифм Li_2(x) = - \Re \int_0^x ds -\log(1-s)/s, `sinc(x)' - функция sinc(x) = \sin(\pi x) / (\pi x) для -любых x, `zeta(x)' - зета функция Римана \zeta(s) = \sum_{k=1}^\infty -k^{-s} для s!=1, `eta(x)' - эта функция \eta(s) = (1-2^{1-s}) \zeta(s) -для произвольного s, `lp(l,x)' - полином Лежандра P_l(x), (|x|<=1, -l>=0), `w0(x)', `w1(x)' - функции Ламберта W. Функции W(x) определены -как решение уравнения W \exp(W) = x. - - Экспоненциальные интегралы: `ci(x)' - cos-интеграл Ci(x) = \int_0^x -dt \cos(t)/t, `si(x)' - sin-интеграл Si(x) = \int_0^x dt \sin(t)/t, -`erf(x)' - функция ошибки erf(x) = (2/\sqrt(\pi)) \int_0^x dt -\exp(-t^2), `ei(x)' - интеграл Ei(x) := - PV(\int_{-x}^\infty dt -\exp(-t)/t) (где PV обозначает главное значение), `e1(x)' - интеграл -E_1(x) := Re \int_1^\infty dt \exp(-xt)/t , `e2(x)' - интеграл E_2(x) -:= Re \int_1^\infty dt \exp(-xt)/t^2, `ei3(x)' - интеграл Ei_3(x) = + Специальные функции: `gamma(x)' - гамма +функция \Gamma(x) = \int_0^\infty dt t^{x-1} \exp(-t) , `psi(x)' +- дигамма функция \psi(x) = +\Gamma’(x)/\Gamma(x) для x!=0, `ai(x)' - Эйри +функция Ai(x), `bi(x)' - Эйри функция Bi(x), `cl(x)' +- функция Клаузена, `li2(x)' (или `dilog(x)') - +дилогарифм Li_2(x) = - \Re \int_0^x ds \log(1-s)/s, `sinc(x)' +- функция sinc(x) = \sin(\pi x) / (\pi x) для любых x, +`zeta(x)' - зета функция Римана \zeta(s) = +\sum_{k=1}^\infty k^{-s} для s!=1, `eta(x)' - эта функция +\eta(s) = (1-2^{1-s}) \zeta(s) для произвольного s, +`lp(l,x)' - полином Лежандра P_l(x), (|x|<=1, l>=0), +`w0(x)', `w1(x)' - функции Ламберта W. Функции +W(x) определены как решение уравнения W +\exp(W) = x. + + Экспоненциальные интегралы: `ci(x)' - +cos-интеграл Ci(x) = \int_0^x dt \cos(t)/t, `si(x)' - +sin-интеграл Si(x) = \int_0^x dt \sin(t)/t, `erf(x)' - +функция ошибки erf(x) = (2/\sqrt(\pi)) \int_0^x dt +\exp(-t^2), `ei(x)' - интеграл Ei(x) := - PV(\int_{-x}^\infty +dt \exp(-t)/t) (где PV обозначает главное +значение), `e1(x)' - интеграл E_1(x) := Re +\int_1^\infty dt \exp(-xt)/t , `e2(x)' - интеграл E_2(x) := Re +\int_1^\infty dt \exp(-xt)/t^2, `ei3(x)' - интеграл Ei_3(x) = \int_0^x dt \exp(-t^3) для x>=0. - Функции Бесселя: `j(nu,x)' - функция Бесселя первого рода, `y(nu,x)' -- функция Бесселя второго рода, `i(nu,x)' - модифицированная функция -Бесселя первого рода, `k(nu,x)' - модифицированная функция Бесселя -второго рода. - - Эллиптические интегралы: `ee(k)' - полный эллиптический интеграл -E(k) = E(\pi/2, k), `ek(k)' - полный эллиптический интеграл K(k) = -F(\pi/2, k), `e(phi,k)' - эллиптический интеграл E(\phi,k) = -\int_0^\phi dt \sqrt((1 - k^2 \sin^2(t))), `f(phi,k)' - эллиптический -интеграл F(\phi,k) = \int_0^\phi dt 1/\sqrt((1 - k^2 \sin^2(t))). - - Функции Якоби: `sn(u,m)', `cn(u,m)', `dn(u,m)', `sc(u,m)', -`sd(u,m)', `ns(u,m)', `cs(u,m)', `cd(u,m)', `nc(u,m)', `ds(u,m)', -`dc(u,m)', `nd(u,m)'. - - Некоторые из функций могут быть недоступны если флаг NO_GSL был -определен при компиляции библиотеки MathGL. - - При разборе формул нет различия между верхним и нижним регистром. -Если аргумент лежит вне области определения функции, то возвращается + Функции Бесселя: `j(nu,x)' - функция +Бесселя первого рода, `y(nu,x)' - функция +Бесселя второго рода, `i(nu,x)' - +модифицированная функция Бесселя +первого рода, `k(nu,x)' - модифицированная +функция Бесселя второго рода. + + Эллиптические интегралы: `ee(k)' - +полный эллиптический интеграл E(k) = +E(\pi/2, k), `ek(k)' - полный эллиптический +интеграл K(k) = F(\pi/2, k), `e(phi,k)' - +эллиптический интеграл E(\phi,k) = \int_0^\phi dt +\sqrt((1 - k^2 \sin^2(t))), `f(phi,k)' - эллиптический +интеграл F(\phi,k) = \int_0^\phi dt 1/\sqrt((1 - k^2 +\sin^2(t))). + + Функции Якоби: `sn(u,m)', `cn(u,m)', `dn(u,m)', +`sc(u,m)', `sd(u,m)', `ns(u,m)', `cs(u,m)', `cd(u,m)', `nc(u,m)', +`ds(u,m)', `dc(u,m)', `nd(u,m)'. + + Некоторые из функций могут быть +недоступны если флаг NO_GSL был определен +при компиляции библиотеки MathGL. + + При разборе формул нет различия +между верхним и нижним регистром. Если +аргумент лежит вне области +определения функции, то возвращается NaN.  @@ -588,8 +835,10 @@ File: mgl_ru.info, Node: Graphics setup, Next: Axis settings, Prev: General c 1.2 Настройка графика ===================================== -Команды в этой группе влияют на вид всего рисунка. Соответственно они -должны располагаться _перед_ вызовом функций непосредственно рисующих +Команды в этой группе влияют на вид +всего рисунка. Соответственно они +должны располагаться _перед_ вызовом +функций непосредственно рисующих графики. * Menu: @@ -608,36 +857,53 @@ File: mgl_ru.info, Node: Transparency, Next: Lighting, Up: Graphics setup 1.2.1 Прозрачность ------------------------------ -Эти команды настраивают тип и степень прозрачности поверхностей. -Главной является функция *note alpha::, которая включает/выключает -прозрачность для всех графиков, созданных после вызова *note alpha::. -Функция *note alphadef:: устанавливает величину alpha-канала по -умолчанию. Прозрачность можно выключить для отдельного графика с -помощью *note transparent::. Наконец, функция *note transptype:: задает -тип прозрачности. См. раздел *note Transparent surface sample::, для +Эти команды настраивают тип и степень +прозрачности поверхностей. Главной +является функция *note alpha::, которая +включает/выключает прозрачность для +всех графиков, созданных после вызова +*note alpha::. Функция *note alphadef:: +устанавливает величину alpha-канала по +умолчанию. Прозрачность можно +выключить для отдельного графика с +помощью *note transparent::. Наконец, функция +*note transptype:: задает тип прозрачности. См. +раздел *note Transparent surface sample::, для примеров кода и графика. -- Команда MGL: alpha `[val=on]' - Включает/выключает прозрачность для _всего_ рисунка. По умолчанию - прозрачность выключена. Используйте `transparent off' для - конкретного графика для выключения прозрачности. + Включает/выключает прозрачность + для _всего_ рисунка. По умолчанию + прозрачность выключена. + Используйте `transparent off' для + конкретного графика для выключения + прозрачности. -- Команда MGL: alphadef `val' - Задает значение прозрачности по умолчанию для всех графиков. + Задает значение прозрачности по + умолчанию для всех графиков. Начальное значение 0.5. -- Команда MGL: transparent `val' - Временно включает/возвращает прозрачность графиков. + Временно включает/возвращает + прозрачность графиков. -- Команда MGL: transptype `val' - Задает тип прозрачности. Обычная прозрачность (`0') - "закрытые" - объекты видны меньше чем закрывающие. "Стеклянная" прозрачность - (`1') - закрытые и закрывающие объекты единообразно ослабляют - интенсивность света (по RGB каналам). "Ламповая" прозрачность - (`2') - закрытые и закрывающие объекты являются источниками - дополнительного освещения (рекомендую установить `alphadef 0.3' - или меньше в этом случае). *Note Normal transparency::, *note - Glass-like transparency::, *note Lamp-like transparency::. + Задает тип прозрачности. Обычная + прозрачность (`0') - "закрытые" объекты + видны меньше чем закрывающие. + "Стеклянная" прозрачность (`1') - + закрытые и закрывающие объекты + единообразно ослабляют + интенсивность света (по RGB каналам). + "Ламповая" прозрачность (`2') - + закрытые и закрывающие объекты + являются источниками + дополнительного освещения + (рекомендую установить `alphadef 0.3' или + меньше в этом случае). *Note Normal + transparency::, *note Glass-like transparency::, *note Lamp-like + transparency::.  File: mgl_ru.info, Node: Lighting, Next: Fog, Prev: Transparency, Up: Graphics setup @@ -645,27 +911,36 @@ File: mgl_ru.info, Node: Lighting, Next: Fog, Prev: Transparency, Up: Graphi 1.2.2 Освещение ------------------------ -Эти функции настраивают освещение графика. Главная функция *note -light:: включает/выключает освещение графиков построенных после ее -вызова. MathGL поддерживает до 10 независимых источников света. -Положение, цвет, яркость каждого источника света можно задавать по -отдельности. По умолчанию включен только первый (с порядковым номером -`0') источник света белого цвета, расположенный сверху. +Эти функции настраивают освещение +графика. Главная функция *note light:: +включает/выключает освещение графиков +построенных после ее вызова. MathGL +поддерживает до 10 независимых +источников света. Положение, цвет, +яркость каждого источника света можно +задавать по отдельности. По умолчанию +включен только первый (с порядковым +номером `0') источник света белого +цвета, расположенный сверху. -- Команда MGL: light `[val=on]' - Включает/выключает освещение графика. По умолчанию освещение + Включает/выключает освещение + графика. По умолчанию освещение выключено. -- Команда MGL: light `n val' - Включает/выключает N-ый источник света. + Включает/выключает N-ый источник + света. -- Команда MGL: light `n xpos ypos zpos' ['col'='w' `br=0.5'] - Добавляет источник света с номером N в положение {XPOS, YPOS, - ZPOS} с цветом COL и яркостью BR, которая должна быть в диапазоне - [0,1]. + Добавляет источник света с номером N + в положение {XPOS, YPOS, ZPOS} с цветом COL и + яркостью BR, которая должна быть в + диапазоне [0,1]. -- Команда MGL: ambient `val' - Задает яркость рассеянного освещения. Значение должно быть в + Задает яркость рассеянного + освещения. Значение должно быть в диапазоне [0,1].  @@ -675,12 +950,15 @@ File: mgl_ru.info, Node: Fog, Next: Default sizes, Prev: Lighting, Up: Graph ---------------- -- Команда MGL: fog `val [dz=0.25]' - Имитирует туман на графике. Туман начинается на относительном - расстоянии DZ от точки обзора и его плотность растет - экспоненциально вглубь по закону ~1-exp(-d*z). Здесь _z_ - - нормализованная на 1 глубина графика. Если D=`0' то туман - отсутствует. См. раздел *note Surface in fog sample::, для - примеров кода и графика. + Имитирует туман на графике. Туман + начинается на относительном + расстоянии DZ от точки обзора и его + плотность растет экспоненциально + вглубь по закону ~1-exp(-d*z). Здесь _z_ - + нормализованная на 1 глубина + графика. Если D=`0' то туман + отсутствует. См. раздел *note Surface in fog + sample::, для примеров кода и графика.  File: mgl_ru.info, Node: Default sizes, Next: Zooming, Prev: Fog, Up: Graphics setup @@ -688,38 +966,52 @@ File: mgl_ru.info, Node: Default sizes, Next: Zooming, Prev: Fog, Up: Graphi 1.2.4 Базовые размеры ----------------------------------- -Эти команды задают величины большинства параметров графика, включая -размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие -настройки, они подействуют только на графики созданные после изменения +Эти команды задают величины +большинства параметров графика, +включая размеры маркеров, стрелок, +толщину линий и т.д. Как и любые другие +настройки, они подействуют только на +графики созданные после изменения настроек. -- Команда MGL: barwidth `val' - Относительный размер прямоугольников в `bars, barh, boxplot'. + Относительный размер + прямоугольников в `bars, barh, boxplot'. Значение по умолчанию `0.7'. -- Команда MGL: marksize `val' - Размер маркеров для *note 1D plotting::. Значение по умолчанию `1'. + Размер маркеров для *note 1D plotting::. + Значение по умолчанию `1'. -- Команда MGL: arrowsize `val' - Размер стрелок для *note 1D plotting::, линий и кривых (*note - Primitives drawing::). Значение по умолчанию `1'. + Размер стрелок для *note 1D plotting::, линий + и кривых (*note Primitives drawing::). Значение + по умолчанию `1'. -- Команда MGL: linewidth `val' - Базовая толщина линий. Значения <1 игнорируются. Для значений >1 - реальная толщина получается перемножением указанной ширины линии - на данное значение. Увеличение ширины линии актуально для больших - растровых рисунков. Значение по умолчанию `1'. + Базовая толщина линий. Значения <1 + игнорируются. Для значений >1 + реальная толщина получается + перемножением указанной ширины + линии на данное значение. + Увеличение ширины линии актуально + для больших растровых рисунков. + Значение по умолчанию `1'. -- Команда MGL: ticklen `val' [`stt=1'] - Относительная длина меток осей координат. Значение по умолчанию - `0.1'. Параметр STT>0 задает относительную длину подметок, которые - в `sqrt(1+stt)' раз меньше. + Относительная длина меток осей + координат. Значение по умолчанию + `0.1'. Параметр STT>0 задает + относительную длину подметок, + которые в `sqrt(1+stt)' раз меньше. -- Команда MGL: tickstl 'stl' ['sub'="] - Стиль меток (STL) и подметок (SUB) осей координат. Если `stl=''', - то используется стиль по умолчанию (`k' или `w' в зависимости от - типа прозрачности). Если `sub=''', то используется стиль меток - (т.е. STL). + Стиль меток (STL) и подметок (SUB) осей + координат. Если `stl=''', то + используется стиль по умолчанию (`k' + или `w' в зависимости от типа + прозрачности). Если `sub=''', то + используется стиль меток (т.е. STL).  File: mgl_ru.info, Node: Zooming, Next: Cutting, Prev: Default sizes, Up: Graphics setup @@ -727,23 +1019,34 @@ File: mgl_ru.info, Node: Zooming, Next: Cutting, Prev: Default sizes, Up: Gr 1.2.5 Масштабирование ------------------------------------ -Эти команды управляют масштабированием всего рисунка (*note zoom::) или -отдельной картинки (*note plotfactor::). Обычно эти функции -используются для удаления пустого места вокруг графиков. +Эти команды управляют +масштабированием всего рисунка (*note +zoom::) или отдельной картинки (*note +plotfactor::). Обычно эти функции +используются для удаления пустого +места вокруг графиков. -- Команда MGL: plotfactor `val' - Масштаб картинки (значение должно быть больше 1). Не рекомендуется - устанавливать значения меньше 1.5. Это аналог *note zoom::, но - применяется только к конкретной картинке, заданной *note inplot::. - Используйте ноль для включения автоматического масштабирования. + Масштаб картинки (значение должно + быть больше 1). Не рекомендуется + устанавливать значения меньше 1.5. + Это аналог *note zoom::, но применяется + только к конкретной картинке, + заданной *note inplot::. Используйте ноль + для включения автоматического + масштабирования. -- Команда MGL: zoom `x1 y1 x2 y2' - Масштабирует весь рисунок. После вызова функции текущий график - будет очищен и в дальнейшем рисунок будет содержать только область - [x1,x2]*[y1,y2] от исходного рисунка. Координаты X1, X2, Y1, Y2 - меняются в диапазоне от 0 до 1. Внимание! эти настройки не могут - быть переписаны никакими другими функциями. Используйте `zoom 0 0 - 1 1' для перехода в масштаб по умолчанию. + Масштабирует весь рисунок. После + вызова функции текущий график будет + очищен и в дальнейшем рисунок будет + содержать только область [x1,x2]*[y1,y2] + от исходного рисунка. Координаты X1, + X2, Y1, Y2 меняются в диапазоне от 0 до 1. + Внимание! эти настройки не могут + быть переписаны никакими другими + функциями. Используйте `zoom 0 0 1 1' для + перехода в масштаб по умолчанию.  File: mgl_ru.info, Node: Cutting, Next: Other settings, Prev: Zooming, Up: Graphics setup @@ -751,26 +1054,39 @@ File: mgl_ru.info, Node: Cutting, Next: Other settings, Prev: Zooming, Up: G 1.2.6 Обрезание ------------------------ -Эти команды задают условия когда точка будет исключена (вырезана) из -рисования. Замечу, что все точки со значением(-ями) `nan' по одной из -координат или амплитуде автоматически исключаются из рисования. +Эти команды задают условия когда точка +будет исключена (вырезана) из +рисования. Замечу, что все точки со +значением(-ями) `nan' по одной из +координат или амплитуде автоматически +исключаются из рисования. -- Команда MGL: cut `val' - Задает обрезание точек за пределами осей координат. Если `on' то - такие точки исключаются из рисования (это по умолчанию) иначе они - проецируются на ограничивающий прямоугольник. + Задает обрезание точек за пределами + осей координат. Если `on' то такие + точки исключаются из рисования (это + по умолчанию) иначе они + проецируются на ограничивающий + прямоугольник. -- Команда MGL: cut `x1 y1 z1 x2 y2 z2' - Задает границы параллелепипеда внутри которого точки не рисуются. - Если границы одинаковы (переменные равны), то параллелепипеда - считается пустым. См. раздел *note CutMinMax sample::, для - примеров кода и графика. + Задает границы параллелепипеда + внутри которого точки не рисуются. + Если границы одинаковы (переменные + равны), то параллелепипеда + считается пустым. См. раздел *note + CutMinMax sample::, для примеров кода и + графика. -- Команда MGL: cut 'cond' - Задает условие обрезания по формуле COND. Это условие исключает - точки из рисования если результат вычисления формулы не равен - нулю. Установите аргумент `''' для выключения условия обрезания. - См. раздел *note CutOff sample::, для примеров кода и графика. + Задает условие обрезания по формуле + COND. Это условие исключает точки из + рисования если результат + вычисления формулы не равен нулю. + Установите аргумент `''' для + выключения условия обрезания. См. + раздел *note CutOff sample::, для примеров + кода и графика.  File: mgl_ru.info, Node: Other settings, Prev: Cutting, Up: Graphics setup @@ -779,33 +1095,44 @@ File: mgl_ru.info, Node: Other settings, Prev: Cutting, Up: Graphics setup ------------------------------------- -- Команда MGL: font 'fnt' [`val=6'] - Задает стиль и размер шрифта (*note Text printing::). Вначале - используется `rC' - прямой шрифт с выравниванием по центру. По - умолчанию размер подписей оси координат в 1.4 раза больше. + Задает стиль и размер шрифта (*note Text + printing::). Вначале используется `rC' - + прямой шрифт с выравниванием по + центру. По умолчанию размер + подписей оси координат в 1.4 раза + больше. -- Команда MGL: rotatetext `val' - Включает/выключает вращение меток и подписей осей координат вдоль - оси. Начальное значение `on'. + Включает/выключает вращение меток и + подписей осей координат вдоль оси. + Начальное значение `on'. -- Команда MGL: palette 'colors' - Задает палитру как последовательность цветов. Значение по - умолчанию `"Hbgrcmyhlnqeup"', что соответствует цветам: темно - серый `H', синий `b', зеленый `g', красный `r', голубой `c', - малиновый `m', желтый `y', серый `h', сине-зеленый `l', - небесно-голубой `n', оранжевый `q', желто-зеленый `e', - сине-фиолетовый `u', фиолетовый `p'. Палитра в основном - используется в 1D графиках (*note 1D plotting::) для кривых с - неопределенным стилем линии. + Задает палитру как + последовательность цветов. + Значение по умолчанию `"Hbgrcmyhlnqeup"', + что соответствует цветам: темно + серый `H', синий `b', зеленый `g', красный + `r', голубой `c', малиновый `m', желтый `y', + серый `h', сине-зеленый `l', + небесно-голубой `n', оранжевый `q', + желто-зеленый `e', сине-фиолетовый `u', + фиолетовый `p'. Палитра в основном + используется в 1D графиках (*note 1D + plotting::) для кривых с неопределенным + стилем линии. -- Команда MGL: meshnum `num' - Задает ориентировочное число линий в *note mesh::, *note fall::, - *note grid::, число стрелок (штрихов) в *note vect::, *note dew:: - и число ячеек в *note cloud::. По умолчанию (=0) рисуются все - линии, стрелки, ячейки. + Задает ориентировочное число линий + в *note mesh::, *note fall::, *note grid::, число + стрелок (штрихов) в *note vect::, *note dew:: и + число ячеек в *note cloud::. По умолчанию + (=0) рисуются все линии, стрелки, + ячейки. -- Команда MGL: axialdir 'dir' - Задает ось вращения для *note axial::, *note torus::. По умолчанию - это 'z'. + Задает ось вращения для *note axial::, *note + torus::. По умолчанию это 'z'.  File: mgl_ru.info, Node: Axis settings, Next: Transformation matrix, Prev: Graphics setup, Up: MGL interface @@ -813,117 +1140,161 @@ File: mgl_ru.info, Node: Axis settings, Next: Transformation matrix, Prev: Gr 1.3 Параметры осей координат ================================================== -Этот большой набор команд определяет вид осей и меток координат. Перед -построением для каждой точки выполняются 3 преобразования: сначала -определяется возможность рисования точки (*note Cutting::), далее -применяются формулы перехода к криволинейным координатам и наконец -точка отображается. +Этот большой набор команд определяет +вид осей и меток координат. Перед +построением для каждой точки +выполняются 3 преобразования: сначала +определяется возможность рисования +точки (*note Cutting::), далее применяются +формулы перехода к криволинейным +координатам и наконец точка +отображается. -- Команда MGL: axis `x1 y1 x2 y2' -- Команда MGL: axis `x1 y1 z1 x2 y2 z2' -- Команда MGL: ranges `x1 x2 y1 y2 [z1=0 z2=0]' - Задает диапазон изменения координат. Если минимальное и - максимальное значение координаты равны, то они игнорируются по - данному направлению. Также устанавливает размер цветовой шкалы, - аналогично команде `caxis z1 z2'. Начальные диапазоны равны [-1, - 1]. + Задает диапазон изменения + координат. Если минимальное и + максимальное значение координаты + равны, то они игнорируются по + данному направлению. Также + устанавливает размер цветовой + шкалы, аналогично команде `caxis z1 z2'. + Начальные диапазоны равны [-1, 1]. -- Команда MGL: axis 'fx' 'fy' ['fz'=" 'fa'="] - Задает формулы перехода к криволинейным координатам. Каждая строка - является математическим выражением, зависящим от старых координат - `x', `y', `z' и `a' или `c' для цветовой шкалы. Например, для - цилиндрических координат будет `axis 'x*cos(y)' 'x*sin(y)' 'z''. - Для удаления формул соответствующий параметр должен быть пустым - `'''. Использование формул преобразования слегка замедляет - программу, т.е.. `axis '' '' ''' быстрее чем `axis '1*x' '1*y' - '1*z''. Параметр FA задает аналогичную формулу для цветовой шкалы. - *Note Textual formulas::. + Задает формулы перехода к + криволинейным координатам. Каждая + строка является математическим + выражением, зависящим от старых + координат `x', `y', `z' и `a' или `c' для + цветовой шкалы. Например, для + цилиндрических координат будет `axis + 'x*cos(y)' 'x*sin(y)' 'z''. Для удаления формул + соответствующий параметр должен + быть пустым `'''. Использование + формул преобразования слегка + замедляет программу, т.е.. `axis '' '' ''' + быстрее чем `axis '1*x' '1*y' '1*z''. Параметр + FA задает аналогичную формулу для + цветовой шкалы. *Note Textual formulas::. -- Команда MGL: axis `how' - Устанавливает одну из предопределенных систем криволинейных - координат в зависимости от параметра HOW: `0' - декартова система - (нет преобразования координат, наиболее быстрая); `1' - полярные - координаты x_n=x*cos(y),y_n=x*sin(y), z_n=z; `2' - сферические - координаты x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y); - `3' - параболические координаты x_n=x*y, y_n=(x*x-y*y)/2, z_n=z; - `4' - Paraboloidal coordinates x_n=(x*x-y*y)*cos(z)/2, + Устанавливает одну из + предопределенных систем + криволинейных координат в + зависимости от параметра HOW: `0' - + декартова система (нет + преобразования координат, наиболее + быстрая); `1' - полярные координаты + x_n=x*cos(y),y_n=x*sin(y), z_n=z; `2' - сферические + координаты x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), + z_n=x*cos(y); `3' - параболические + координаты x_n=x*y, y_n=(x*x-y*y)/2, z_n=z; `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; `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); `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); `7' - эллиптические координаты - x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z; `8' - тороидальные - координаты x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), + z_n=cosh(x)*cos(y); `7' - эллиптические + координаты x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), + z_n=z; `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)); - `9' - бисферические координаты x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), + `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)); - `10' - биполярные координаты x_n=sinh(x)/(cosh(x)-cos(y)), - y_n=sin(y)/(cosh(x)-cos(y)), z_n=z. + `10' - биполярные координаты + x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z. -- Команда MGL: caxis `z1 z2' - Задает масштаб цветовой шкалы (c-координаты). Эти значения - используются для определения цвета поверхностей и прочих 2D и 3D - графиков. Начальный диапазон равен [-1, 1]. + Задает масштаб цветовой шкалы + (c-координаты). Эти значения + используются для определения цвета + поверхностей и прочих 2D и 3D + графиков. Начальный диапазон равен + [-1, 1]. -- Команда MGL: origin `x0 y0 [z0=nan]' - Задает центр пересечения осей координат. Если одно из значений - равно `nan', то выбрается оптимальное положение осей координат по - этому направлению. + Задает центр пересечения осей + координат. Если одно из значений + равно `nan', то выбрается оптимальное + положение осей координат по этому + направлению. -- Команда MGL: ternary `val' - Задает рисование треугольных (Ternary) осей координат. Это - специальный тип графика для 3 зависимых координат (компонент) A, - B, C таких, что A+B+C=1. MathGL использует только 2 независимые - координаты A=x и B=y поскольку их достаточно для построения всех - графиков. При этом третья координата z является независимым - параметром для построения линий уровня, поверхностей и т.д. См. - раздел *note Ternary plot sample::, для примеров кода и графика. + Задает рисование треугольных (Ternary) + осей координат. Это специальный тип + графика для 3 зависимых координат + (компонент) A, B, C таких, что A+B+C=1. MathGL + использует только 2 независимые + координаты A=x и B=y поскольку их + достаточно для построения всех + графиков. При этом третья + координата z является независимым + параметром для построения линий + уровня, поверхностей и т.д. См. + раздел *note Ternary plot sample::, для примеров + кода и графика. -- Команда MGL: xrange dat [`add=off fact=0'] -- Команда MGL: yrange dat [`add=off fact=0'] -- Команда MGL: zrange dat [`add=off fact=0'] -- Команда MGL: crange dat [`add=off fact=0'] - Задает диапазон изменения x-,y-,z-,c- координат как минимальное и - максимальное значение массива DAT. Параметр ADD указывает - добавлять новый диапазон к существующему или заменять его. - Параметр FACT дополнительно расширяет диапазон на величину - (MAX-MIN)*FACT. + Задает диапазон изменения x-,y-,z-,c- + координат как минимальное и + максимальное значение массива DAT. + Параметр ADD указывает добавлять + новый диапазон к существующему или + заменять его. Параметр FACT + дополнительно расширяет диапазон + на величину (MAX-MIN)*FACT. -- Команда MGL: xrange `x1 x2' -- Команда MGL: yrange `x1 x2' -- Команда MGL: zrange `x1 x2' -- Команда MGL: crange `x1 x2' - Задает диапазон изменения x-,y-,z-,c- координат. См. также *note - axis::. + Задает диапазон изменения x-,y-,z-,c- + координат. См. также *note axis::. -- Команда MGL: xtick `val [sub=0 org=nan]' -- Команда MGL: ytick `val [sub=0 org=nan]' -- Команда MGL: ztick `val [sub=0 org=nan]' -- Команда MGL: ctick `val' - Задает шаг меток осей VAL, число подметок NS и начальное положение - меток ORG. Переменная VAL задает шаг меток (если положительна) или - их число на оси (если отрицательна). Нулевое значение задает - логарифмические метки. Если ORG=`NAN', то используется значение из - *note origin::. + Задает шаг меток осей VAL, число + подметок NS и начальное положение + меток ORG. Переменная VAL задает шаг + меток (если положительна) или их + число на оси (если отрицательна). + Нулевое значение задает + логарифмические метки. Если ORG=`NAN', + то используется значение из *note origin::. -- Команда MGL: xtick 'templ' -- Команда MGL: ytick 'templ' -- Команда MGL: ztick 'templ' -- Команда MGL: ctick 'templ' - Задает шаблоны для меток вдоль x-,y-,z-оси или colorbar. Шаблон - может содержать и символы TeX. Если XTT, YTT, ZTT, CTT=`''', то - используется шаблон по умолчанию (в простейшем случае `%.2g'). - Установка шаблона выключает автоматическое улучшение вида меток. + Задает шаблоны для меток вдоль + x-,y-,z-оси или colorbar. Шаблон может + содержать и символы TeX. Если XTT, YTT, ZTT, + CTT=`''', то используется шаблон по + умолчанию (в простейшем случае `%.2g'). + Установка шаблона выключает + автоматическое улучшение вида + меток. -- Команда MGL: xtick `val1' 'lbl1' [`val2' 'lbl2' ...] -- Команда MGL: ytick `val1' 'lbl1' [`val2' 'lbl2' ...] -- Команда MGL: ztick `val1' 'lbl1' [`val2' 'lbl2' ...] - Задает явное положение VAL и подписи LBL для меток вдоль оси. - Метки могут содержать и символы TeX. + Задает явное положение VAL и подписи + LBL для меток вдоль оси. Метки могут + содержать и символы TeX. -- Команда MGL: adjust ['dir'='xyzc'] - Автоматически задает шаг меток осей, число подметок и начальное - положение меток для осей координат DIR в виде наиболее удобном для + Автоматически задает шаг меток + осей, число подметок и начальное + положение меток для осей координат + DIR в виде наиболее удобном для человека.  @@ -932,68 +1303,99 @@ File: mgl_ru.info, Node: Transformation matrix, Next: Export to file, Prev: A 1.4 Матрица преобразования =============================================== -Эти команды контролируют где и как график будет расположен. Существует -определенный порядок вызова этих функций для лучшего вида графика. -Вначале должны вызываться команды *note subplot:: или *note inplot:: -для указания местоположения вывода. После них - команды вращения *note -rotate:: и сжатия *note aspect::. И наконец любые другие функции для -рисования графика. Вместо вращения графика можно вызвать команды *note -columnplot:: для расположения графиков в столбец одного над другим или -*note stickplot:: для расположения в линейку. +Эти команды контролируют где и как +график будет расположен. Существует +определенный порядок вызова этих +функций для лучшего вида графика. +Вначале должны вызываться команды *note +subplot:: или *note inplot:: для указания +местоположения вывода. После них - +команды вращения *note rotate:: и сжатия *note +aspect::. И наконец любые другие функции +для рисования графика. Вместо вращения +графика можно вызвать команды *note +columnplot:: для расположения графиков в +столбец одного над другим или *note +stickplot:: для расположения в линейку. -- Команда MGL: subplot `nx ny m [dx=0 dy=0]' - Помещает последующий вывод в M-ую ячейку сетки размером NX*NY от - всего рисунка. Функция сбрасывает матрицу трансформации (повороты - и сжатие графика) и должна вызываться первой для создания - "подграфика". С эстетической точки зрения не рекомендуется - вызывать эту функцию с различными (или не кратными) размерами - сетки. Ячейка может быть дополнительно сдвинута относительно - своего обычного положения на относительный размер DX, DY. + Помещает последующий вывод в M-ую + ячейку сетки размером NX*NY от всего + рисунка. Функция сбрасывает матрицу + трансформации (повороты и сжатие + графика) и должна вызываться первой + для создания "подграфика". С + эстетической точки зрения не + рекомендуется вызывать эту функцию + с различными (или не кратными) + размерами сетки. Ячейка может быть + дополнительно сдвинута + относительно своего обычного + положения на относительный размер + DX, DY. -- Команда MGL: subplot `nx ny m' 'style' - Аналогично предыдущему, но место для осей/colorbar резервируется - только если строка STYLE содержит: `L' или `<' - с левого края, - `R' или `>' - с правого края, `A' или `^' - с верхнего края, `U' + Аналогично предыдущему, но место + для осей/colorbar резервируется только + если строка STYLE содержит: `L' или `<' - с + левого края, `R' или `>' - с правого + края, `A' или `^' - с верхнего края, `U' или `_' - с нижнего края. -- Команда MGL: inplot `x1 x2 y1 y2 [rel=off]' - Помещает последующий вывод в прямоугольную область [X1, X2]*[Y1, - Y2] (исходный размер [0,1]*[0,1]). Эта функция позволяет поместить - график в произвольную область рисунка. Если параметр REL=`on', то - используется позиция относительно текщего *note subplot:: (или - *note inplot:: с REL=`off'). Функция сбрасывает матрицу - трансформации (повороты и сжатие графика) и должна вызываться - первой для создания "подграфика". + Помещает последующий вывод в + прямоугольную область [X1, X2]*[Y1, Y2] + (исходный размер [0,1]*[0,1]). Эта функция + позволяет поместить график в + произвольную область рисунка. Если + параметр REL=`on', то используется + позиция относительно текщего *note + subplot:: (или *note inplot:: с REL=`off'). Функция + сбрасывает матрицу трансформации + (повороты и сжатие графика) и должна + вызываться первой для создания + "подграфика". -- Команда MGL: columnplot `num ind [d=0]' - Помещает последующий вывод в IND-ую строку столбца из NUM строк. - Положение столбца выбирается относительно последнего вызова *note - subplot:: (или *note inplot:: с REL=`off'). Параметр D задает - дополнительный зазор между строк. См. раздел *note ColumnPlot - sample::, для примеров кода и графика. + Помещает последующий вывод в IND-ую + строку столбца из NUM строк. + Положение столбца выбирается + относительно последнего вызова *note + subplot:: (или *note inplot:: с REL=`off'). Параметр D + задает дополнительный зазор между + строк. См. раздел *note ColumnPlot sample::, для + примеров кода и графика. -- Команда MGL: stickplot `num ind tet phi' - Помещает последующий вывод в IND-ую ячейку "бруска" из NUM ячеек. - При этом сам брусок повернут на углы TET, PHI. Положение - выбирается относительно последнего вызова *note subplot:: (или - *note inplot:: с REL=`off'). См. раздел *note StickPlot sample::, - для примеров кода и графика. + Помещает последующий вывод в IND-ую + ячейку "бруска" из NUM ячеек. При этом + сам брусок повернут на углы TET, PHI. + Положение выбирается относительно + последнего вызова *note subplot:: (или *note + inplot:: с REL=`off'). См. раздел *note StickPlot + sample::, для примеров кода и графика. -- Команда MGL: rotate `tetz tetx [tety=0]' - Вращает систему координат относительно осей {x, z, y} + Вращает систему координат + относительно осей {x, z, y} последовательно на углы TETX, TETZ, TETY. -- Команда MGL: rotate `tet x y z' - Вращает систему координат относительно вектора {X, Y, Z} на угол + Вращает систему координат + относительно вектора {X, Y, Z} на угол TET. -- Команда MGL: aspect `ax ay [az=1]' - Устанавливает соотношение размеров осей в отношении AX:AY:AZ. Для - лучшего вида следует вызывать после функции *note rotate::. + Устанавливает соотношение размеров + осей в отношении AX:AY:AZ. Для лучшего + вида следует вызывать после функции + *note rotate::. -- Команда MGL: perspective `val' - Добавляет (включает) перспективу для графика. Параметр val ~ - 1/z_{eff} \in [0,1). По умолчанию (`val=0') перспектива отключена. + Добавляет (включает) перспективу + для графика. Параметр val ~ 1/z_{eff} \in [0,1). + По умолчанию (`val=0') перспектива + отключена.  File: mgl_ru.info, Node: Export to file, Next: Primitives drawing, Prev: Transformation matrix, Up: MGL interface @@ -1002,15 +1404,22 @@ File: mgl_ru.info, Node: Export to file, Next: Primitives drawing, Prev: Tran ============================== -- Команда MGL: write 'fname' [`solid=off'] - Экспортирует текущий кадр в файл 'fname' (тип определяется по - расширению). Параметр SOLID задает вывод картинки на текущем фоне - (обычно белом) или полупрозрачной. Если 'fname'=", то используется - имя `frame####.jpg', где `####' - текущий номер кадра. + Экспортирует текущий кадр в файл + 'fname' (тип определяется по + расширению). Параметр SOLID задает + вывод картинки на текущем фоне + (обычно белом) или полупрозрачной. + Если 'fname'=", то используется имя + `frame####.jpg', где `####' - текущий номер + кадра. -- Команда MGL: setsize `w h' - Изменяет размер картинки в пикселях. Функция должна вызываться - *перед* любыми функциями построения потому что полностью очищает - содержимое рисунка. В некоторых программах исполнение этой команды + Изменяет размер картинки в + пикселях. Функция должна вызываться + *перед* любыми функциями построения + потому что полностью очищает + содержимое рисунка. В некоторых + программах исполнение этой команды может запрещено.  @@ -1019,68 +1428,94 @@ File: mgl_ru.info, Node: Primitives drawing, Next: Text printing, Prev: Expor 1.6 Рисование примитивов =========================================== -Эти команды рисуют рисуют простые объекты типа линий, точек, сфер, -капель, конусов, и т.д. +Эти команды рисуют рисуют простые +объекты типа линий, точек, сфер, капель, +конусов, и т.д. -- Команда MGL: clf - Очищает рисунок и заполняет его цветом по умолчанию (обычно белым). + Очищает рисунок и заполняет его + цветом по умолчанию (обычно белым). -- Команда MGL: ball `x y' ['col'='r'] -- Команда MGL: ball `x y z' ['col'='r'] - Рисует точку (шарик) с координатами {X, Y, Z} и цветом COL. + Рисует точку (шарик) с координатами + {X, Y, Z} и цветом COL. -- Команда MGL: line `x1 y1 x2 y2' ['stl'="] -- Команда MGL: line `x1 y1 z1 x2 y2 z2' ['stl'="] - Рисует геодезическую линию (декартовых координатах - прямую) из - точки {X1,Y1,Z1} в {X2,Y2,Z2} использую стиль линии STL. Кривая - рисуется даже если часть ее лежит вне диапазона осей координат. + Рисует геодезическую линию + (декартовых координатах - прямую) из + точки {X1,Y1,Z1} в {X2,Y2,Z2} использую стиль + линии STL. Кривая рисуется даже если + часть ее лежит вне диапазона осей + координат. -- Команда MGL: curve `x1 y1 dx1 dy1 x2 y2 dx2 dy2' ['stl'="] - -- Команда MGL: curve `x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2' - ['stl'="] - Рисует кривую Безье из точки {X1,Y1,Z1} в {X2,Y2,Z2} использую - стиль линии STL. Касательные в точках пропорциональны - {DX1,DY1,DZ1}, {DX2,DY2,DZ2}. Кривая рисуется даже если часть ее + -- Команда MGL: curve `x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 + dz2' ['stl'="] + Рисует кривую Безье из точки {X1,Y1,Z1} в + {X2,Y2,Z2} использую стиль линии STL. + Касательные в точках + пропорциональны {DX1,DY1,DZ1}, {DX2,DY2,DZ2}. + Кривая рисуется даже если часть ее лежит вне диапазона осей координат. -- Команда MGL: facex `x0 y0 z0 wy wz' ['stl'=" `d1=0 d2=0'] -- Команда MGL: facey `x0 y0 z0 wx wz' ['stl'=" `d1=0 d2=0'] -- Команда MGL: facez `x0 y0 z0 wx wy' ['stl'=" `d1=0 d2=0'] - Рисует закрашенный прямоугольник (грань) перпендикулярно оси - [x,y,z] в точке {X0, Y0, Z0} цветом STL и шириной WX, WY, WZ вдоль - соответствующего направления. При этом цвет может быть один для - всей грани, или различным для разных вершин если указаны все 4 - цвета (полезно для градиента цвета, например `wwrr'). Параметры - D1!=0, D2!=0 задают дополнительный сдвиг последней точки (т.е. - рисуют четырехугольник). Грань будет нарисована даже если часть ее - лежит вне диапазона осей координат. + Рисует закрашенный прямоугольник + (грань) перпендикулярно оси [x,y,z] в + точке {X0, Y0, Z0} цветом STL и шириной WX, WY, + WZ вдоль соответствующего + направления. При этом цвет может + быть один для всей грани, или + различным для разных вершин если + указаны все 4 цвета (полезно для + градиента цвета, например `wwrr'). + Параметры D1!=0, D2!=0 задают + дополнительный сдвиг последней + точки (т.е. рисуют четырехугольник). + Грань будет нарисована даже если + часть ее лежит вне диапазона осей + координат. -- Команда MGL: sphere `x0 y0 r' ['col'='r'] -- Команда MGL: sphere `x0 y0 z0 r' ['col'='r'] - Рисует сферу радиуса R с центром в точке {X, Y, Z} цветом STL. + Рисует сферу радиуса R с центром в + точке {X, Y, Z} цветом STL. -- Команда MGL: drop `x0 y0 dx dy r' ['col'='b' `sh=1 asp=1'] - -- Команда MGL: drop `x0 y0 z0 dx dy dz r' ['col'='b' `sh=1 asp=1'] - Рисует каплю радиуса R в точке {X0,Y0,Z0} вытянутую вдоль - направления {DX,DY,DZ} цветом COL. Параметр SH определяет степень - вытянутости: `0' - сфера, `1' - классическая капля. Параметр ASP - определяет относительную ширину капли (аналог "эллиптичности" для - сферы). См. раздел *note Drops sample::, для примеров кода и - графика. + -- Команда MGL: drop `x0 y0 z0 dx dy dz r' ['col'='b' `sh=1 + asp=1'] + Рисует каплю радиуса R в точке {X0,Y0,Z0} + вытянутую вдоль направления {DX,DY,DZ} + цветом COL. Параметр SH определяет + степень вытянутости: `0' - сфера, `1' - + классическая капля. Параметр ASP + определяет относительную ширину + капли (аналог "эллиптичности" для + сферы). См. раздел *note Drops sample::, для + примеров кода и графика. -- Команда MGL: cone `x1 y1 z1 x2 y2 z2 r1' [`r2=-1' 'stl'=" `edge=off'] - Рисует трубу (или усеченный конус если EDGE=`off') между точками - {X1,Y1,Z1}, {X2,Y2,Z2} с радиусами на концах R1, R2. Если R2<0, то - полагается R2=R1. Цвет конуса задается строкой STL. + Рисует трубу (или усеченный конус + если EDGE=`off') между точками {X1,Y1,Z1}, + {X2,Y2,Z2} с радиусами на концах R1, R2. + Если R2<0, то полагается R2=R1. Цвет + конуса задается строкой STL. -- Команда MGL: rect `x1 y1 x2 y2' ['st'="] -- Команда MGL: rect `x1 y1 z1 x2 y2 z2' ['st'="] - Рисует закрашенный прямоугольник (грань) с противоположными - вершинами в точках {X1,Y1,Z1}, {X2,Y2,Z2} цветом STL. При этом - цвет может быть один для всей грани, или различным для разных - вершин если указаны все 4 цвета (полезно для градиента цвета, - например `wwrr'). Грань будет нарисована даже если часть ее лежит + Рисует закрашенный прямоугольник + (грань) с противоположными + вершинами в точках {X1,Y1,Z1}, {X2,Y2,Z2} + цветом STL. При этом цвет может быть + один для всей грани, или различным + для разных вершин если указаны все 4 + цвета (полезно для градиента цвета, + например `wwrr'). Грань будет + нарисована даже если часть ее лежит вне диапазона осей координат.  @@ -1089,56 +1524,82 @@ File: mgl_ru.info, Node: Text printing, Next: Axis and Colorbar, Prev: Primit 1.7 Вывод текста =========================== -Команды для вывода текста позволяют вывести строку текста в -произвольном месте рисунка, в произвольном направлении и вдоль -произвольной кривой. Можно использовать произвольное начертание шрифта -и многие ТеХ-ие команды (детальнее *note Font styles::). Аргумент SIZE -определяет размер текста: размер шрифта если положителен или -относительный размер (=-SIZE*FONTSIZE) если отрицателен. - - Параметры шрифта задаются строкой, которая может содержать символы -стиля (`rbiwou') и/или выравнивания (`LRC'). Также строка может -содержать символы цвета `wkrgbcymhRGBCYMHW' (*note Line styles::) после -символа `:'. Стили шрифта: `r' - прямой, `i' - курсив, `b' - жирный, -`w' - контурный, `o' - надчеркнутый, `u' - подчеркнутый. По умолчанию -используется прямой шрифт. Типы выравнивания: `L' - по левому краю (по -умолчанию), `C' - по центру, `R' - по правому краю. Например, строка -`iC:b' соответствует курсиву синего цвета с выравниванием по центру. По -умолчанию используются параметры, определенные командой *note font::. - - Если строка содержит символы `aA', то текст выводится в абсолютных -координатах (полагаются в диапазоне [0,1]). При этом используются -координаты относительно рисунка (если указано `A') или относительно -последнего *note subplot::/*note inplot:: (если указано `a'). +Команды для вывода текста позволяют +вывести строку текста в произвольном +месте рисунка, в произвольном +направлении и вдоль произвольной +кривой. Можно использовать +произвольное начертание шрифта и +многие ТеХ-ие команды (детальнее *note Font +styles::). Аргумент SIZE определяет размер +текста: размер шрифта если положителен +или относительный размер (=-SIZE*FONTSIZE) +если отрицателен. + + Параметры шрифта задаются строкой, +которая может содержать символы стиля +(`rbiwou') и/или выравнивания (`LRC'). Также +строка может содержать символы цвета +`wkrgbcymhRGBCYMHW' (*note Line styles::) после символа +`:'. Стили шрифта: `r' - прямой, `i' - курсив, +`b' - жирный, `w' - контурный, `o' - +надчеркнутый, `u' - подчеркнутый. По +умолчанию используется прямой шрифт. +Типы выравнивания: `L' - по левому краю +(по умолчанию), `C' - по центру, `R' - по +правому краю. Например, строка `iC:b' +соответствует курсиву синего цвета с +выравниванием по центру. По умолчанию +используются параметры, определенные +командой *note font::. + + Если строка содержит символы `aA', то +текст выводится в абсолютных +координатах (полагаются в диапазоне +[0,1]). При этом используются координаты +относительно рисунка (если указано `A') +или относительно последнего *note +subplot::/*note inplot:: (если указано `a'). -- Команда MGL: text `x y' 'text' ['fnt'=" `size=-1.4'] -- Команда MGL: text `x y z' 'text' ['fnt'=" `size=-1.4'] - Выводит строку TEXT от точки {X,Y,Z} шрифтом FNT и размером SIZE. + Выводит строку TEXT от точки {X,Y,Z} + шрифтом FNT и размером SIZE. -- Команда MGL: text `x y dx dy' 'text' [`size=-1.4'] -- Команда MGL: text `x y z dx dy dz' 'text' [`size=-1.4'] - Выводит строку TEXT от точки {X,Y,Z} вдоль направления {DX,DY,DZ} - шрифтом FNT и размером SIZE. + Выводит строку TEXT от точки {X,Y,Z} + вдоль направления {DX,DY,DZ} шрифтом FNT и + размером SIZE. -- Команда MGL: text ydat 'text' ['fnt'=" `size=-1 zval=nan'] - -- Команда MGL: text xdat ydat 'text' ['fnt'=" `size=-1 zval=nan'] + -- Команда MGL: text xdat ydat 'text' ['fnt'=" `size=-1 + zval=nan'] -- Команда MGL: text xdat ydat zdat 'text' ['fnt'=" `size=-1'] - Выводит строку TEXT вдоль кривой {XDAT[i], YDAT[i], ZDAT[i]} - шрифтом FONT. Строка FONT может содержать символы: `t' для вывода - текста под кривой (по умолчанию), или `T' для вывода текста над - кривой. Если массив XDAT не указан, то используется массив со - значениями равно распределенными вдоль оси x. Если массив ZDAT не - указан, то используется ZDAT[i] = ZVAL. См. раздел *note Text - sample::, для примеров кода и графика. + Выводит строку TEXT вдоль кривой {XDAT[i], + YDAT[i], ZDAT[i]} шрифтом FONT. Строка FONT + может содержать символы: `t' для + вывода текста под кривой (по + умолчанию), или `T' для вывода текста + над кривой. Если массив XDAT не указан, + то используется массив со + значениями равно распределенными + вдоль оси x. Если массив ZDAT не указан, + то используется ZDAT[i] = ZVAL. См. раздел + *note Text sample::, для примеров кода и + графика. -- Команда MGL: title 'text' ['fnt'=" `size=-2'] - Выводит строку TEXT как заголовок (сверху рисунка). Может - использоваться в любом месте (даже внутри *note subplot::). + Выводит строку TEXT как заголовок + (сверху рисунка). Может + использоваться в любом месте (даже + внутри *note subplot::). -- Команда MGL: fgets `x y' 'fname' [`n=0' 'fnt'=" `size=-1.4'] - -- Команда MGL: fgets `x y z' 'fname' [`n=0' 'fnt'=" `size=-1.4'] - Выводит N-ую строку файла FNAME от точки {X,Y,Z} шрифтом FNT и - размером SIZE. + -- Команда MGL: fgets `x y z' 'fname' [`n=0' 'fnt'=" + `size=-1.4'] + Выводит N-ую строку файла FNAME от + точки {X,Y,Z} шрифтом FNT и размером SIZE.  File: mgl_ru.info, Node: Axis and Colorbar, Next: Legend, Prev: Text printing, Up: MGL interface @@ -1146,57 +1607,83 @@ File: mgl_ru.info, Node: Axis and Colorbar, Next: Legend, Prev: Text printing 1.8 Оси и Colorbar ====================== -Эти команды рисуют объекты для "измерения" типа осей координат, -цветовой таблицы (colorbar), сетку по осям, обрамляющий параллелепипед -и подписи по осям координат. См. также *note Axis settings::. +Эти команды рисуют объекты для +"измерения" типа осей координат, +цветовой таблицы (colorbar), сетку по осям, +обрамляющий параллелепипед и подписи +по осям координат. См. также *note Axis +settings::. -- Команда MGL: axis ['dir'='xyz' `adjust=off'] - Рисует оси координат и метки на них (*note Axis settings::) в - направлениях, указанных строкой DIR. Если строка содержит символ - `_', то подписи меток отображаться не будут. Шрифт подписей - определяется командой *note font::. Метки будут "подогнаны" если + Рисует оси координат и метки на них + (*note Axis settings::) в направлениях, + указанных строкой DIR. Если строка + содержит символ `_', то подписи меток + отображаться не будут. Шрифт + подписей определяется командой *note + font::. Метки будут "подогнаны" если ADJUST=`on' (с помощью вызова `adjust 'dir''). -- Команда MGL: colorbar ['sch'=" `pos=0'] - Рисует полосу соответствия цвета и числовых значений (colorbar) - для цветовой схемы SCH (используется текущая для `sch=''') с краю - от графика. Параметр POS задает местоположение: `0' - справа (по - умолчанию), `1' - слева, `2' - сверху, `3' - снизу. Если строка - SCH содержит `<>^_', то параметр POS определяется как: `pos=0' для - `>' (справа), `pos=1' для `<' (слева), `pos=2' для `^' (сверху), - `pos=3' для `_' (снизу). Если строка содержит `A', то используются - абсолютные координаты (относительно рисунка). См. раздел *note - Dens sample::, для примеров кода и графика. + Рисует полосу соответствия цвета и + числовых значений (colorbar) для + цветовой схемы SCH (используется + текущая для `sch=''') с краю от графика. + Параметр POS задает местоположение: + `0' - справа (по умолчанию), `1' - слева, + `2' - сверху, `3' - снизу. Если строка SCH + содержит `<>^_', то параметр POS + определяется как: `pos=0' для `>' + (справа), `pos=1' для `<' (слева), `pos=2' для + `^' (сверху), `pos=3' для `_' (снизу). Если + строка содержит `A', то используются + абсолютные координаты + (относительно рисунка). См. раздел + *note Dens sample::, для примеров кода и + графика. -- Команда MGL: colorbar vdat ['sch'=" `pos=0'] - Аналогично предыдущему, но для цветовой схемы без сглаживания с - заданными значениями VDAT. См. раздел *note ContD sample::, для - примеров кода и графика. + Аналогично предыдущему, но для + цветовой схемы без сглаживания с + заданными значениями VDAT. См. раздел + *note ContD sample::, для примеров кода и + графика. -- Команда MGL: colorbar 'sch' `pos x y w h' - Аналогично первому, но в произвольном месте графика {X, Y} - (полагаются в диапазоне [0,1]). Параметры W, H задают - относительную ширину и высоту colorbar. + Аналогично первому, но в + произвольном месте графика {X, Y} + (полагаются в диапазоне [0,1]). + Параметры W, H задают относительную + ширину и высоту colorbar. -- Команда MGL: grid ['dir'='xyz' 'pen'='B'] - Рисует линии сетки в направлениях перпендикулярным DIR. Шаг сетки - такой же как у меток осей координат. Стиль линий задается - параметром PEN (по умолчанию - сплошная темно синяя линия `B-'). + Рисует линии сетки в направлениях + перпендикулярным DIR. Шаг сетки такой + же как у меток осей координат. Стиль + линий задается параметром PEN (по + умолчанию - сплошная темно синяя + линия `B-'). -- Команда MGL: box ['stl'='k' `ticks=on'] - Рисует ограничивающий параллелепипед цветом 'stl'. При `ticks=on' - рисуются метки в соответствии с текущими настройками осей + Рисует ограничивающий + параллелепипед цветом 'stl'. При `ticks=on' + рисуются метки в соответствии с + текущими настройками осей координат *note axis::. -- Команда MGL: xlabel 'text' [`pos=0 size=-1.4 shift=0'] -- Команда MGL: ylabel 'text' [`pos=0 size=-1.4 shift=0'] -- Команда MGL: zlabel 'text' [`pos=0 size=-1.4 shift=0'] -- Команда MGL: tlabel 'text' [`pos=0 size=-1.4 shift=0'] - Выводит подпись TEXT для x-,y-,z-,t-оси (где `t' - "тернарная" ось - t=1-x-y). Параметр POS задает положение подписи: при POS=0 - по - центру оси, при POS>0 - около максимальных значений, при POS<0 - - около минимальных значений. Параметр SIZE задает размер шрифта (по - умолчанию в 1.4 раза больше чем у меток). *Note Text printing::. + Выводит подпись TEXT для x-,y-,z-,t-оси + (где `t' - "тернарная" ось t=1-x-y). + Параметр POS задает положение + подписи: при POS=0 - по центру оси, при + POS>0 - около максимальных значений, + при POS<0 - около минимальных значений. + Параметр SIZE задает размер шрифта (по + умолчанию в 1.4 раза больше чем у + меток). *Note Text printing::.  File: mgl_ru.info, Node: Legend, Next: 1D plotting, Prev: Axis and Colorbar, Up: MGL interface @@ -1204,44 +1691,62 @@ File: mgl_ru.info, Node: Legend, Next: 1D plotting, Prev: Axis and Colorbar, 1.9 Легенда ================== -Эти команды обеспечивают рисование легенды графика (полезно для *note -1D plotting::). Запись в легенде состоит из двух строк: одна для стиля -линии и маркеров, другая с текстом описания (с включенным разбором -TeX-их команд), накапливаемые во внутренние массивы с помощью команды -*note addlegend:: или опции *note legend::. Положение легенды можно -задать автоматически или вручную. Параметры FONT и SIZE задают стиль и -размер шрифта. Параметр LLEN задает относительную ширину примера линии. -Ели стиль линии пустой, то соответствующий текст печатается без -отступа. Если строка FONT содержит символ `A', то координаты легенды -считаются относительно картинки (а не текущего subplot). См. раздел -*note Legend sample::, для примеров кода и графика. +Эти команды обеспечивают рисование +легенды графика (полезно для *note 1D +plotting::). Запись в легенде состоит из +двух строк: одна для стиля линии и +маркеров, другая с текстом описания (с +включенным разбором TeX-их команд), +накапливаемые во внутренние массивы с +помощью команды *note addlegend:: или опции *note +legend::. Положение легенды можно задать +автоматически или вручную. Параметры +FONT и SIZE задают стиль и размер шрифта. +Параметр LLEN задает относительную +ширину примера линии. Ели стиль линии +пустой, то соответствующий текст +печатается без отступа. Если строка FONT +содержит символ `A', то координаты +легенды считаются относительно +картинки (а не текущего subplot). См. раздел +*note Legend sample::, для примеров кода и +графика. -- Команда MGL: legend [`pos=3' 'fnt'='rL' `size=-1 llen=0.1'] - Рисует легенду из накопленных записей шрифтом FNT размером SIZE. - Параметр POS задает положение легенды: `0' - в нижнем левом углу, - `1' - нижнем правом углу, `2' - верхнем левом углу, `3' - верхнем - правом углу (по умолчанию). + Рисует легенду из накопленных + записей шрифтом FNT размером SIZE. + Параметр POS задает положение + легенды: `0' - в нижнем левом углу, `1' - + нижнем правом углу, `2' - верхнем + левом углу, `3' - верхнем правом углу + (по умолчанию). -- Команда MGL: legend `x y' ['fnt'='rL' `size=-1 llen=0.1'] - Рисует легенду из накопленных записей шрифтом FONT размером SIZE. - Положение легенды задается параметрами X, Y, которые полагаются + Рисует легенду из накопленных + записей шрифтом FONT размером SIZE. + Положение легенды задается + параметрами X, Y, которые полагаются нормированными в диапазоне [0,1]. -- Команда MGL: addlegend 'text' 'stl' - Добавляет описание TEXT кривой со стилем STL (*note Line styles::) - во внутренний массив записей легенды. Максимальное число записей - 100. + Добавляет описание TEXT кривой со + стилем STL (*note Line styles::) во внутренний + массив записей легенды. + Максимальное число записей 100. -- Команда MGL: clearlegend - Очищает внутренний массив записей легенды. + Очищает внутренний массив записей + легенды. -- Команда MGL: legendbox `val' - Включает/выключает рисование прямоугольника вокруг легенды. По - умолчанию (=`on') прямоугольник рисуется. + Включает/выключает рисование + прямоугольника вокруг легенды. По + умолчанию (=`on') прямоугольник + рисуется. -- Команда MGL: legendmarks `val' - Задает число маркеров в легенде. По умолчанию используется 1 - маркер. + Задает число маркеров в легенде. По + умолчанию используется 1 маркер.  File: mgl_ru.info, Node: 1D plotting, Next: 2D plotting, Prev: Legend, Up: MGL interface @@ -1249,142 +1754,207 @@ File: mgl_ru.info, Node: 1D plotting, Next: 2D plotting, Prev: Legend, Up: M 1.10 1D графики ====================== -Эти команды строят графики для одномерных (1D) массивов. Одномерными -считаются массивы, зависящие только от одного параметра (индекса) -подобно кривой в параметрической форме {x(i),y(i),z(i)}, i=1...n. Есть -5 основных типов 1D графиков: линия (*note plot::), линия с заполнением -(*note area::), ступеньки (*note step::), прямоугольники (*note bars::, -*note barh::) и вертикальные линии (*note stem::). Все эти типы -графиков имеют похожий интерфейс. Есть версии для рисования в -пространстве и на плоскости. В последнем случае имеется возможность -использования только одного массива. Стиль линии и маркеров указывается -строковой переменной. Если она равна `'''. Кроме того, есть еще -несколько типов графиков для одномерных массивов, имеющих другой -интерфейс и вид: поверхность вращения кривой (*note torus::), диаграмма -(*note chart::), размер ошибки (*note error::), маркеры переменного -размера (*note mark::), трубками (*note tube::) и т.д. См. раздел *note -1D plot sample::, для примеров кода и графика. - - График рисуется для каждой строки если один из массивов матрица. -Размер по 1-ой координате *должен быть одинаков* для всех массивов -`xdat.nx=ydat.nx=zdat.nx'. Если массив XDAT не указан, то используется -массив со значениями равно распределенными вдоль оси x. Если массив -ZDAT не указан, то используется ZDAT[i] = ZVAL. Строка STL задает цвет -и стиль линии и маркеров (*note Line styles::). По умолчанию (`stl=''') -рисуется сплошная линия с текущим цветом из палитры. +Эти команды строят графики для +одномерных (1D) массивов. Одномерными +считаются массивы, зависящие только от +одного параметра (индекса) подобно +кривой в параметрической форме +{x(i),y(i),z(i)}, i=1...n. Есть 5 основных типов 1D +графиков: линия (*note plot::), линия с +заполнением (*note area::), ступеньки (*note +step::), прямоугольники (*note bars::, *note barh::) и +вертикальные линии (*note stem::). Все эти +типы графиков имеют похожий интерфейс. +Есть версии для рисования в +пространстве и на плоскости. В +последнем случае имеется возможность +использования только одного массива. +Стиль линии и маркеров указывается +строковой переменной. Если она равна +`'''. Кроме того, есть еще несколько +типов графиков для одномерных +массивов, имеющих другой интерфейс и +вид: поверхность вращения кривой (*note +torus::), диаграмма (*note chart::), размер ошибки +(*note error::), маркеры переменного размера +(*note mark::), трубками (*note tube::) и т.д. См. +раздел *note 1D plot sample::, для примеров кода +и графика. + + График рисуется для каждой строки +если один из массивов матрица. Размер +по 1-ой координате *должен быть +одинаков* для всех массивов +`xdat.nx=ydat.nx=zdat.nx'. Если массив XDAT не +указан, то используется массив со +значениями равно распределенными +вдоль оси x. Если массив ZDAT не указан, то +используется ZDAT[i] = ZVAL. Строка STL задает +цвет и стиль линии и маркеров (*note Line +styles::). По умолчанию (`stl=''') рисуется +сплошная линия с текущим цветом из +палитры. -- Команда MGL: plot ydat ['stl'=" `zval=nan'] -- Команда MGL: plot xdat ydat ['stl'=" `zval=nan'] -- Команда MGL: plot xdat ydat zdat ['stl'="] - Рисует ломанную линию между точками {X[i], Y[i], Z[i]}. См. также - *note area::, *note step::, *note stem::, *note tube::, *note - mark::, *note error::, *note belt::, *note tens::. См. раздел - *note Plot sample::, для примеров кода и графика. + Рисует ломанную линию между точками + {X[i], Y[i], Z[i]}. См. также *note area::, *note step::, + *note stem::, *note tube::, *note mark::, *note error::, *note + belt::, *note tens::. См. раздел *note Plot sample::, + для примеров кода и графика. -- Команда MGL: radar adat ['stl'=" `r=-1'] - Рисует radar chart, представляющий собой ломанную с вершинами на - радиальных линиях (типа ломанной в полярных координатах). График - рисуется для каждой строки если один из массивов матрица. Параметр - R задает дополнительный сдвиг данных (т.е. используется A+R вместо - A). Если `r<0', то `r=max(0, -min(a)'. Если STL содержит символ - `#', то также рисуется "сетка" (радиальные линии и круг для R). - См. также *note plot::. См. раздел *note Radar sample::, для - примеров кода и графика. + Рисует radar chart, представляющий собой + ломанную с вершинами на радиальных + линиях (типа ломанной в полярных + координатах). График рисуется для + каждой строки если один из массивов + матрица. Параметр R задает + дополнительный сдвиг данных (т.е. + используется A+R вместо A). Если `r<0', то + `r=max(0, -min(a)'. Если STL содержит символ + `#', то также рисуется "сетка" + (радиальные линии и круг для R). См. + также *note plot::. См. раздел *note Radar sample::, + для примеров кода и графика. -- Команда MGL: tens ydat cdat ['stl'=" `zval=nan'] -- Команда MGL: tens xdat ydat cdat ['stl'=" `zval=nan'] -- Команда MGL: tens xdat ydat zdat cdat ['stl'="] - Рисует ломанную линию по точкам {X[i], Y[i], Z[i]} с цветом, - определяемым массивом C[i] (типа графика натяжений). См. также - *note plot::, *note mesh::, *note fall::. См. раздел *note Tens - sample::, для примеров кода и графика. + Рисует ломанную линию по точкам {X[i], + Y[i], Z[i]} с цветом, определяемым + массивом C[i] (типа графика + натяжений). См. также *note plot::, *note mesh::, + *note fall::. См. раздел *note Tens sample::, для + примеров кода и графика. -- Команда MGL: area ydat ['stl'=" `zval=nan'] -- Команда MGL: area xdat ydat ['stl'=" `zval=nan'] -- Команда MGL: area xdat ydat zdat ['stl'="] - Рисует ломанную линию по точками {XDAT[i], YDAT[i], ZDAT[i]} и - закрашивает ее вниз до плоскости осей координат. Можно - использовать градиентное закрашивание если число указанных цветов - в STL равно удвоенному числу кривых для построения. Если строка - содержит символ `a', то линии рисуются одна поверх другой (с - суммированием) - того же эффекта можно достичь вызовом `cumsum - ydat 'y'' перед построением графика. См. также *note plot::, *note - bars::, *note stem::, *note region::. См. раздел *note Area - sample::, для примеров кода и графика. + Рисует ломанную линию по точками + {XDAT[i], YDAT[i], ZDAT[i]} и закрашивает ее + вниз до плоскости осей координат. + Можно использовать градиентное + закрашивание если число указанных + цветов в STL равно удвоенному числу + кривых для построения. Если строка + содержит символ `a', то линии + рисуются одна поверх другой (с + суммированием) - того же эффекта + можно достичь вызовом `cumsum ydat 'y'' + перед построением графика. См. также + *note plot::, *note bars::, *note stem::, *note region::. См. + раздел *note Area sample::, для примеров кода + и графика. -- Команда MGL: region fdat gdat ['stl'=" `inside=off'] -- Команда MGL: region xdat fdat gdat ['stl'=" `inside=off'] - Закрашивает область между 2 кривыми {XDAT[i], FDAT[i]} и {XDAT[i], - GDAT[i]}. При `inside=off' закрашивается только область y12. Размеры массивов по + 2-му индексу TR, G1, G2 и размер по 3-му + индексу массива ADAT должны быть + одинаковы. См. также *note surf3::.  File: mgl_ru.info, Node: Dual plotting, Next: Vector fields, Prev: 3D plotting, Up: MGL interface @@ -1739,95 +2431,136 @@ File: mgl_ru.info, Node: Dual plotting, Next: Vector fields, Prev: 3D plottin 1.13 Парные графики ================================ -Эти команды строят графики для двух связанных массивов. Есть несколько -основных типов 3D графиков: поверхность и поверхность уровня с окраской -по второму массиву (*note surfc::, *note surf3c::), поверхность и -поверхность уровня с прозрачностью по второму массиву (*note surfa::, -*note surf3a::), плитки переменного размера (*note tiles::), диаграмма -точечного отображения (*note map::), STFA диаграмма (*note stfa::). В -командах *note surf3a:: и *note surf3c:: значения уровней можно -задавать автоматически и вручную. Каждый тип графика имеет похожий -интерфейс. Есть версия для рисования одного массива с автоматическими -координатами и версия для параметрически заданного массива. - - Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая -цветовая схема используется по умолчанию. Массивы X, Y, Z могут быть -векторами (не 3d массивами как A). Если массивы XDAT, YDAT, ZDAT не -указаны, то используются массивы со значениями равно распределенными +Эти команды строят графики для двух +связанных массивов. Есть несколько +основных типов 3D графиков: поверхность +и поверхность уровня с окраской по +второму массиву (*note surfc::, *note surf3c::), +поверхность и поверхность уровня с +прозрачностью по второму массиву (*note +surfa::, *note surf3a::), плитки переменного +размера (*note tiles::), диаграмма точечного +отображения (*note map::), STFA диаграмма (*note +stfa::). В командах *note surf3a:: и *note surf3c:: +значения уровней можно задавать +автоматически и вручную. Каждый тип +графика имеет похожий интерфейс. Есть +версия для рисования одного массива с +автоматическими координатами и версия +для параметрически заданного массива. + + Строка SCH задает цветовую схему (*note +Color scheme::). Предыдущая цветовая схема +используется по умолчанию. Массивы X, Y, +Z могут быть векторами (не 3d массивами +как A). Если массивы XDAT, YDAT, ZDAT не +указаны, то используются массивы со +значениями равно распределенными вдоль осей x, y, z. -- Команда MGL: surfc zdat cdat ['sch'="] -- Команда MGL: surfc xdat ydat zdat cdat ['sch'="] - Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j], - ZDAT[i,j]} с цветом, заданным массивом CDAT[i,j]. Если SCH - содержит `#', то на поверхности рисуется сетка. См. также *note - surf::, *note surfa::, *note surf3c::. См. раздел *note SurfC - sample::, для примеров кода и графика. + Рисует параметрически заданную + поверхность {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} с + цветом, заданным массивом CDAT[i,j]. + Если SCH содержит `#', то на + поверхности рисуется сетка. См. + также *note surf::, *note surfa::, *note surf3c::. См. + раздел *note SurfC sample::, для примеров + кода и графика. -- Команда MGL: surf3c adat cdat `val' ['sch'="] -- Команда MGL: surf3c xdat ydat zdat adat cdat `val' ['sch'="] - Рисует поверхность уровня для 3d массива, заданного параметрически + Рисует поверхность уровня для 3d + массива, заданного параметрически ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при - A(x,y,z)=VAL. Аналогично *note surf3::, но цвет задается массивом - CDAT. Если SCH содержит `#', то рисуется сетчатая поверхность. См. - также *note surf3::, *note surfc::, *note surf3a::. См. раздел - *note Surf3C sample::, для примеров кода и графика. + A(x,y,z)=VAL. Аналогично *note surf3::, но цвет + задается массивом CDAT. Если SCH + содержит `#', то рисуется сетчатая + поверхность. См. также *note surf3::, *note + surfc::, *note surf3a::. См. раздел *note Surf3C sample::, + для примеров кода и графика. -- Команда MGL: surf3c adat cdat ['sch'=" `num=5'] - -- Команда MGL: surf3c xdat ydat zdat adat cdat ['sch'=" `num=5'] - Рисует NUM поверхностей уровня равномерно распределенных в - интервале цветовой шкалы (см. *note caxis::). + -- Команда MGL: surf3c xdat ydat zdat adat cdat ['sch'=" + `num=5'] + Рисует NUM поверхностей уровня + равномерно распределенных в + интервале цветовой шкалы (см. *note + caxis::). -- Команда MGL: surfa zdat cdat ['sch'="] -- Команда MGL: surfa xdat ydat zdat cdat ['sch'="] - Рисует параметрически заданную поверхность {XDAT[i,j], YDAT[i,j], - ZDAT[i,j]} с прозрачностью, заданным массивом CDAT[i,j]. Если SCH - содержит `#', то на поверхности рисуется сетка. См. также *note - surf::, *note surfc::, *note surf3a::. См. раздел *note SurfA - sample::, для примеров кода и графика. + Рисует параметрически заданную + поверхность {XDAT[i,j], YDAT[i,j], ZDAT[i,j]} с + прозрачностью, заданным массивом + CDAT[i,j]. Если SCH содержит `#', то на + поверхности рисуется сетка. См. + также *note surf::, *note surfc::, *note surf3a::. См. + раздел *note SurfA sample::, для примеров + кода и графика. -- Команда MGL: surf3a adat cdat `val' ['sch'="] -- Команда MGL: surf3a xdat ydat zdat adat cdat `val' ['sch'="] - Рисует поверхность уровня для 3d массива, заданного параметрически + Рисует поверхность уровня для 3d + массива, заданного параметрически ADAT[i,j,k](XDAT[i,j,k], YDAT[i,j,k], ZDAT[i,j,k]) при - A(x,y,z)=VAL. Аналогично *note surf3::, но прозрачность задается - массивом CDAT. Если SCH содержит `#', то рисуется сетчатая - поверхность. См. также *note surf3::, *note surfa::, *note - surf3c::. См. раздел *note Surf3A sample::, для примеров кода и + A(x,y,z)=VAL. Аналогично *note surf3::, но + прозрачность задается массивом CDAT. + Если SCH содержит `#', то рисуется + сетчатая поверхность. См. также *note + surf3::, *note surfa::, *note surf3c::. См. раздел *note + Surf3A sample::, для примеров кода и графика. -- Команда MGL: surf3a adat cdat ['sch'=" `num=5'] - -- Команда MGL: surf3a xdat ydat zdat adat cdat ['sch'=" `num=5'] - Рисует NUM поверхностей уровня равномерно распределенных в - интервале цветовой шкалы (см. *note caxis::). + -- Команда MGL: surf3a xdat ydat zdat adat cdat ['sch'=" + `num=5'] + Рисует NUM поверхностей уровня + равномерно распределенных в + интервале цветовой шкалы (см. *note + caxis::). -- Команда MGL: tiles zdat rdat ['sch'="] -- Команда MGL: tiles xdat ydat zdat rdat ['sch'="] - Рисует плитки для параметрически заданной поверхности {XDAT[i,j], - YDAT[i,j], ZDAT[i,j]}. Аналогично *note tile::, но размер плиток - задается массивов RDAT. Это создает эффект "прозрачности" при - экспорте в файлы EPS. См. также *note surfa::, *note tile::. См. - раздел *note TileS sample::, для примеров кода и графика. + Рисует плитки для параметрически + заданной поверхности {XDAT[i,j], YDAT[i,j], + ZDAT[i,j]}. Аналогично *note tile::, но размер + плиток задается массивов RDAT. Это + создает эффект "прозрачности" при + экспорте в файлы EPS. См. также *note + surfa::, *note tile::. См. раздел *note TileS sample::, + для примеров кода и графика. -- Команда MGL: map udat vdat ['sch'=" `pnts=on'] -- Команда MGL: map xdat ydat udat vdat ['sch'=" `pnts=on'] - Визуализирует точечное отображение для матриц {UDAT, VDAT } - параметрически зависящих от координат XDAT, YDAT. Исходное - положение ячейки задает ее цвет. Высота пропорциональна якобиану - Jacobian(udat,vdat). График является аналогом диаграммы Арнольда. - Если `pnts=off', то рисуются грани, иначе цветные точки рисуются в - узлах матриц (полезно для "запутанного" отображения). См. раздел - *note Map sample::, для примеров кода и графика. + Визуализирует точечное отображение + для матриц {UDAT, VDAT } параметрически + зависящих от координат XDAT, YDAT. + Исходное положение ячейки задает ее + цвет. Высота пропорциональна + якобиану Jacobian(udat,vdat). График + является аналогом диаграммы + Арнольда. Если `pnts=off', то рисуются + грани, иначе цветные точки рисуются + в узлах матриц (полезно для + "запутанного" отображения). См. + раздел *note Map sample::, для примеров кода + и графика. -- Команда MGL: stfa re im `dn' ['sch'=" `pnts=on'] -- Команда MGL: stfa xdat ydat re im `dn' ['sch'=" `pnts=on'] - Рисует спектрограмму комплексного массива RE+i*`im' для Фурье - размером DN точек. Параметр DN - любое четное число. Например в 1D - случае, результатом будет график плотности от массива - res[i,j]=|\sum_d^dn exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn - размером {int(nx/dn), dn, ny}. Массивы RE, IM параметрически - зависят от координат XDAT, YDAT. См. раздел *note STFA sample::, - для примеров кода и графика. + Рисует спектрограмму комплексного + массива RE+i*`im' для Фурье размером DN + точек. Параметр DN - любое четное + число. Например в 1D случае, + результатом будет график плотности + от массива res[i,j]=|\sum_d^dn + exp(I*j*d)*(re[i*dn+d]+I*im[i*dn+d])|/dn размером + {int(nx/dn), dn, ny}. Массивы RE, IM + параметрически зависят от + координат XDAT, YDAT. См. раздел *note STFA + sample::, для примеров кода и графика.  File: mgl_ru.info, Node: Vector fields, Next: Other plotting, Prev: Dual plotting, Up: MGL interface @@ -1835,134 +2568,192 @@ File: mgl_ru.info, Node: Vector fields, Next: Other plotting, Prev: Dual plot 1.14 Векторные поля ================================ -Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько -типов графиков: просто векторное поле (*note vect::), вектора вдоль -траектории (*note traj::), векторное поле каплями (*note dew::), нити -тока (*note flow::), трубки тока (*note pipe::). Каждый тип графика -имеет похожий интерфейс. Есть версия для рисования одного массива с -автоматическими координатами и версия для параметрически заданного -массива. - - Строка SCH задает цветовую схему (*note Color scheme::). Предыдущая -цветовая схема используется по умолчанию. Все размеры массивов AX и AY -должны быть одинаковы. Младшие размерности массивов X, Y и AX должны -быть одинаковы. Массивы X и Y могут быть векторами (не матрицами как -AX). График строится для каждого z среза AX, AY для 2D случаев. - - -- Команда MGL: traj xdat ydat udat vdat ['sch'=" `zval=nan len=0'] - -- Команда MGL: traj xdat ydat zdat udat vdat wdat ['sch'=" `len=0'] - Рисует вектора {UDAT, VDAT, WDAT} вдоль кривой {XDAT, YDAT, ZDAT}. - Длина векторов пропорциональна \sqrt{udat^2+vdat^2+wdat^2}. Строка - PEN задает цвет (*note Line styles::). По умолчанию (`pen='''). - Параметр LEN задает фактор длины векторов (если не нуль) или - выбирать длину пропорционально расстоянию между точками кривой - (если LEN=0). См. также *note vect::. См. раздел *note Traj - sample::, для примеров кода и графика. +Эти функции рисуют графики для 2D и 3D +векторных полей. Есть несколько типов +графиков: просто векторное поле (*note +vect::), вектора вдоль траектории (*note traj::), +векторное поле каплями (*note dew::), нити +тока (*note flow::), трубки тока (*note pipe::). +Каждый тип графика имеет похожий +интерфейс. Есть версия для рисования +одного массива с автоматическими +координатами и версия для +параметрически заданного массива. + + Строка SCH задает цветовую схему (*note +Color scheme::). Предыдущая цветовая схема +используется по умолчанию. Все размеры +массивов AX и AY должны быть одинаковы. +Младшие размерности массивов X, Y и AX +должны быть одинаковы. Массивы X и Y +могут быть векторами (не матрицами как +AX). График строится для каждого z среза +AX, AY для 2D случаев. + + -- Команда MGL: traj xdat ydat udat vdat ['sch'=" `zval=nan + len=0'] + -- Команда MGL: traj xdat ydat zdat udat vdat wdat ['sch'=" + `len=0'] + Рисует вектора {UDAT, VDAT, WDAT} вдоль + кривой {XDAT, YDAT, ZDAT}. Длина векторов + пропорциональна \sqrt{udat^2+vdat^2+wdat^2}. + Строка PEN задает цвет (*note Line styles::). По + умолчанию (`pen='''). Параметр LEN задает + фактор длины векторов (если не нуль) + или выбирать длину пропорционально + расстоянию между точками кривой + (если LEN=0). См. также *note vect::. См. + раздел *note Traj sample::, для примеров кода + и графика. -- Команда MGL: vect udat vdat ['sch'=" `zval=nan flag=0'] - -- Команда MGL: vect xdat ydat udat vdat ['sch'=" `zval=nan flag=0'] - Рисует векторное поле {UDAT, VDAT} параметрически зависящее от - координат XDAT, YDAT на плоскости при Z=ZVAL. Длина и цвет - векторов пропорциональна \sqrt{ax^2+ay^2}. Число рисуемых векторов - зависит от *note meshnum::. Параметр FLAG побитовый флаг для - настройки вид векторов: `1' - двуцветный вектор, `2' - одинаковая - длина векторов, `4' - рисует стрелку в точку сетки, `8' - рисует - стрелку с серединой в точке сетки, `16' - рисует штрихи вместо - стрелок. См. также *note flow::, *note dew::, *note vectc::. См. - раздел *note Vect sample::, для примеров кода и графика. + -- Команда MGL: vect xdat ydat udat vdat ['sch'=" `zval=nan + flag=0'] + Рисует векторное поле {UDAT, VDAT} + параметрически зависящее от + координат XDAT, YDAT на плоскости при + Z=ZVAL. Длина и цвет векторов + пропорциональна \sqrt{ax^2+ay^2}. Число + рисуемых векторов зависит от *note + meshnum::. Параметр FLAG побитовый флаг + для настройки вид векторов: `1' - + двуцветный вектор, `2' - одинаковая + длина векторов, `4' - рисует стрелку в + точку сетки, `8' - рисует стрелку с + серединой в точке сетки, `16' - рисует + штрихи вместо стрелок. См. также *note + flow::, *note dew::, *note vectc::. См. раздел *note Vect + sample::, для примеров кода и графика. -- Команда MGL: vect udat vdat wdat ['sch'=" `flag=0'] - -- Команда MGL: vect xdat ydat zdat udat vdat wdat ['sch'=" `flag=0'] - Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть - 3d массивами, а длина и цвет пропорциональны - \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note Vect 3D sample::, - для примеров кода и графика. + -- Команда MGL: vect xdat ydat zdat udat vdat wdat ['sch'=" + `flag=0'] + Это 3D версия графика. Здесь массивы + UDAT, VDAT, WDAT должны быть 3d массивами, а + длина и цвет пропорциональны + \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note Vect 3D + sample::, для примеров кода и графика. -- Команда MGL: vectc udat vdat ['sch'=" `zval=nan'] -- Команда MGL: vectc xdat ydat udat vdat ['sch'=" `zval=nan'] - Аналогично *note vect:: c `flag=2+16=18'. См. раздел *note VectC - sample::, для примеров кода и графика. + Аналогично *note vect:: c `flag=2+16=18'. См. + раздел *note VectC sample::, для примеров + кода и графика. -- Команда MGL: vectc udat vdat wdat ['sch'="] -- Команда MGL: vectc xdat ydat zdat udat vdat wdat ['sch'="] - Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть - 3d массивами, а длина и цвет пропорциональны - \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectC 3D sample::, - для примеров кода и графика. + Это 3D версия графика. Здесь массивы + UDAT, VDAT, WDAT должны быть 3d массивами, а + длина и цвет пропорциональны + \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectC 3D + sample::, для примеров кода и графика. -- Команда MGL: vectl udat vdat ['sch'=" `zval=nan'] -- Команда MGL: vectl xdat ydat udat vdat ['sch'=" `zval=nan'] - Аналогично *note vect:: c `flag=1+16=17'. См. раздел *note VectL - sample::, для примеров кода и графика. + Аналогично *note vect:: c `flag=1+16=17'. См. + раздел *note VectL sample::, для примеров + кода и графика. -- Команда MGL: vectl udat vdat wdat ['sch'="] -- Команда MGL: vectl xdat ydat zdat udat vdat wdat ['sch'="] - Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть - 3d массивами, а длина и цвет пропорциональны - \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectL 3D sample::, - для примеров кода и графика. + Это 3D версия графика. Здесь массивы + UDAT, VDAT, WDAT должны быть 3d массивами, а + длина и цвет пропорциональны + \sqrt{udat^2+vdat^2+wdat^2}. См. раздел *note VectL 3D + sample::, для примеров кода и графика. -- Команда MGL: dew udat vdat ['sch'=" `zval=nan'] -- Команда MGL: dew xdat ydat udat vdat ['sch'=" `zval=nan'] - Рисует капли для векторного поля {UDAT, VDAT}, параметрически - зависящего от координат XDAT, YDAT при Z=ZVAL. Замечу, что график - требует много памяти и процессорного времени для своего создания! - Цвет капель пропорционален \sqrt{ax^2+ay^2}. Число капель - определяется *note meshnum::. См. также *note vect::. См. раздел - *note Dew sample::, для примеров кода и графика. + Рисует капли для векторного поля + {UDAT, VDAT}, параметрически зависящего + от координат XDAT, YDAT при Z=ZVAL. Замечу, + что график требует много памяти и + процессорного времени для своего + создания! Цвет капель + пропорционален \sqrt{ax^2+ay^2}. Число + капель определяется *note meshnum::. См. + также *note vect::. См. раздел *note Dew sample::, + для примеров кода и графика. -- Команда MGL: flow udat vdat ['sch'=" `num=5 zval=nan'] - -- Команда MGL: flow xdat ydat udat vdat ['sch'=" `num=5 zval=nan'] - Рисует нити тока для векторного поля {UDAT, VDAT}, параметрически - зависящего от координат XDAT, YDAT на плоскости при z = ZVAL. - Число нитей пропорционально NUM. При NUM>0 нитей могут стартовать - и изнутри сетки, в противном случае только с краев. Цвет нитей - пропорционален \sqrt{udat^2+vdat^2}. Теплые цвета соответствуют - нормальному току (типа стока). Холодные цвета соответствуют - обратному току (типа источника). См. также *note pipe::, *note - vect::. См. раздел *note Flow sample::, для примеров кода и - графика. + -- Команда MGL: flow xdat ydat udat vdat ['sch'=" `num=5 + zval=nan'] + Рисует нити тока для векторного + поля {UDAT, VDAT}, параметрически + зависящего от координат XDAT, YDAT на + плоскости при z = ZVAL. Число нитей + пропорционально NUM. При NUM>0 нитей + могут стартовать и изнутри сетки, в + противном случае только с краев. + Цвет нитей пропорционален + \sqrt{udat^2+vdat^2}. Теплые цвета + соответствуют нормальному току + (типа стока). Холодные цвета + соответствуют обратному току (типа + источника). См. также *note pipe::, *note vect::. + См. раздел *note Flow sample::, для примеров + кода и графика. -- Команда MGL: flow udat vdat wdat ['sch'=" `num=3'] - -- Команда MGL: flow xdat ydat zdat udat vdat wdat ['sch'=" `num=3'] - Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть - 3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}. - См. раздел *note Flow 3D sample::, для примеров кода и графика. + -- Команда MGL: flow xdat ydat zdat udat vdat wdat ['sch'=" + `num=3'] + Это 3D версия графика. Здесь массивы + UDAT, VDAT, WDAT должны быть 3d массивами, а + цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}. + См. раздел *note Flow 3D sample::, для примеров + кода и графика. -- Команда MGL: flow `x0 y0' udat vdat ['sch'=" `zval=nan'] - -- Команда MGL: flow `x0 y0' xdat ydat udat vdat ['sch'=" `zval=nan'] - Рисует нить тока из точки {X0, Y0} для векторного поля {UDAT, - VDAT}, параметрически зависящего от координат XDAT, YDAT на - плоскости при z = ZVAL. Цвет нити пропорционален - \sqrt{udat^2+vdat^2}. Теплые цвета соответствуют нормальному току - (типа стока). Холодные цвета соответствуют обратному току (типа + -- Команда MGL: flow `x0 y0' xdat ydat udat vdat ['sch'=" + `zval=nan'] + Рисует нить тока из точки {X0, Y0} для + векторного поля {UDAT, VDAT}, + параметрически зависящего от + координат XDAT, YDAT на плоскости при z = + ZVAL. Цвет нити пропорционален + \sqrt{udat^2+vdat^2}. Теплые цвета + соответствуют нормальному току + (типа стока). Холодные цвета + соответствуют обратному току (типа источника). -- Команда MGL: flow `x0 y0 z0' udat vdat wdat ['sch'="] - -- Команда MGL: flow `x0 y0 z0' xdat ydat zdat udat vdat wdat ['sch'="] - Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть - 3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}. + -- Команда MGL: flow `x0 y0 z0' xdat ydat zdat udat vdat wdat + ['sch'="] + Это 3D версия графика. Здесь массивы + UDAT, VDAT, WDAT должны быть 3d массивами, а + цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}. - -- Команда MGL: pipe udat vdat ['sch'=" `r0=0.05 num=5 zval=nan'] - -- Команда MGL: pipe xdat ydat udat vdat ['sch'=" `r0=0.05 num=5 + -- Команда MGL: pipe udat vdat ['sch'=" `r0=0.05 num=5 zval=nan'] - Рисует трубки тока для векторного поля {UDAT, VDAT}, - параметрически зависящего от координат XDAT, YDAT на плоскости при - z = ZVAL. Число трубок пропорционально NUM. При NUM>0 нитей могут - стартовать и изнутри сетки, в противном случае только с краев. - Цвет и радиус трубок пропорционален \sqrt{udat^2+vdat^2}. Теплые - цвета соответствуют нормальному току (типа стока). Холодные цвета - соответствуют обратному току (типа источника). Параметр R0 задает - радиус трубок. При R0<0 радиус трубок обратно пропорционален их - амплитуде. См. также *note flow::, *note vect::. См. раздел *note + -- Команда MGL: pipe xdat ydat udat vdat ['sch'=" `r0=0.05 + num=5 zval=nan'] + Рисует трубки тока для векторного + поля {UDAT, VDAT}, параметрически + зависящего от координат XDAT, YDAT на + плоскости при z = ZVAL. Число трубок + пропорционально NUM. При NUM>0 нитей + могут стартовать и изнутри сетки, в + противном случае только с краев. + Цвет и радиус трубок пропорционален + \sqrt{udat^2+vdat^2}. Теплые цвета + соответствуют нормальному току + (типа стока). Холодные цвета + соответствуют обратному току (типа + источника). Параметр R0 задает радиус + трубок. При R0<0 радиус трубок обратно + пропорционален их амплитуде. См. + также *note flow::, *note vect::. См. раздел *note Pipe sample::, для примеров кода и графика. -- Команда MGL: pipe udat vdat wdat ['sch'=" `r0=0.05 num=3'] - -- Команда MGL: pipe xdat ydat zdat udat vdat wdat ['sch'=" `r0=0.05 - num=3'] - Это 3D версия графика. Здесь массивы UDAT, VDAT, WDAT должны быть - 3d массивами, а цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}. - См. раздел *note Pipe 3D sample::, для примеров кода и графика. + -- Команда MGL: pipe xdat ydat zdat udat vdat wdat ['sch'=" + `r0=0.05 num=3'] + Это 3D версия графика. Здесь массивы + UDAT, VDAT, WDAT должны быть 3d массивами, а + цвет пропорционален \sqrt{udat^2+vdat^2+wdat^2}. + См. раздел *note Pipe 3D sample::, для примеров + кода и графика.  File: mgl_ru.info, Node: Other plotting, Next: Nonlinear fitting, Prev: Vector fields, Up: MGL interface @@ -1970,115 +2761,164 @@ File: mgl_ru.info, Node: Other plotting, Next: Nonlinear fitting, Prev: Vecto 1.15 Прочие графики ================================ -Это команды, не относящиеся к какой-то специальной категории. Сюда -входят функции построения графиков по текстовым формулам (*note -fplot::, *note fsurf::), рисования поверхностей из треугольников (*note -triplot::), произвольных точек в пространстве (*note dots::) и -реконструкции по ним поверхности (*note crust::), графики плотности и -линии уровня на плоскостях, перпендикулярных осям x, y или z -(dens[xyz], cont[xyz], contf[xyz]). Каждый тип графика имеет похожий -интерфейс. Есть версия для рисования одного массива с автоматическими -координатами и версия для параметрически заданного массива. Строка SCH -задает цветовую схему (*note Color scheme::). Предыдущая цветовая схема +Это команды, не относящиеся к какой-то +специальной категории. Сюда входят +функции построения графиков по +текстовым формулам (*note fplot::, *note fsurf::), +рисования поверхностей из +треугольников (*note triplot::), произвольных +точек в пространстве (*note dots::) и +реконструкции по ним поверхности (*note +crust::), графики плотности и линии уровня +на плоскостях, перпендикулярных осям x, +y или z (dens[xyz], cont[xyz], contf[xyz]). Каждый тип +графика имеет похожий интерфейс. Есть +версия для рисования одного массива с +автоматическими координатами и версия +для параметрически заданного массива. +Строка SCH задает цветовую схему (*note Color +scheme::). Предыдущая цветовая схема используется по умолчанию. -- Команда MGL: densx dat ['sch'=" `val=nan'] -- Команда MGL: densy dat ['sch'=" `val=nan'] -- Команда MGL: densz dat ['sch'=" `val=nan'] - Рисуют график плотности на x, y или z плоскостях. Если DAT - 3d - массив, то выполняется интерполяция к заданному срезу VAL. Функции - полезны для создания проекций 3D массивов на оси координат. См. - также `cont[xyz], contf[xyz]', *note dens::. См. раздел *note Dens - projection sample::, для примеров кода и графика. + Рисуют график плотности на x, y или z + плоскостях. Если DAT - 3d массив, то + выполняется интерполяция к + заданному срезу VAL. Функции полезны + для создания проекций 3D массивов на + оси координат. См. также `cont[xyz], + contf[xyz]', *note dens::. См. раздел *note Dens + projection sample::, для примеров кода и + графика. -- Команда MGL: contx dat ['sch'=" `val=nan num=7'] -- Команда MGL: conty dat ['sch'=" `val=nan num=7'] -- Команда MGL: contz dat ['sch'=" `val=nan num=7'] - Рисуют линии уровня на x, y или z плоскостях. Если DAT - 3d - массив, то выполняется интерполяция к заданному срезу VAL. Функции - полезны для создания проекций 3D массивов на оси координат. См. - также `dens[xyz], contf[xyz]', *note cont::. См. раздел *note Cont - projection sample::, для примеров кода и графика. + Рисуют линии уровня на x, y или z + плоскостях. Если DAT - 3d массив, то + выполняется интерполяция к + заданному срезу VAL. Функции полезны + для создания проекций 3D массивов на + оси координат. См. также `dens[xyz], + contf[xyz]', *note cont::. См. раздел *note Cont + projection sample::, для примеров кода и + графика. -- Команда MGL: contfx dat ['sch'=" `val=nan num=7'] -- Команда MGL: contfy dat ['sch'=" `val=nan num=7'] -- Команда MGL: contfz dat ['sch'=" `val=nan num=7'] - Рисуют закрашенные контуры уровня на x, y или z плоскостях. Если - DAT - 3d массив, то выполняется интерполяция к заданному срезу - VAL. Функции полезны для создания проекций 3D массивов на оси - координат. См. также `dens[xyz], cont[xyz]', *note contf::. + Рисуют закрашенные контуры уровня + на x, y или z плоскостях. Если DAT - 3d + массив, то выполняется интерполяция + к заданному срезу VAL. Функции + полезны для создания проекций 3D + массивов на оси координат. См. также + `dens[xyz], cont[xyz]', *note contf::. -- Команда MGL: dots xdat ydat zdat ['sch'="] -- Команда MGL: dots xdat ydat zdat adat ['sch'="] - Рисует произвольно расположенные точки {XDAT[i], YDAT[i], - ZDAT[i]}. Если определен массив ADAT[i], то он задает прозрачность - точек. См. также *note crust::, *note mark::, *note plot::. См. - раздел *note Dots sample::, для примеров кода и графика. + Рисует произвольно расположенные + точки {XDAT[i], YDAT[i], ZDAT[i]}. Если + определен массив ADAT[i], то он задает + прозрачность точек. См. также *note + crust::, *note mark::, *note plot::. См. раздел *note Dots + sample::, для примеров кода и графика. -- Команда MGL: crust xdat ydat zdat ['sch'="] - Реконструирует и рисует поверхность по произвольно расположенным - точкам {XDAT[i], YDAT[i], ZDAT[i]}. Если строка содержит `#', то - рисуется сетчатая поверхность. См. также *note dots::, *note - triplot::. См. раздел *note Crust sample::, для примеров кода и - графика. + Реконструирует и рисует + поверхность по произвольно + расположенным точкам {XDAT[i], YDAT[i], + ZDAT[i]}. Если строка содержит `#', то + рисуется сетчатая поверхность. См. + также *note dots::, *note triplot::. См. раздел *note + Crust sample::, для примеров кода и графика. -- Команда MGL: triplot idat xdat ydat ['sch'=" `zval=nan'] -- Команда MGL: triplot idat xdat ydat zdat ['sch'="] -- Команда MGL: triplot idat xdat ydat zdat cdat ['sch'="] - Рисует поверхность из треугольников. Вершины треугольников - задаются индексами IDAT в массиве точек {XDAT[i], YDAT[i], - ZDAT[i]}. Если строка содержит `#', то рисуется сетчатая - поверхность. Размер по 1-му индексу массива IDAT должен быть 3 или - больше. Массивы XDAT, YDAT, ZDAT должны иметь одинаковые размеры. - Массив CDAT задает цвет треугольников (если IDAT.ny=CDAT.nx) или - цвет вершин (если XDAT.nx=CDAT.nx). См. также *note dots::, *note - crust::, *note quadplot::, *note tricont::. + Рисует поверхность из + треугольников. Вершины + треугольников задаются индексами + IDAT в массиве точек {XDAT[i], YDAT[i], ZDAT[i]}. + Если строка содержит `#', то рисуется + сетчатая поверхность. Размер по 1-му + индексу массива IDAT должен быть 3 или + больше. Массивы XDAT, YDAT, ZDAT должны + иметь одинаковые размеры. Массив CDAT + задает цвет треугольников (если + IDAT.ny=CDAT.nx) или цвет вершин (если + XDAT.nx=CDAT.nx). См. также *note dots::, *note crust::, + *note quadplot::, *note tricont::. -- Команда MGL: tricont vdat idat xdat ydat zdat cdat ['sch'=" `zval=nan'] - -- Команда MGL: tricont vdat idat xdat ydat zdat ['sch'=" `zval=nan'] - -- Команда MGL: tricont idat xdat ydat zdat ['sch'=" `num=7 zval=nan'] - Рисует линии уровня поверхности из треугольников при Z = ZVAL (или - для z=VDAT[k] если `zval==NAN'). Вершины треугольников задаются - индексами IDAT в массиве точек {XDAT[i], YDAT[i], ZDAT[i]}. Размер - по 1-му индексу массива IDAT должен быть 3 или больше. Массивы - XDAT, YDAT, ZDAT должны иметь одинаковые размеры. Массив CDAT - (если указан) задает цвет треугольников (если IDAT.ny=CDAT.nx) или - цвет вершин (если XDAT.nx=CDAT.nx). См. также *note triplot::, - *note cont::. + -- Команда MGL: tricont vdat idat xdat ydat zdat ['sch'=" + `zval=nan'] + -- Команда MGL: tricont idat xdat ydat zdat ['sch'=" `num=7 + zval=nan'] + Рисует линии уровня поверхности из + треугольников при Z = ZVAL (или для + z=VDAT[k] если `zval==NAN'). Вершины + треугольников задаются индексами + IDAT в массиве точек {XDAT[i], YDAT[i], ZDAT[i]}. + Размер по 1-му индексу массива IDAT + должен быть 3 или больше. Массивы XDAT, + YDAT, ZDAT должны иметь одинаковые + размеры. Массив CDAT (если указан) + задает цвет треугольников (если + IDAT.ny=CDAT.nx) или цвет вершин (если + XDAT.nx=CDAT.nx). См. также *note triplot::, *note cont::. -- Команда MGL: quadplot idat xdat ydat ['sch'=" `zval=nan'] -- Команда MGL: quadplot idat xdat ydat zdat ['sch'="] -- Команда MGL: quadplot idat xdat ydat zdat cdat ['sch'="] - Рисует поверхность из четырехугольников. Вершины треугольников - задаются индексами IDAT в массиве точек {XDAT[i], YDAT[i], - ZDAT[i]}. Если строка содержит `#', то рисуется сетчатая - поверхность. Размер по 1-му индексу массива IDAT должен быть 4 или - больше. Массивы XDAT, YDAT, ZDAT должны иметь одинаковые размеры. - Массив CDAT задает цвет четырехугольников (если IDAT.ny=CDAT.nx) - или цвет вершин (если XDAT.nx=CDAT.nx). См. также *note triplot::. + Рисует поверхность из + четырехугольников. Вершины + треугольников задаются индексами + IDAT в массиве точек {XDAT[i], YDAT[i], ZDAT[i]}. + Если строка содержит `#', то рисуется + сетчатая поверхность. Размер по 1-му + индексу массива IDAT должен быть 4 или + больше. Массивы XDAT, YDAT, ZDAT должны + иметь одинаковые размеры. Массив CDAT + задает цвет четырехугольников (если + IDAT.ny=CDAT.nx) или цвет вершин (если + XDAT.nx=CDAT.nx). См. также *note triplot::. -- Команда MGL: fplot 'y(x)' ['pen'=" `zval=nan num=100'] - Рисует функцию `y(x)' в плоскости z=ZVAL с координатой `x' в - диапазоне x-оси координат. Параметр NUM задает минимальное число - точек по координате для графика. См. также *note plot::. + Рисует функцию `y(x)' в плоскости z=ZVAL с + координатой `x' в диапазоне x-оси + координат. Параметр NUM задает + минимальное число точек по + координате для графика. См. также *note + plot::. -- Команда MGL: fplot 'x(t)' 'y(t)' 'z(t)' ['pen'=" `num=100'] - Рисует параметрическую кривую {`x(t)', `y(t)', `z(t)'}, где - координата `t' меняется в диапазоне [0, 1]. Параметр NUM задает - минимальное число точек по координате для графика. См. также *note + Рисует параметрическую кривую {`x(t)', + `y(t)', `z(t)'}, где координата `t' меняется + в диапазоне [0, 1]. Параметр NUM задает + минимальное число точек по + координате для графика. См. также *note plot::. -- Команда MGL: fsurf 'z(x,y)' ['sch'=" `num=100'] - Рисует поверхность `z(x,y)' с координатами `x', `y' в диапазоне - x-,y-осей координат. Параметр NUM задает минимальное число точек - по координатам для графика. См. также *note surf::. - - -- Команда MGL: fsurf 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'=" `num=100'] - Рисует параметрическую поверхность {`x(u,v)', `y(u,v)', `z(u,v)'}, - где координаты `u', `v' меняются в диапазоне [0, 1]. Параметр NUM - задает минимальное число точек по координатам для графика. См. - также *note surf::. + Рисует поверхность `z(x,y)' с + координатами `x', `y' в диапазоне + x-,y-осей координат. Параметр NUM + задает минимальное число точек по + координатам для графика. См. также + *note surf::. + + -- Команда MGL: fsurf 'x(u,v)' 'y(u,v)' 'z(u,v)' ['sch'=" + `num=100'] + Рисует параметрическую поверхность + {`x(u,v)', `y(u,v)', `z(u,v)'}, где координаты `u', + `v' меняются в диапазоне [0, 1]. + Параметр NUM задает минимальное + число точек по координатам для + графика. См. также *note surf::.  File: mgl_ru.info, Node: Nonlinear fitting, Next: Data create, Prev: Other plotting, Up: MGL interface @@ -2086,50 +2926,73 @@ File: mgl_ru.info, Node: Nonlinear fitting, Next: Data create, Prev: Other pl 1.16 Nonlinear fitting ====================== -Эти команды подбирают параметры функций для наилучшей аппроксимации -данных, т.е. минимизируют сумму \sum_i (f(x_i, y_i, z_i) - -a_i)^2/s_i^2. При этом аппроксимирующая функция `f' может зависеть от -одного аргумента `x' (1D случай), от двух аргументов `x,y' (2D случай) -или от трех аргументов `x,y,z' (3D случай). Функция `f' также может -зависеть от параметров. Список параметров задается строкой VAR -(например, `abcd'). Обычно пользователь должен предоставить начальные -значения параметров в переменной INI. Однако, при его отсутствии +Эти команды подбирают параметры +функций для наилучшей аппроксимации +данных, т.е. минимизируют сумму \sum_i (f(x_i, +y_i, z_i) - a_i)^2/s_i^2. При этом +аппроксимирующая функция `f' может +зависеть от одного аргумента `x' (1D +случай), от двух аргументов `x,y' (2D +случай) или от трех аргументов `x,y,z' (3D +случай). Функция `f' также может +зависеть от параметров. Список +параметров задается строкой VAR +(например, `abcd'). Обычно пользователь +должен предоставить начальные +значения параметров в переменной INI. +Однако, при его отсутствии используются нулевые значения. - Команды *note fit:: и *note fits:: не рисуют полученные массивы. Они -заполняют массив FIT по формуле `f' с найденными коэффициентами. При -этом, координаты `x,y,z' равно распределены в вдоль осей координат. -Число точек в FIT выбирается максимальным из размера массива FIT и 100. -Формулу с найденными коэффициентами можно вывести с помощью команды -*note putsfit::. См. раздел *note Fitting sample::, для примеров кода и -графика. + Команды *note fit:: и *note fits:: не рисуют +полученные массивы. Они заполняют +массив FIT по формуле `f' с найденными +коэффициентами. При этом, координаты +`x,y,z' равно распределены в вдоль осей +координат. Число точек в FIT выбирается +максимальным из размера массива FIT и 100. +Формулу с найденными коэффициентами +можно вывести с помощью команды *note +putsfit::. См. раздел *note Fitting sample::, для +примеров кода и графика. - Размерность массивов должны быть не меньше, чем число указанных -массивов XDAT, YDAT, ZDAT. Также подбор коэффициентов будет -осуществляться только вдоль указанных направлений (например, вдоль x и -y если указаны только XDAT и YDAT). Если массив XDAT не указан, то -используется массив со значениями равно распределенными вдоль оси x. + Размерность массивов должны быть не +меньше, чем число указанных массивов +XDAT, YDAT, ZDAT. Также подбор коэффициентов +будет осуществляться только вдоль +указанных направлений (например, вдоль +x и y если указаны только XDAT и YDAT). Если +массив XDAT не указан, то используется +массив со значениями равно +распределенными вдоль оси x. -- Команда MGL: fits adat sdat 'func' 'var' [ini=0] -- Команда MGL: fits xdat adat sdat 'func' 'var' [ini=0] -- Команда MGL: fits xdat ydat adat sdat 'func' 'var' [ini=0] - -- Команда MGL: fits xdat ydat zdat adat sdat 'func' 'var' [ini=0] - "Подгоняют" формулу вдоль x-, y- и z-направлений для массива - заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с - весовыми коэффициентами SDAT[i,j,k]. + -- Команда MGL: fits xdat ydat zdat adat sdat 'func' 'var' + [ini=0] + "Подгоняют" формулу вдоль x-, y- и + z-направлений для массива заданного + параметрически A[i,j,k](X[i,j,k], Y[i,j,k], + Z[i,j,k]) с весовыми коэффициентами + SDAT[i,j,k]. -- Команда MGL: fit adat 'func' 'var' [ini=0] -- Команда MGL: fit xdat adat 'func' 'var' [ini=0] -- Команда MGL: fit xdat ydat adat 'func' 'var' [ini=0] -- Команда MGL: fit xdat ydat zdat adat 'func' 'var' [ini=0] - "Подгоняют" формулу вдоль x-, y- и z-направлений для массива - заданного параметрически A[i,j,k](X[i,j,k], Y[i,j,k], Z[i,j,k]) с - весовыми коэффициентами равными 1. + "Подгоняют" формулу вдоль x-, y- и + z-направлений для массива заданного + параметрически A[i,j,k](X[i,j,k], Y[i,j,k], + Z[i,j,k]) с весовыми коэффициентами + равными 1. -- Команда MGL: putsfit `x y' ['pre'=" 'fnt'=" `size=-1'] - Печатает последнюю подобранную формулу с найденными коэффициентами - в точке {X, Y}. Строка PRE будет напечатана перед формулой. Все - другие параметры такие же как в *note Text printing::. + Печатает последнюю подобранную + формулу с найденными + коэффициентами в точке {X, Y}. Строка + PRE будет напечатана перед формулой. + Все другие параметры такие же как в + *note Text printing::.  File: mgl_ru.info, Node: Data create, Next: Data filling, Prev: Nonlinear fitting, Up: MGL interface @@ -2138,48 +3001,66 @@ File: mgl_ru.info, Node: Data create, Next: Data filling, Prev: Nonlinear fit ================================== -- Команда MGL: new dat [`nx=1 ny=1 nz=1'] - Создает/пересоздает массив с именем DAT данных указанного размера - и заполняет его нулями. Ничего не делает при NX, NY, NZ - отрицательных или равных нулю. + Создает/пересоздает массив с именем + DAT данных указанного размера и + заполняет его нулями. Ничего не + делает при NX, NY, NZ отрицательных или + равных нулю. -- Команда MGL: var dat `num v1 [v2=nan]' - Создает одномерный массив с именем DAT размером `num' и заполняет - его равномерно в диапазоне [V1, V2]. Если V2=`nan', то - используется V2=V1. + Создает одномерный массив с именем + DAT размером `num' и заполняет его + равномерно в диапазоне [V1, V2]. Если + V2=`nan', то используется V2=V1. -- Команда MGL: list dat `v1 ...' - Создает массив с именем DAT и заполняет его числовыми значениями - аргументов `v1 ...'. Команда может создавать 1d- и 2d-массивы. Для - создания 2d-массивов требуется указать разделитель строк данных - `|'. Размер массива будет [максимальное число чисел в строке * - число строк]. Например, команда `list 1 | 2 3' создаст массив [1 - 0; 2 3]. Отмечу, что максимальное число аргументов 1000. + Создает массив с именем DAT и + заполняет его числовыми значениями + аргументов `v1 ...'. Команда может + создавать 1d- и 2d-массивы. Для + создания 2d-массивов требуется + указать разделитель строк данных `|'. + Размер массива будет [максимальное + число чисел в строке * число строк]. + Например, команда `list 1 | 2 3' создаст + массив [1 0; 2 3]. Отмечу, что + максимальное число аргументов 1000. -- Команда MGL: list dat d1 ... - Создает массив с именем DAT и заполняет его числами из массивов - `d1 ...'. Команда может создавать 2d- и 3d-массивы (если аргументы - 2d массивы). Младшие размерности всех массивов в аргументах должны - быть равны размерности D1. Отмечу, что максимальное число - аргументов 1000. + Создает массив с именем DAT и + заполняет его числами из массивов `d1 + ...'. Команда может создавать 2d- и + 3d-массивы (если аргументы 2d массивы). + Младшие размерности всех массивов в + аргументах должны быть равны + размерности D1. Отмечу, что + максимальное число аргументов 1000. -- Команда MGL: copy dat dat2 ['eq'=" `on_axis=on'] -- Команда MGL: copy dat `val' - Создает массив с именем DAT и копирует в него данные из массива - DAT2. При этом, если указан параметр EQ, то данные будут изменены - по формуле аналогично команде *note fill:: (для `on_axis=on') или - *note modify:: (для `on_axis=off'). + Создает массив с именем DAT и + копирует в него данные из массива + DAT2. При этом, если указан параметр EQ, + то данные будут изменены по формуле + аналогично команде *note fill:: (для + `on_axis=on') или *note modify:: (для `on_axis=off'). -- Команда MGL: idset dat 'ids' - Устанавливает символьные обозначения для колонок данных. Строка - должна содержать символы 'a'...'z' один на колонку (без пробелов). + Устанавливает символьные + обозначения для колонок данных. + Строка должна содержать символы + 'a'...'z' один на колонку (без пробелов). -- Команда MGL: info dat [`detail=off'] - Выводит информацию о массиве (размер, максимальное/минимальное - значение, моменты и пр.). При `detail=off' показывается только - краткая информация. + Выводит информацию о массиве + (размер, максимальное/минимальное + значение, моменты и пр.). При `detail=off' + показывается только краткая + информация. -- Команда MGL: info 'text' - Выводит текст TEXT как информацию (предупреждение). + Выводит текст TEXT как информацию + (предупреждение).  File: mgl_ru.info, Node: Data filling, Next: Rearrange data, Prev: Data create, Up: MGL interface @@ -2188,42 +3069,59 @@ File: mgl_ru.info, Node: Data filling, Next: Rearrange data, Prev: Data creat ====================================== -- Команда MGL: fill dat v1 v2 ['dir'='x'] - Заполняет значениями равно распределенными в диапазоне [V1, V2] в + Заполняет значениями равно + распределенными в диапазоне [V1, V2] в направлении DIR={`x',`y',`z'}. -- Команда MGL: fill dat 'eq' [vdat=0 wdat=0] - Заполняет значениями вычисленными по формуле EQ. Формула - представляет собой произвольное выражение, зависящее от переменных - `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются - меняющимися в диапазоне осей координат (в отличие от *note - modify::). Переменная `u' - значения исходного массива, переменные - `v', `w' - значения массивов VDAT, WDAT. Последние могут быть - опущены. + Заполняет значениями вычисленными + по формуле EQ. Формула представляет + собой произвольное выражение, + зависящее от переменных `x', `y', `z', `u', + `v', `w'. Координаты `x', `y', `z' полагаются + меняющимися в диапазоне осей + координат (в отличие от *note modify::). + Переменная `u' - значения исходного + массива, переменные `v', `w' - значения + массивов VDAT, WDAT. Последние могут + быть опущены. -- Команда MGL: modify dat 'eq' [`dim=0'] -- Команда MGL: modify dat 'eq' vdat [wdat=0] - Заполняет значениями вычисленными по формуле EQ. Формула - представляет собой произвольное выражение, зависящее от переменных - `x', `y', `z', `u', `v', `w'. Координаты `x', `y', `z' полагаются - меняющимися в диапазоне [0,1] (в отличие от *note fill::). - Переменная `u' - значения исходного массива, переменные `v', `w' - - значения массивов VDAT, WDAT. Последние могут быть опущены. Если - указан DIM>0, то изменяются только слои >=DIM. + Заполняет значениями вычисленными + по формуле EQ. Формула представляет + собой произвольное выражение, + зависящее от переменных `x', `y', `z', `u', + `v', `w'. Координаты `x', `y', `z' полагаются + меняющимися в диапазоне [0,1] (в + отличие от *note fill::). Переменная `u' - + значения исходного массива, + переменные `v', `w' - значения массивов + VDAT, WDAT. Последние могут быть опущены. + Если указан DIM>0, то изменяются + только слои >=DIM. -- MGL command: put dat `val [i=: j=: k=:]' - Присваивает значения (под-)массива DAT[I, J, K] = VAL. Индексы I, - J, K равные `:' задают значениия VAL для всего диапазона - соответствующего направления(ий). Например, `put dat val : 0 :' - задает DAT[i,0,j]=VAL для i=0...(DAT.nx-1), j=0...(DAT.nz-1). + Присваивает значения (под-)массива + DAT[I, J, K] = VAL. Индексы I, J, K равные `:' + задают значениия VAL для всего + диапазона соответствующего + направления(ий). Например, `put dat val : 0 + :' задает DAT[i,0,j]=VAL для i=0...(DAT.nx-1), + j=0...(DAT.nz-1). -- MGL command: put dat vdat [`i=: j=: k=:'] - Копирует значения из массива VDAT в диапазон значений массива DAT. - Индексы I, J, K равные `:' задают диапазон изменения значений в - соответствующих направление(ях). Младшие размерности массива VDAT - должны быть больше выбранного диапазона массива DAT. Например, - `put dat v : 0 :' присвоит DAT[i,0,j]=VDAT.ny>DAT.nz ? VDAT[i,j] : - VDAT[i], где i=0...(DAT.nx-1), j=0...(DAT.nz-1) и условие - vdat.nx>=dat.nx выполнено. + Копирует значения из массива VDAT в + диапазон значений массива DAT. + Индексы I, J, K равные `:' задают + диапазон изменения значений в + соответствующих направление(ях). + Младшие размерности массива VDAT + должны быть больше выбранного + диапазона массива DAT. Например, `put dat + v : 0 :' присвоит DAT[i,0,j]=VDAT.ny>DAT.nz ? VDAT[i,j] : + VDAT[i], где i=0...(DAT.nx-1), j=0...(DAT.nz-1) и + условие vdat.nx>=dat.nx выполнено.  File: mgl_ru.info, Node: Rearrange data, Next: File I/O, Prev: Data filling, Up: MGL interface @@ -2232,43 +3130,59 @@ File: mgl_ru.info, Node: Rearrange data, Next: File I/O, Prev: Data filling, ===================================================== -- Команда MGL: rearrange dat `mx [my=0 mz=0]' - Изменяет размерность данных без изменения самого массива данных, - так что результирующий массив MX*MY*MZ < nx*ny*nz. Если один из - параметров MY или MZ ноль, то он будет выбран оптимальным образом. - Например, если MY=0, то будет MY=nx*ny*nz/MX и MZ=1. + Изменяет размерность данных без + изменения самого массива данных, + так что результирующий массив MX*MY*MZ < + nx*ny*nz. Если один из параметров MY или MZ + ноль, то он будет выбран оптимальным + образом. Например, если MY=0, то будет + MY=nx*ny*nz/MX и MZ=1. -- Команда MGL: extend dat `n1 [n2=0]' - Увеличивает размер данных путем вставки (|N1|+1) новых срезов - после (для N1>0) или перед (для N1<0) существующими данными. Можно - добавить сразу 2 размерности для 1d массива, используя второй - параметр N2. Данные в новые срезы будут скопированы из - существующих. Например, для N1>0 новый массив будет a_ij^new = - a_i^old where j=0...N1. Соответственно, для N1<0 новый массив + Увеличивает размер данных путем + вставки (|N1|+1) новых срезов после (для + N1>0) или перед (для N1<0) существующими + данными. Можно добавить сразу 2 + размерности для 1d массива, + используя второй параметр N2. Данные + в новые срезы будут скопированы из + существующих. Например, для N1>0 новый + массив будет a_ij^new = a_i^old where j=0...N1. + Соответственно, для N1<0 новый массив будет a_ij^new = a_j^old, где i=0...|N1|. -- Команда MGL: transpose dat ['dim'='yxz'] - Транспонирует (меняет порядок размерностей) массив данных. Новый - порядок размерностей задается строкой DIM. + Транспонирует (меняет порядок + размерностей) массив данных. Новый + порядок размерностей задается + строкой DIM. -- Команда MGL: squeeze dat `rx [ry=1 rz=1 sm=off]' - Уменьшает размер данных путем удаления элементов с индексами не - кратными RX, RY, RZ соответственно. Параметр SMOOTH задает - использовать сглаживания (т.е. out[i]=\sum_{j=i,i+r} a[j]/r) или - нет (т.е. out[i]=a[j*r]). + Уменьшает размер данных путем + удаления элементов с индексами не + кратными RX, RY, RZ соответственно. + Параметр SMOOTH задает использовать + сглаживания (т.е. out[i]=\sum_{j=i,i+r} a[j]/r) + или нет (т.е. out[i]=a[j*r]). -- Команда MGL: crop dat `n1 n2' 'dir' - Обрезает границы данных при IN2 (при N2>0) или - I>`n[xyz]'-N2 (при N2<=0) вдоль направления DIR. + Обрезает границы данных при IN2 + (при N2>0) или I>`n[xyz]'-N2 (при N2<=0) вдоль + направления DIR. -- Команда MGL: delete dat - Удаляет массив DAT и освобождает использованную память. Может быть - полезно для больших неиспользуемых массивов. + Удаляет массив DAT и освобождает + использованную память. Может быть + полезно для больших неиспользуемых + массивов. -- Команда MGL: delete dat 'dir' `[pos=off num=0]' - Удаляет NUM срезов вдоль направления DIR с позиции POS. + Удаляет NUM срезов вдоль направления + DIR с позиции POS. -- Команда MGL: insert dat 'dir' `[pos=off num=0]' - Вставляет NUM срезов вдоль направления DIR с позиции POS и + Вставляет NUM срезов вдоль + направления DIR с позиции POS и заполняет их нулями.  @@ -2278,53 +3192,71 @@ File: mgl_ru.info, Node: File I/O, Next: Make another data, Prev: Rearrange d =================================================== -- Команда MGL: read dat 'fname' - Читает данные из текстового файла с разделителями символом - пробела/табуляции с автоматическим определением размера массива. - Двойной перевод строки начинает новый срез данных (по направлению - z). + Читает данные из текстового файла с + разделителями символом + пробела/табуляции с автоматическим + определением размера массива. + Двойной перевод строки начинает + новый срез данных (по направлению z). -- Команда MGL: read dat 'fname' `mx [my=1 mz=1]' - Читает данные из текстового файла с заданными размерами. Ничего не - делается если параметры MX, MY или MZ равны нулю или отрицательны. + Читает данные из текстового файла с + заданными размерами. Ничего не + делается если параметры MX, MY или MZ + равны нулю или отрицательны. -- Команда MGL: readmat dat 'fname' [`dim=2'] - Читает данные из текстового файла с размерами, указанными в первых - DIM числах файла. При этом переменная DIM задает размерность (1d, - 2d, 3d) данных. + Читает данные из текстового файла с + размерами, указанными в первых DIM + числах файла. При этом переменная DIM + задает размерность (1d, 2d, 3d) данных. -- Команда MGL: readall dat 'templ' `v1 v2 [dv=1 slice=off]' - Объединяет данные из нескольких текстовых файлов. Имена файлов - определяются вызовом функции `sprintf(fname,templ,val);', где VAL - меняется от V1 до V2 с шагом DV. Данные загружаются один за другим - в один и тот же срез данных (при SLICE=`off') или срез-за-срезом - (при SLICE=`on'). + Объединяет данные из нескольких + текстовых файлов. Имена файлов + определяются вызовом функции + `sprintf(fname,templ,val);', где VAL меняется от V1 + до V2 с шагом DV. Данные загружаются + один за другим в один и тот же срез + данных (при SLICE=`off') или + срез-за-срезом (при SLICE=`on'). -- Команда MGL: readall dat 'templ' `[slice=off]' - Объединяет данные из нескольких текстовых файлов, чьи имена - удовлетворяют шаблону TEMPL (например, TEMPL=`"t_*.dat"'). Данные - загружаются один за другим в один и тот же срез данных (при - SLICE=`off') или срез-за-срезом (при SLICE=`on'). + Объединяет данные из нескольких + текстовых файлов, чьи имена + удовлетворяют шаблону TEMPL (например, + TEMPL=`"t_*.dat"'). Данные загружаются один + за другим в один и тот же срез данных + (при SLICE=`off') или срез-за-срезом (при + SLICE=`on'). -- Команда MGL: save dat 'fname' - Сохраняет массив данных в текстовый файл. + Сохраняет массив данных в текстовый + файл. -- Команда MGL: readhdf dat 'fname' 'dname' - Читает массив с именем DNAME из HDF5 или HDF4 файла FNAME. + Читает массив с именем DNAME из HDF5 или + HDF4 файла FNAME. -- Команда MGL: savehdf dat 'fname' 'dname' - Сохраняет массив под именем DNAME в HDF5 или HDF4 файл FNAME. + Сохраняет массив под именем DNAME в HDF5 + или HDF4 файл FNAME. -- Команда MGL: import dat 'fname' 'sch' [`v1=0 v2=1'] - Читает данные из растрового файла. RGB значения пикселов - преобразуются в число в диапазоне [V1, V2] используя цветовую - схему SCH (*note Color scheme::). + Читает данные из растрового файла. + RGB значения пикселов преобразуются + в число в диапазоне [V1, V2] используя + цветовую схему SCH (*note Color scheme::). -- Команда MGL: export dat 'fname' 'sch' [`v1=0 v2=0'] - Сохраняет данные в растровый файл. Числовые значения, - нормированные в диапазон [V1, V2], преобразуются в RGB значения - пикселов, используя цветовую схему SCH (*note Color scheme::). - Если V1>=V2, то значения V1, V2 определяются автоматически как - минимальное и максимальное значение данных. + Сохраняет данные в растровый файл. + Числовые значения, нормированные в + диапазон [V1, V2], преобразуются в RGB + значения пикселов, используя + цветовую схему SCH (*note Color scheme::). Если + V1>=V2, то значения V1, V2 определяются + автоматически как минимальное и + максимальное значение данных.  File: mgl_ru.info, Node: Make another data, Next: Change data, Prev: File I/O, Up: MGL interface @@ -2333,147 +3265,213 @@ File: mgl_ru.info, Node: Make another data, Next: Change data, Prev: File I/O ============================================= -- Команда MGL: combine res adat bdat - Возвращает в массиве данных RES прямое произведение массивов + Возвращает в массиве данных RES + прямое произведение массивов (наподобие, res[i,j] = adat[i]*bdat[j] и т.д.). -- Команда MGL: evaluate res dat idat [`norm=on'] -- Команда MGL: evaluate res dat idat jdat [`norm=on'] -- Команда MGL: evaluate res dat idat jdat kdat [`norm=on'] - Возвращает массив данных RES, полученный в результате интерполяции - исходного массива в точках других массивов (например, - res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры массивов IDAT, JDAT, - KDAT должны совпадать. Координаты в IDAT, JDAT, KDAT полагаются - нормированными в диапазон [0,1] (при NORM=`on') или в диапазоны - [0,nx], [0,ny], [0,nz] соответственно. + Возвращает массив данных RES, + полученный в результате + интерполяции исходного массива в + точках других массивов (например, + res[i,j]=dat[idat[i,j],jdat[i,j]]). Размеры + массивов IDAT, JDAT, KDAT должны совпадать. + Координаты в IDAT, JDAT, KDAT полагаются + нормированными в диапазон [0,1] (при + NORM=`on') или в диапазоны [0,nx], [0,ny], [0,nz] + соответственно. -- Команда MGL: hist res dat `num v1 v2 [nsub=0]' -- Команда MGL: hist res dat wdat `num v1 v2 [nsub=0]' - Возвращает распределение (гистограмму) RES из NUM точек от - значений массива DAT в диапазоне [V1, V2]. Массив WDAT задает веса - элементов (все веса равны 1 если WDAT не указан). Параметр NSUB - задает число дополнительных точек интерполяции (для сглаживания - получившейся гистограммы). + Возвращает распределение + (гистограмму) RES из NUM точек от + значений массива DAT в диапазоне [V1, + V2]. Массив WDAT задает веса элементов + (все веса равны 1 если WDAT не указан). + Параметр NSUB задает число + дополнительных точек интерполяции + (для сглаживания получившейся + гистограммы). -- Команда MGL: hist res xdat adat -- Команда MGL: hist res xdat ydat adat -- Команда MGL: hist res xdat ydat zdat adat - Возвращает распределение (гистограмму) RES от значений массива - ADAT, параметрически зависящего от координат {XDAT,YDAT,ZDAT} в - диапазоне осей координат. Массив ADAT играет роль веса точки. - Число точек в результате RES - максимум из размера RES и 100. + Возвращает распределение + (гистограмму) RES от значений массива + ADAT, параметрически зависящего от + координат {XDAT,YDAT,ZDAT} в диапазоне осей + координат. Массив ADAT играет роль + веса точки. Число точек в результате + RES - максимум из размера RES и 100. -- Команда MGL: momentum res dat 'how' ['dir'='z'] - Возвращает в массиве данных RES момент (1d массив) данных DAT - вдоль направления DIR. Строка HOW определяет тип момента. Момент - определяется как res_k = \sum_ij how(x_i,y_j,z_k) dat_ij/ \sum_ij - a_ij если DIR=`z' и т.д. Координаты `x', `y', `z' - индексы - массива в диапазоне [0,1]. + Возвращает в массиве данных RES + момент (1d массив) данных DAT вдоль + направления DIR. Строка HOW определяет + тип момента. Момент определяется как + res_k = \sum_ij how(x_i,y_j,z_k) dat_ij/ \sum_ij a_ij если + DIR=`z' и т.д. Координаты `x', `y', `z' - + индексы массива в диапазоне [0,1]. -- Команда MGL: sum res dat 'dir' - Возвращает в массиве данных RES результат суммирования DAT вдоль + Возвращает в массиве данных RES + результат суммирования DAT вдоль направления(ий) DIR. -- Команда MGL: max res dat 'dir' - Возвращает в массиве данных RES максимальное значение DAT вдоль - направления(ий) DIR. Gets array which is the maximal data values - in given direction or direction(s). + Возвращает в массиве данных RES + максимальное значение DAT вдоль + направления(ий) DIR. Gets array which is the maximal + data values in given direction or direction(s). -- Команда MGL: min res dat 'dir' - Возвращает в массиве данных RES минимальное значение DAT вдоль + Возвращает в массиве данных RES + минимальное значение DAT вдоль направления(ий) DIR. -- Команда MGL: resize res dat `mx [my=1 mz=1]' - Возвращает массив данных RES размером MX, MY, MZ со значениями - полученными интерполяцией значений массива DAT. + Возвращает массив данных RES + размером MX, MY, MZ со значениями + полученными интерполяцией значений + массива DAT. -- Команда MGL: subdata res dat `xx [yy=: zz=:]' - Возвращает в RES подмассив массива данных DAT с фиксированными - значениями индексов с положительными значениями. Например, - `subdata a b : 2' выделяет третью строку (индексы начинаются с - нуля), `subdata a b 4 :' выделяет 5-ую колонку, `subdata a b : : - 3' выделяет 4-ый срез и т.д. + Возвращает в RES подмассив массива + данных DAT с фиксированными + значениями индексов с + положительными значениями. + Например, `subdata a b : 2' выделяет третью + строку (индексы начинаются с нуля), + `subdata a b 4 :' выделяет 5-ую колонку, `subdata + a b : : 3' выделяет 4-ый срез и т.д. -- Команда MGL: trace res dat - Возвращает массив REF диагональных элементов DAT[i,i] (для 2D - данных) или DAT[i,i,i] (для 3D данных) где i=0...nx-1. В 1D случае - возвращается сам массив данных DAT. Размеры массива данных должен - быть DAT.ny, DAT.nz >= DAT.nx или DAT.ny, DAT.nz = 1. + Возвращает массив REF диагональных + элементов DAT[i,i] (для 2D данных) или + DAT[i,i,i] (для 3D данных) где i=0...nx-1. В 1D + случае возвращается сам массив + данных DAT. Размеры массива данных + должен быть DAT.ny, DAT.nz >= DAT.nx или DAT.ny, + DAT.nz = 1. -- Команда MGL: transform dat 'type' real imag - Выполняет интегральное преобразование комплексных данных REAL, - IMAG в выбранном направлении и возвращает модуль результата в RES. - Порядок и тип преобразований задается строкой TYPE: первый символ - для x-направления, второй для y-направления, третий для - z-направления. Возможные символы: `f' - прямое преобразование - Фурье, `i' - обратное преобразование Фурье, `s' - синус - преобразование, `c' - косинус преобразование, `h' - преобразование - Ханкеля, `n' или ` ' - нет преобразования. + Выполняет интегральное + преобразование комплексных данных + REAL, IMAG в выбранном направлении и + возвращает модуль результата в RES. + Порядок и тип преобразований + задается строкой TYPE: первый символ + для x-направления, второй для + y-направления, третий для + z-направления. Возможные символы: `f' - + прямое преобразование Фурье, `i' - + обратное преобразование Фурье, `s' - + синус преобразование, `c' - косинус + преобразование, `h' - преобразование + Ханкеля, `n' или ` ' - нет + преобразования. -- Команда MGL: transforma dat 'type' ampl phase - Аналогично предыдущему с заданными амплитудой AMPL и фазой PHASE + Аналогично предыдущему с заданными + амплитудой AMPL и фазой PHASE комплексных чисел. -- Команда MGL: stfad res real imag `dn' ['dir'='x'] - Выполняет оконное преобразование Фурье длиной DN для комплексных - данных REAL, IMAG и возвращает модуль результата в RES. Например, - для DIR=`x' результат будет иметь размер {int(nx/dn), dn, ny} и - будет равен res[i,j,k]=|\sum_d^dn + Выполняет оконное преобразование + Фурье длиной DN для комплексных + данных REAL, IMAG и возвращает модуль + результата в RES. Например, для DIR=`x' + результат будет иметь размер {int(nx/dn), + dn, ny} и будет равен res[i,j,k]=|\sum_d^dn exp(I*j*d)*(real[i*dn+d,k]+I*imag[i*dn+d,k])|/dn. -- Команда MGL: pde res 'ham' ini_re ini_im [`dz=0.1 k0=100'] - Решает уравнение в частных производных du/dz = - i*k0*HAM(p,q,x,y,z,|u|)[u], где p=-i/k0*d/dx, q=-i/k0*d/dy - - псевдо-дифференциальные операторы. Параметры INI_RE, INI_IM задают - начальное распределение поля. Координаты в уравнении и в решении - полагаются в диапазоне осей координат. Замечу, что внутри этот - диапазон увеличивается в 3/2 раза для уменьшения отражения от - границ расчетного интервала. Параметр DZ задает шаг по - эволюционной координате z. В данный момент использован упрощенный - алгоритм, когда все "смешанные" члена (типа `x*p'->x*d/dx) - исключаются. Например, в 2D случае это функции типа ham = f(p,z) + - g(x,z,u). При этом допускаются коммутирующие комбинации (типа - `x*q'->x*d/dy). Переменная `u' используется для обозначения - амплитуды поля |u|. Это позволяет решать нелинейные задачи - - например, нелинейное уравнение Шредингера `ham='p^2+q^2-u^2''. - Также можно указать мнимую часть для поглощения (типа `ham = - 'p^2+i*x*(x>0)''), но только если зависимость от `i' линейная, - т.е. ham = hre+i*him. См. раздел *note PDE sample::, для примеров - кода и графика. + Решает уравнение в частных + производных du/dz = i*k0*HAM(p,q,x,y,z,|u|)[u], где + p=-i/k0*d/dx, q=-i/k0*d/dy - + псевдо-дифференциальные операторы. + Параметры INI_RE, INI_IM задают начальное + распределение поля. Координаты в + уравнении и в решении полагаются в + диапазоне осей координат. Замечу, + что внутри этот диапазон + увеличивается в 3/2 раза для + уменьшения отражения от границ + расчетного интервала. Параметр DZ + задает шаг по эволюционной + координате z. В данный момент + использован упрощенный алгоритм, + когда все "смешанные" члена (типа + `x*p'->x*d/dx) исключаются. Например, в 2D + случае это функции типа ham = f(p,z) + + g(x,z,u). При этом допускаются + коммутирующие комбинации (типа + `x*q'->x*d/dy). Переменная `u' используется + для обозначения амплитуды поля |u|. + Это позволяет решать нелинейные + задачи - например, нелинейное + уравнение Шредингера `ham='p^2+q^2-u^2''. + Также можно указать мнимую часть + для поглощения (типа `ham = 'p^2+i*x*(x>0)''), + но только если зависимость от `i' + линейная, т.е. ham = hre+i*him. См. раздел *note + PDE sample::, для примеров кода и графика. + + -- Команда MGL: ray res 'ham' `x0 y0 z0 p0 q0 v0 [dt=0.1 + tmax=10]' + Решает систему геометрооптических + уравнений d_r_/dt = d HAM/d_p_, d_p_/dt = -d HAM/d_r_. + Это гамильтоновы уравнения для + траектории частицы в 3D случае. + Гамильтониан HAM может зависеть от + координат `x', `y', `z', импульсов `p'=px, + `q'=py, `v'=pz и времени `t': ham = H(x,y,z,p,q,v,t). + Начальная точка (при `t=0') задается + переменными {X0, Y0, Z0, P0, Q0, V0}. + Параметры DT и TMAX задают шаг и + максимальное время интегрирования. + Результат RES - массив {x,y,z,p,q,v,t} с + размером {7 * int(TMAX/DT+1) }. См. раздел *note + Beam tracing sample::, для примеров кода и + графика. - -- Команда MGL: ray res 'ham' `x0 y0 z0 p0 q0 v0 [dt=0.1 tmax=10]' - Решает систему геометрооптических уравнений d_r_/dt = d HAM/d_p_, - d_p_/dt = -d HAM/d_r_. Это гамильтоновы уравнения для траектории - частицы в 3D случае. Гамильтониан HAM может зависеть от координат - `x', `y', `z', импульсов `p'=px, `q'=py, `v'=pz и времени `t': ham - = H(x,y,z,p,q,v,t). Начальная точка (при `t=0') задается - переменными {X0, Y0, Z0, P0, Q0, V0}. Параметры DT и TMAX задают - шаг и максимальное время интегрирования. Результат RES - массив - {x,y,z,p,q,v,t} с размером {7 * int(TMAX/DT+1) }. См. раздел *note - Beam tracing sample::, для примеров кода и графика. - - -- Команда MGL: qo2d res 'ham' ini_re ini_im ray [`r=1 k0=100' xx=0 - yy=0] - Решает уравнение в частных производных du/dt = - i*k0*HAM(p,q,x,y,|u|)[u] в сопровождающей системе координат, где - p=-i/k0*d/dx, q=-i/k0*d/dy - псевдо-дифференциальные операторы. - Параметры INI_RE, INI_IM задают начальное распределение поля. - Параметр RAY задает опорный луч для сопровождающей системы - координат. Можно использовать луч найденный с помощью `ray'. - Опорный луч должен быть достаточно гладкий, чтобы система - координат была однозначной и для исключения ошибок интегрирования. - Если массивы XX и YY указаны, то в них записываются декартовы - координаты для каждой точки найденного решения. См. также *note - pde::. См. раздел *note Beam tracing sample::, для примеров кода и + -- Команда MGL: qo2d res 'ham' ini_re ini_im ray [`r=1 k0=100' + xx=0 yy=0] + Решает уравнение в частных + производных du/dt = i*k0*HAM(p,q,x,y,|u|)[u] в + сопровождающей системе координат, + где p=-i/k0*d/dx, q=-i/k0*d/dy - + псевдо-дифференциальные операторы. + Параметры INI_RE, INI_IM задают начальное + распределение поля. Параметр RAY + задает опорный луч для + сопровождающей системы координат. + Можно использовать луч найденный с + помощью `ray'. Опорный луч должен быть + достаточно гладкий, чтобы система + координат была однозначной и для + исключения ошибок интегрирования. + Если массивы XX и YY указаны, то в них + записываются декартовы координаты + для каждой точки найденного + решения. См. также *note pde::. См. раздел + *note Beam tracing sample::, для примеров кода и графика. -- Команда MGL: jacobian res xdat ydat [zdat=0] - Вычисляет якобиан преобразования {i,j,k} в {XDAT,YDAT,ZDAT}, где - координаты {i,j,k} полагаются нормированными в интервал [0,1]. - Якобиан находится по формуле det||dr_\alpha/d\xi_\beta||, где - r={XDAT,YDAT,ZDAT} и \xi={i,j,k}. Все размерности всех массивов - должны быть одинаковы. Данные должны быть трехмерными если указаны - все 3 массива {XDAT,YDAT,ZDAT} или двумерными если только 2 - массива {XDAT,YDAT}. + Вычисляет якобиан преобразования + {i,j,k} в {XDAT,YDAT,ZDAT}, где координаты {i,j,k} + полагаются нормированными в + интервал [0,1]. Якобиан находится по + формуле det||dr_\alpha/d\xi_\beta||, где + r={XDAT,YDAT,ZDAT} и \xi={i,j,k}. Все размерности + всех массивов должны быть + одинаковы. Данные должны быть + трехмерными если указаны все 3 + массива {XDAT,YDAT,ZDAT} или двумерными + если только 2 массива {XDAT,YDAT}.  File: mgl_ru.info, Node: Change data, Next: Operators, Prev: Make another data, Up: MGL interface @@ -2481,87 +3479,121 @@ File: mgl_ru.info, Node: Change data, Next: Operators, Prev: Make another dat 1.22 Изменение данных ==================================== -Эти команды изменяют данные вдоль заданного направления(ий) типа -например дифференцирования, интегрирования и т.д. Направление -указывается строкой DIR, которая может содержать символы `x', `y' и/или -`z', вдоль которых изменения будут применены. +Эти команды изменяют данные вдоль +заданного направления(ий) типа +например дифференцирования, +интегрирования и т.д. Направление +указывается строкой DIR, которая может +содержать символы `x', `y' и/или `z', вдоль +которых изменения будут применены. -- Команда MGL: cumsum dat 'dir' - Суммирует с накоплением в выбранном направлении(ях). + Суммирует с накоплением в выбранном + направлении(ях). -- Команда MGL: integrate dat 'dir' - Выполняет интегрирование (подобно суммированию с накоплением) в + Выполняет интегрирование (подобно + суммированию с накоплением) в выбранном направлении(ях). -- Команда MGL: diff dat 'dir' - Выполняет дифференцирование в выбранном направлении(ях). + Выполняет дифференцирование в + выбранном направлении(ях). -- Команда MGL: diff dat xdat ydat [zdat=0] - Выполняет дифференцирование данных DAT, параметрически зависящих - от координат, в направлении XDAT с YDAT, ZDAT=constant. Параметр - ZDAT может быть опущен, что соответствует 2D случаю. Используются - следующие формулы (2D случай): da/dx = - (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j), где a_i=da/di, a_j=da/dj - обозначает дифференцирование вдоль 1-ой и 2-ой размерности. - Похожие формулы используются и в 3D случае. Порядок аргументов - можно менять - например, если данные a(i,j) зависят от координат - {x(i,j), y(i,j)}, то обычная производная по `x' будет равна `diff - a x y', а обычная производная по `y' будет равна `diff a y x'. + Выполняет дифференцирование данных + DAT, параметрически зависящих от + координат, в направлении XDAT с YDAT, + ZDAT=constant. Параметр ZDAT может быть + опущен, что соответствует 2D случаю. + Используются следующие формулы (2D + случай): da/dx = (a_j*y_i-a_i*y_j)/(x_j*y_i-x_i*y_j), где + a_i=da/di, a_j=da/dj обозначает + дифференцирование вдоль 1-ой и 2-ой + размерности. Похожие формулы + используются и в 3D случае. Порядок + аргументов можно менять - например, + если данные a(i,j) зависят от + координат {x(i,j), y(i,j)}, то обычная + производная по `x' будет равна `diff a x + y', а обычная производная по `y' будет + равна `diff a y x'. -- Команда MGL: diff2 dat 'dir' - Выполняет двойное дифференцирование (как в операторе Лапласа) в - выбранном направлении(ях). + Выполняет двойное + дифференцирование (как в операторе + Лапласа) в выбранном направлении(ях). -- Команда MGL: sinfft dat 'dir' - Выполняет синус преобразование в выбранном направлении(ях). Синус + Выполняет синус преобразование в + выбранном направлении(ях). Синус преобразование есть \sum a_i \sin(k i). -- Команда MGL: cosfft dat 'dir' - Выполняет косинус преобразование в выбранном направлении(ях). - Синус преобразование есть \sum a_i \cos(k i). + Выполняет косинус преобразование в + выбранном направлении(ях). Синус + преобразование есть \sum a_i \cos(k i). -- Команда MGL: hankel dat 'dir' - Выполняет преобразование Ханкеля в выбранном направлении(ях). - Преобразование Ханкеля есть \sum a_i J_0(k i). + Выполняет преобразование Ханкеля в + выбранном направлении(ях). + Преобразование Ханкеля есть \sum a_i + J_0(k i). -- Команда MGL: swap dat 'dir' - Меняет местами левую и правую части данных в выбранном - направлении(ях). Полезно для отображения результата FFT. + Меняет местами левую и правую части + данных в выбранном направлении(ях). + Полезно для отображения результата + FFT. -- Команда MGL: roll dat 'dir' num - Сдвигает данные на NUM ячеек в выбранном направлении(ях). - Соответствует замене индекса на I->(I+NUM)%N. + Сдвигает данные на NUM ячеек в + выбранном направлении(ях). + Соответствует замене индекса на + I->(I+NUM)%N. -- Команда MGL: mirror dat 'dir' - Отражает данные в выбранном направлении(ях). Соответствует замене - индекса на I->N-I. + Отражает данные в выбранном + направлении(ях). Соответствует + замене индекса на I->N-I. -- Команда MGL: sew dat ['dir'='xyz' `da=2*pi'] - Удаляет скачки данных (например, скачки фазы после обратных - тригонометрических функций) с периодом DA в выбранном + Удаляет скачки данных (например, + скачки фазы после обратных + тригонометрических функций) с + периодом DA в выбранном направлении(ях). -- Команда MGL: smooth data `type' ['dir'='xyz'] - Сглаживает данные в выбранном направлении(ях) методом TYPE. Сейчас - поддерживаются 4 метода: `0' ничего не делает, `1' линейное - усреднение по 3 точкам, `2' линейное усреднение по 5 точкам, `3' - квадратичное усреднение по 5 точкам. + Сглаживает данные в выбранном + направлении(ях) методом TYPE. Сейчас + поддерживаются 4 метода: `0' ничего не + делает, `1' линейное усреднение по 3 + точкам, `2' линейное усреднение по 5 + точкам, `3' квадратичное усреднение + по 5 точкам. -- Команда MGL: envelop dat ['dir'='x'] - Находит огибающую данных в выбранном направлении. Только одно - направление может быть выбрано за раз. + Находит огибающую данных в + выбранном направлении. Только одно + направление может быть выбрано за + раз. -- Команда MGL: normsl dat `v1 v2' ['dir'='z' `keep=on sym=off'] - Нормирует данные срез-за-срезом в выбранном направлении DIR в - интервал [V1,V2]. Если SYM=`on', то используется симметричный - интервал [-max(|v1|,|v2|), max(|v1|,|v2|)]. Если KEEP=`on', то - максимальное значение k-го среза ограничено величиной \sqrt{\sum - a_ij(k)/\sum a_ij(0)}. + Нормирует данные срез-за-срезом в + выбранном направлении DIR в интервал + [V1,V2]. Если SYM=`on', то используется + симметричный интервал [-max(|v1|,|v2|), + max(|v1|,|v2|)]. Если KEEP=`on', то максимальное + значение k-го среза ограничено + величиной \sqrt{\sum a_ij(k)/\sum a_ij(0)}. -- Команда MGL: norm dat `v1 v2 [sym=off dim=0]' - Нормирует данные в интервал [V1,V2]. Если SYM=`on', то - используется симметричный интервал [-max(|v1|,|v2|), - max(|v1|,|v2|)]. Изменения применяются только к срезам >=DIM. + Нормирует данные в интервал [V1,V2]. + Если SYM=`on', то используется + симметричный интервал [-max(|v1|,|v2|), + max(|v1|,|v2|)]. Изменения применяются + только к срезам >=DIM.  File: mgl_ru.info, Node: Operators, Next: Program flow, Prev: Change data, Up: MGL interface @@ -2582,13 +3614,15 @@ File: mgl_ru.info, Node: Operators, Next: Program flow, Prev: Change data, U Делит каждый элемент на число. -- Команда MGL: addto dat dat2 - Поэлементно прибавляет DAT2 к массиву DAT. + Поэлементно прибавляет DAT2 к массиву + DAT. -- Команда MGL: addto dat `val' Прибавляет число к каждому элементу. -- Команда MGL: subto dat dat2 - Поэлементно вычитает DAT2 из массива DAT. + Поэлементно вычитает DAT2 из массива + DAT. -- Команда MGL: subto dat `val' Вычитает число из каждого элемента. @@ -2599,89 +3633,115 @@ File: mgl_ru.info, Node: Program flow, Next: Command options, Prev: Operators 1.24 Программирование ===================================== -Эти команды управляют порядком выполнения других команд (условия, -циклы, подпрограммы), (пере-)определяют аргументы скрипта и пр. +Эти команды управляют порядком +выполнения других команд (условия, +циклы, подпрограммы), (пере-)определяют +аргументы скрипта и пр. -- Команда MGL: chdir 'path' Переходит в папку PATH. -- Команда MGL: define $N smth - Задает N-ый аргумент скрипта равным SMTH. Отмечу, что SMTH - используется как есть (с символами `'' если присутствуют). - Выполняется только подстановка других макроопределений $0...$9, - $a...$z. Здесь N это цифра (0...9) или буква (a...z). + Задает N-ый аргумент скрипта равным + SMTH. Отмечу, что SMTH используется как + есть (с символами `'' если + присутствуют). Выполняется только + подстановка других + макроопределений $0...$9, $a...$z. Здесь N + это цифра (0...9) или буква (a...z). -- Команда MGL: define name smth - Определяет константу (скаляр) с именем `name' и числовым значением - `smth'. Позднее она может быть использована как обычное число. + Определяет константу (скаляр) с + именем `name' и числовым значением `smth'. + Позднее она может быть использована + как обычное число. -- Команда MGL: defchr $N smth - Задает N-ый аргумент скрипта равным символу с UTF кодом SMTH. - Здесь N это цифра (0...9) или буква (a...z). + Задает N-ый аргумент скрипта равным + символу с UTF кодом SMTH. Здесь N это + цифра (0...9) или буква (a...z). -- Команда MGL: defnum $N smth - Задает N-ый аргумент скрипта равным числовому значению SMTH. Здесь - N это цифра (0...9) или буква (a...z). + Задает N-ый аргумент скрипта равным + числовому значению SMTH. Здесь N это + цифра (0...9) или буква (a...z). -- Команда MGL: defpal $N smth - Задает N-ый аргумент скрипта равным символу палитры с индексом, - найденным из SMTH. Здесь N это цифра (0...9) или буква (a...z). + Задает N-ый аргумент скрипта равным + символу палитры с индексом, + найденным из SMTH. Здесь N это цифра + (0...9) или буква (a...z). -- Команда MGL: call 'fname' [ARG1 ARG2 ... ARG9] - Переходит к выполнению (вызывает) подпрограммы FNAME (или внешнего - скрипта, если функция не была найдена). Опциональные аргументы - передаются в подпрограмму. См. также *note func::. + Переходит к выполнению (вызывает) + подпрограммы FNAME (или внешнего + скрипта, если функция не была + найдена). Опциональные аргументы + передаются в подпрограмму. См. также + *note func::. -- Команда MGL: func 'fname' [narg=0] - Определяет подпрограмму с именем FNAME и задает число требуемых - аргументов. Аргументы будут помещены в параметры скрипта $1, $2, - ... $9. Отмечу, что выполнение основной программы должно быть - остановлено до начала определений подпрограмм. См. также *note - stop::, *note return::. + Определяет подпрограмму с именем + FNAME и задает число требуемых + аргументов. Аргументы будут + помещены в параметры скрипта $1, $2, ... + $9. Отмечу, что выполнение основной + программы должно быть остановлено + до начала определений подпрограмм. + См. также *note stop::, *note return::. -- Команда MGL: return Возвращается из подпрограммы. -- Команда MGL: if dat 'cond' - Начинает блок команд, выполняемый если каждый элемент DAT + Начинает блок команд, выполняемый + если каждый элемент DAT удовлетворяет условию COND. -- Команда MGL: if `val' - Начинает блок команд, выполняемый если `val' не ноль. + Начинает блок команд, выполняемый + если `val' не ноль. -- Команда MGL: elseif dat 'cond' - Начинает блок команд, выполняемый если предыдущий `if' или - `elseif' не был выполнен и каждый элемент DAT удовлетворяет - условию COND. + Начинает блок команд, выполняемый + если предыдущий `if' или `elseif' не был + выполнен и каждый элемент DAT + удовлетворяет условию COND. -- Команда MGL: elseif `val' - Начинает блок команд, выполняемый если предыдущий `if' или - `elseif' не был выполнен и `val' не ноль. + Начинает блок команд, выполняемый + если предыдущий `if' или `elseif' не был + выполнен и `val' не ноль. -- Команда MGL: else - Начинает блок команд, выполняемый если предыдущий `if' или - `elseif' не был выполнен. + Начинает блок команд, выполняемый + если предыдущий `if' или `elseif' не был + выполнен. -- Команда MGL: endif - Заканчивает определение блока `if/elseif/else'. + Заканчивает определение блока + `if/elseif/else'. -- Команда MGL: for $N `v1 v2 [dv=1]' - Начинает блок команд, выполняемый в цикле с $N-ым аргументом - изменяющимся от V1 до V2 с шагом DV. Здесь N это цифра (0...9) или - буква (a...z). + Начинает блок команд, выполняемый в + цикле с $N-ым аргументом + изменяющимся от V1 до V2 с шагом DV. + Здесь N это цифра (0...9) или буква (a...z). -- Команда MGL: for $N dat - Начинает блок команд, выполняемый в цикле с $N-ым аргументом - пробегающим значения массива DAT. Здесь N это цифра (0...9) или - буква (a...z). + Начинает блок команд, выполняемый в + цикле с $N-ым аргументом пробегающим + значения массива DAT. Здесь N это + цифра (0...9) или буква (a...z). -- Команда MGL: next Заканчивает блок цикла `for'. -- Команда MGL: once `val' - Определяет код (между `once on' и `once off') который будет - выполнен только один раз. Полезно для работы с большими данными в - программах типа UDAV. + Определяет код (между `once on' и `once off') + который будет выполнен только один + раз. Полезно для работы с большими + данными в программах типа UDAV. -- Команда MGL: stop Останавливает выполнение скрипта. @@ -2692,61 +3752,81 @@ File: mgl_ru.info, Node: Command options, Next: Suffixes, Prev: Program flow, 1.25 Опции команд ============================ -Опции команд позволяют легко настроить вид отдельного графика не меняя -глобальных настроек для все рисунка. Опции указываются после команды. -Каждая опция отделяется от предыдущей символом `;'. Опции работают так, -что запоминают текущие настройки рисунка, применяют собственные -настройки, выполняют команду и возвращают глобальные настройки обратно. -Поэтому использование опций для команд обработки данных или настройки -графика бесполезно. - - Наиболее часто используемые опции - `xrange, yrange, zrange', -устанавливающие границы изменения осей координат (и тем самым -автоматических массивов). Например, команда `plot y; xrange 0.1 0.9' -построит кривую с x-координатой равно распределенной в интервале 0.1 -... 0.9, а не вдоль текущей оси x. +Опции команд позволяют легко +настроить вид отдельного графика не +меняя глобальных настроек для все +рисунка. Опции указываются после +команды. Каждая опция отделяется от +предыдущей символом `;'. Опции работают +так, что запоминают текущие настройки +рисунка, применяют собственные +настройки, выполняют команду и +возвращают глобальные настройки +обратно. Поэтому использование опций +для команд обработки данных или +настройки графика бесполезно. + + Наиболее часто используемые опции - +`xrange, yrange, zrange', устанавливающие границы +изменения осей координат (и тем самым +автоматических массивов). Например, +команда `plot y; xrange 0.1 0.9' построит кривую +с x-координатой равно распределенной в +интервале 0.1 ... 0.9, а не вдоль текущей +оси x. Полный список опций: -- Опция MGL: alpha `val' -- Опция MGL: alphadef `val' - Задает величину прозрачности поверхности. Значение должно быть в + Задает величину прозрачности + поверхности. Значение должно быть в диапазоне [0, 1]. См. также *note alphadef:: -- Опция MGL: ambient `val' - Задает яркость фонового освещения. Значение должно быть в - диапазоне [0, 1]. См. также *note ambient:: + Задает яркость фонового освещения. + Значение должно быть в диапазоне [0, + 1]. См. также *note ambient:: -- Опция MGL: crange `val1 val2' - Задает границы цветовой шкалы. См. также *note crange:: + Задает границы цветовой шкалы. См. + также *note crange:: -- Опция MGL: xrange `val1 val2' - Задает границы изменения координаты x. См. также *note xrange:: + Задает границы изменения + координаты x. См. также *note xrange:: -- Опция MGL: yrange `val1 val2' - Задает границы изменения координаты y. См. также *note yrange:: + Задает границы изменения + координаты y. См. также *note yrange:: -- Опция MGL: zrange `val1 val2' - Задает границы изменения координаты z. См. также *note zrange:: + Задает границы изменения + координаты z. См. также *note zrange:: -- Опция MGL: cut `val' - Задает обрезание точек за пределами осей координат. См. также - *note cut:: + Задает обрезание точек за пределами + осей координат. См. также *note cut:: -- Опция MGL: fontsize `val' - Задает размер текста. См. также *note font:: + Задает размер текста. См. также *note + font:: -- Опция MGL: marksize `val' - Задает размер маркеров. См. также *note marksize:: + Задает размер маркеров. См. также *note + marksize:: -- Опция MGL: meshnum `val' - Задает ориентировочное число линий, стрелок, ячеек и пр. См. также - *note meshnum:: + Задает ориентировочное число линий, + стрелок, ячеек и пр. См. также *note + meshnum:: -- Опция MGL: legend 'txt' - Добавляет строку 'txt' во внутренний массив записей легенды. Стиль - линии и маркера аргумента последней вызванной команды построения - *note 1D plotting::. См. также *note legend:: + Добавляет строку 'txt' во внутренний + массив записей легенды. Стиль линии + и маркера аргумента последней + вызванной команды построения *note 1D + plotting::. См. также *note legend::  File: mgl_ru.info, Node: Suffixes, Next: Utilities, Prev: Command options, Up: MGL interface @@ -2754,18 +3834,25 @@ File: mgl_ru.info, Node: Suffixes, Next: Utilities, Prev: Command options, U 1.26 Суффиксы переменных ========================================== -Суффиксы позволяют быстро получить числовую характеристику (размер, -максимальное или минимальное значение, сумму элементов и т.д.) массива -данных и использовать ее как число (скаляр) в аргументах. Суффиксы -начинаются с точки `.' сразу после (без пробелов) имени переменной и -временного массива. Например, `a.nx' даст размер массива A по оси х, -`b(1).max' даст максимальное значение второй строки массива B, -`(c(:,0)^2).sum' даст сумму квадратов элементов первой колонки массива -C и т.д. +Суффиксы позволяют быстро получить +числовую характеристику (размер, +максимальное или минимальное +значение, сумму элементов и т.д.) +массива данных и использовать ее как +число (скаляр) в аргументах. Суффиксы +начинаются с точки `.' сразу после (без +пробелов) имени переменной и +временного массива. Например, `a.nx' даст +размер массива A по оси х, `b(1).max' даст +максимальное значение второй строки +массива B, `(c(:,0)^2).sum' даст сумму +квадратов элементов первой колонки +массива C и т.д. Полный список суффиксов: *nx, ny, nz* - Размер массива в направлении x, y, z соответственно. + Размер массива в направлении x, y, z + соответственно. *max* Максимальное значение массива. @@ -2777,31 +3864,39 @@ C и т.д. Сумма элементов массива. *a* - Первый элемент массива (элемент с индексами 0,0,0). + Первый элемент массива (элемент с + индексами 0,0,0). *fst* Первое не нулевое значение массива. *lst* - Последнее не нулевое значение массива. + Последнее не нулевое значение + массива. *mx, my, mz* - Положение максимума в направлении x, y, z соответственно. + Положение максимума в направлении x, + y, z соответственно. *ax, ay, az, aa* - Положение центра масс в направлении x, y, z соответственно или - среднее значение массива. + Положение центра масс в направлении + x, y, z соответственно или среднее + значение массива. *wx, wy, wz, wa* - Ширина в направлении x, y, z соответственно или дисперсия + Ширина в направлении x, y, z + соответственно или дисперсия элементов массива. *sx, sy, sz, sa* - Асимметрия в направлении x, y, z соответственно или элементов + Асимметрия в направлении x, y, z + соответственно или элементов массива. *kx, ky, kz, ka* - Эксцесс в направлении x, y, z соответственно или элементов массива. + Эксцесс в направлении x, y, z + соответственно или элементов + массива.  File: mgl_ru.info, Node: Utilities, Prev: Suffixes, Up: MGL interface @@ -2809,30 +3904,44 @@ File: mgl_ru.info, Node: Utilities, Prev: Suffixes, Up: MGL interface 1.27 Утилиты для MGL ============================== -MathGL содержит несколько программ для работы со скриптами MGL. Есть -утилита для сохранения в растровое (`mgl2png', `mgl2gif') или векторное -(`mgl2eps', `mgl2svg') изображения. Программа `mglview' показывает -результат выполнения скрипта MGL и позволяет вращать и настраивать -график. Также можно транслировать MGL скрипт в C++ файл с помощью -программы `mgl2cpp'. - - Все эти программы имеют схожий набор аргументов. Первым идет имя -скрипта, а вторым идет имя выходного файлы (может быть опущено), -последние аргументы - опции скрипта и программы. К опциям относятся -параметры скрипта (это `$0, $1, ... $9') и настройки локали. Параметры -скрипта имеют формат `-Nval', где N=0,1...9 - номер параметра, val - -его значние. Например, опция `-1test' заменит `$1' на `test' в скрипте. -Опция -Lval устанавливает локаль в значение val. Например, `-Lutf8' +MathGL содержит несколько программ для +работы со скриптами MGL. Есть утилита +для сохранения в растровое (`mgl2png', +`mgl2gif') или векторное (`mgl2eps', `mgl2svg') +изображения. Программа `mglview' +показывает результат выполнения +скрипта MGL и позволяет вращать и +настраивать график. Также можно +транслировать MGL скрипт в C++ файл с +помощью программы `mgl2cpp'. + + Все эти программы имеют схожий набор +аргументов. Первым идет имя скрипта, а +вторым идет имя выходного файлы (может +быть опущено), последние аргументы - +опции скрипта и программы. К опциям +относятся параметры скрипта (это `$0, $1, +... $9') и настройки локали. Параметры +скрипта имеют формат `-Nval', где N=0,1...9 - +номер параметра, val - его значние. +Например, опция `-1test' заменит `$1' на `test' +в скрипте. Опция -Lval устанавливает +локаль в значение val. Например, `-Lutf8' будет использовать UTF-8 в скрипте. - Также можно создавать анимированные изображения GIF или набор JPEG -файлов с именами `frameNNNN.jpg' (где `NNNN' - номер кадра). Для этого -в скрипте надо указать параметры анимации для каждого кадра (строками с -коментариями `##a val' или опциями `-Aval') или в цикле (строкой с -комментарием `##с v1 v2 [dv]' или опцию `-Cn1:n2'), которые будут -подставлены в качестве параметра `$0' при последовательном вызове -скрипта. Для сохранения кадров в JPEG просто добавьте команду `write -''' в конце скрипта. + Также можно создавать анимированные +изображения GIF или набор JPEG файлов с +именами `frameNNNN.jpg' (где `NNNN' - номер кадра). +Для этого в скрипте надо указать +параметры анимации для каждого кадра +(строками с коментариями `##a val' или +опциями `-Aval') или в цикле (строкой с +комментарием `##с v1 v2 [dv]' или опцию +`-Cn1:n2'), которые будут подставлены в +качестве параметра `$0' при +последовательном вызове скрипта. Для +сохранения кадров в JPEG просто добавьте +команду `write ''' в конце скрипта.  File: mgl_ru.info, Node: Examples, Next: Samples, Prev: MGL interface, Up: Top @@ -3892,9 +5001,12 @@ File: mgl_ru.info, Node: Samples, Next: Copying This Manual, Prev: Examples, 3 Примеры использования MathGL ************************************************** -Эта глава содержит множество примеров кода для всех типов графиков, -наиболее важных возможностей библиотеки и советов. Аналогичные примеры -(с картинками) можно найти на `http://mathgl.sf.net/pictures.html'. +Эта глава содержит множество примеров +кода для всех типов графиков, наиболее +важных возможностей библиотеки и +советов. Аналогичные примеры (с +картинками) можно найти на +`http://mathgl.sf.net/pictures.html'. * Menu: @@ -6032,44 +7144,6 @@ text -0.5 0.5 'Plot $1 of 4' fplot 'sin(pi*x+pi*$1/2)' next - -File: mgl_ru.info, Node: StickPlot sample, Prev: ColumnPlot sample, Up: Advanced features - -3.7.14 StickPlot - пример использования ----------------------------------------------------------- - -[image src="../png/stick.png"] - -ranges -1 1 -1 1 0 1:light on -stickplot 3 0 40 30 : axis 'xyz_' -fsurf 'exp(-10*y^2-6*x^2)' -text 0.2 0 1.2 'z=0' '' -2 -stickplot 3 1 40 30 : axis 'xy_' -fsurf 'exp(-10*y^2/2-6*x^2)/sqrt(2)' -text 0.2 0 1.2 'z=1' '' -2 -stickplot 3 2 40 30 : axis 'xy_' -fsurf 'exp(-10*y^2/5-6*x^2)/sqrt(5)' -text 0.2 0 1.2 'z=2' '' -2 -xlabel '\tau' 0 : ylabel '\rho' - - -File: mgl_ru.info, Node: Stereo image sample, Prev: StickPlot sample, Up: Advanced features - -3.7.15 Пример стерео изображения -------------------------------------------------------- - -[image src="../png/stereo.png"] - -new a 50 40 -modify a '0.6*sin(2*pi*x)*sin(3*pi*y) + 0.4*cos(3*pi*(x*y))' -light on -subplot 2 1 0 -rotate 40 60+3 -box:surf a -subplot 2 1 1 -rotate 40 60-3 -box:surf a -  Local Variables: diff --git a/texinfo/mgl_ru.info-2 b/texinfo/mgl_ru.info-2 index 82e8068dbb76e732697c893b31e7c9ba86f791b7..31d85f7f22f6bc4945e2bff356e1e9dfa9f013ea 100644 GIT binary patch delta 3697 zcmbVPeQ*@z8F%-{CD{w0W5?FX5jF`D2qwARySdV*t65lU^_}X)0ws~Nc^Myr`A62dqHrt z{$XZv@9p!x`+WSK-}5~0?L1`p%@IrHNrv0?)ZFj$xh=WP<{Rc~xvl02^S8Wt)I6E% z<92=E#QiU%TX}OVw;gvz&DYG4+~d6Y3YV3cQA^K?WF)wDSyW5%h7wCe)jN59nXY!! z^L{Owip9UW^P@yPzc|#P#Di*x535QtrK<+VIcq(&f{VYds)jema~sjz>*lfCM&3M; z+hmTLW9U+^`6{ljm?P-x33RZh<~#p!+)YJ4i^P;xl{fU@!iw73xIA^+jvh5BfuwJphOan9%=rxPT6C-2~04&LeD>v<&|G5D%_S~Si?waO0qg_wV`(_KmH(3zB#lnpSq$$_)1|$rj{_8P_*DR!?N7(kZ#!sc;s|>o%hcBu1Z3L2dbKnNj)3q``6_*mtrbypja_&l*X5$UN; z&!-Pge5mf6&o4kexT=GiF^@{-rBR45Ung8DKv^Lo9UYvmC6%N~lIM0TaB=}HT~FDj zaK;Vigs+^dx$#`~qiN5qvbmh|xoTbsg_0TwyDDLDb;u^UiEME+(WXEyPytsrR%BPK zDPYl~^F6#$oyKau{o|L-ST^_F~KT7}hJm zzZ4nFaVz)(n^~_Heiyhf!z)nB>4*{yMRX7j-vK-J-^RMc?B!q|%Q&Gs+*C+C2`F&2 z_YSxkp2fIeMr($3xwC_Svh+`z2OaAH2hC0ZIL)j2S}RxR@S$k|}t)Te`XxEtLyqJGAceKlIiux>B>IVQt{ z?^_FkQB~1_@2`MmaXahsK|C&Vf`h#8k7_BHKpg)XS6P=gd!ME-tmuT76WdCpyaf$W zibJle99r5{&Lh#+w0M$2J;ShO|J~lrz{R8uCO1{WkfFkZ9UR=8yxSr;9I!l@vAOf6 z@SR2|-&zSXQ=t+UMbl4YPSjKmgQ+7BgF;x@u>^7Qz`hQ-M52d+cqrTnLu<-m*1&E2zD zNrIj(xiIfl5GKwpM(^El%X%3T3_o3;VLWhYy=)Uin&Dt7W`MH40-C$aFq=Q`ZYrXw z3#Rh0)R<+gj51(O6u_-L4Mi?uJ*0-AWq&1H8JvZ@D}+NmOQ?TW zdiCDg>qiK7H&E4D7cS5Xr++ zl2(|%Wf74=e9Kw7E`EF`P0IPlu?|G|!B&jU4a(LFtXs_9wat#K!C<$`C0?3kHEO7l zFa;h7#(G?EdAmH_N3(fvyhDv@3EbqNWk;w4b4|RySJyS2+W%}v$RfHVc=(B?V(Kh5 zXAPFeDq(z&opn3m(i2T^{&>N(uo6_Ey?-_&)=a~iv9nGuY}nbvQTCC|E~=00xEwIE zH^aIm80wW-j|cwQd!aaA8sSKimd4d5@tBmI@l-ieBnY&^8sSvmTo^ntEvxi7nPNBf zCX8+_-!lhDU_J>x$uwF7rwH?QAtYXC$3+t1wOxG{(cyxnyOD1cl2$zu5~)9@c9&X2 z!2=)fZnOzbYKUy+iSKek0_4Ix@!Mc>-&`ynJC-rQC=$XNAx&q&9%P9CKing8Zc3|2 z>^em7!hjY2vd2$WOC+9vWe4ZLl>?8^I?p~$8)G%;igZDP9Sv1Gk+B!scfhiYa%OM&c^1>Cc`SnL)viqGVkplx)L* z%ivVR4(BJVaCKip5#4@3Nx-H9b0P3-z$Q2-X&+GZwN%Ggt^_`R_P|V0q_l{k+=z4$ z{j;IY#QaNe>A9vtswbvQrQb?GA{5;4e1?_WFmu1mx_z(;7pE&bwErmWYCjpk)cas? zAY*e;$78AJm&2eGmg!g_gM{a9m_F24A_x@pxTa&tPWDznOLr+NIN*gL*&^Wj_aT`y zeBr>9H;E7^+vh-YyB*t*58gVkjrAb|esO_wQ-sMak%o9%s4|=UWh(;%y_l$j4W!c9 zM2Z4CGF|{@21*%cHhw6|U=#n-ubONg8f|+@36W%CGd^639=IWXm_)n##i<^mE1d}I zqGBOWR9%HryY3)GLqq%I#fB2f6vd+EUb>wro~m24@`X|XtJ`No^Jy!LzU(i`hpTIJmbG--;h`kX!y}tn z56;6QWQg4|EK@eF8TJ=Tv;qt@N%fo=p3S(kmxn*cVd{cQBiCBF5z{oJlQOW7^$Dzyajb!<0Jype&K>#e|#^|CG(43A;=alt*~8FE{IKaTrZw+Bj3Wmt~@M{vQr z!lDTr_&C!h`lgFcN*QwRj;b&@gkv3xh|HsrH~j=U%gRWU(v5#hwfQKUQKGKEtX4wy ztq|*T!|iX&h52@$gu1g!SdSB4dOO4VJh1Q`naf`TR_e;56ot`u!gSEsPy1P)7nIY8 z7lQKZ)AEcdU+_nQk6gw%Yl6nLLV-B6OXyDHGgsO5VDFo+JUSh9kd3SxoEEyR=)oS0?~pGE)b>^{8$Ypm(oHJ&J4ptN3HO;Grff# zsx1xApId@$8eTu!SR^dT3sdq*%-Xa6atpCX32;tHMT0%o0fCM;GaAq(M8J^lCo%W#*K+k{HFy(3G z|NqbJJKy<^kGyZ%e%Msl$+?StGpE@quT?gcKQ5oFyk0(DKH)AOEuX67-NlO{-rtwL zXDfeF>BXDj^2zcCmCf$*h`S_n!=}=ms-73@-q25MKXogyST+T>wL0iiRJ-6~XHALp z3I&>u)Rt=6=5d?{eifB@L4x<95&Yv@_D2XpF`4ti##n^+N~MdjCpcd6!`CX_1z}En zi`_4ft1eARFjsK-L_JJu-(eRe3QOme&N>JWnxX69G)^duwdZ;CziMTq%FEugp=E1( zJ>1H>c)<&IR~C4WP|C0R7x$Pu7%*PwYqVH)1?FD^)o~{;2ym%GwhC0*d^G``#Rh0f zs#TKlJ_W^|I+${<3OcS%<9zUKvQQ-iDcXFfq-MfUO11j^%y)DmdN}QZzJq3HOE=pk zk=-<}Q1mR-bW*E_f2T(oHWxc(yPLvB6RM&^t%9ZLPBK;WW}9)>oJi%M*i{b|UFAKY zQZS=%ybyrB*)0yyuugTfX-VLY)xwgTYLf`9=2X%M*tf=9`Z~9kbGU=_nq7$0y}}yR zE>ZWQc&5;qyUhaQYkq)jYV0c54N#ax%Y?-w;JOuu=V6Ezk*eBorVfU?x0~DnKZJW) zOzw~fy*)B7`k`Wco_s~Ni-Zz$_rgPW!L?EN&nscOm(XT+FFta2{x@OX8vyIt3j2Ju zRprQ{zd)eEd}x zCqZG8%zHy{W0Pz%2)jT{W@sdS{@OMUT!$_2)#e?%Pk@!L%XWzpW={}{%`>65Hwp{4 zgzZ9*6~fLDhl%qidc$l)UhJ)~&+M&vEK!6{w#qPPk9l%Ti^si$8I}R3&zfP`wo%^a zE6v*OPmvcUSF4Fs8vVIp$Uv72Ah&nMOag|F^s&h<_Q||22sis8R(cm#qACpxn?TV6iG0LH{bCnA84%RVg{b$2d0|@KkCC<%;Uq$|DTlan*?hcsLnrU`z;|!URfbPQ znq?SH&#=-EY8~kmG8m1|{7=Zr0vdu@mSfsVD zfF_J?`LhE0z6Dm&s6|>*rC}c5H$0V`Ch+8eSk6GPbfGMa^+&4caUU{ zYZoi}D)Mk^{}BXLgyK7xeF$#86S0tDbRgy^ri*eoRsl#HKn8f=-T|4HydWRM@sUb} zgGV`sL5L1*f^@Ywpe`-|`QI0qqSU_ocQ#GC4$VhRqtufry(5FdUkBC0F4%cUhWri- zj2&v`r69NuPef10Xa+EPwLy=xs%O$_G^?$K?^G8w?tTgS3T6nuH)=Ds+R{XdgrF4u z!*-6f2@W^Ig+HM(P@SDQC5BzB$4xaI*($>FLCib| z-wa0J{_tdzu5=sN<&a>44>rDEv{Gku6%AWQ!mM8}4aqivaK%#{m8~AiLn`kVN`WIk zE@$#zyXP7zb`1l^r7Ka;77dqMgZF;pF{(NPKvW5wqzS>l$o3#xyAe z&W{SbHwZ%?<>6A<0t=4M$MOTP_4pQeZku^hCX33_x}%W`!7ops;t-V2=h`N4cEgnu z|74r-^vQ^Y#)<*>DhIZE%$x%^bYPt3_`(NzgGNpgn-hdqCbFbOp+Los54 zIpwo6cI{Nrjf>+93p}5{W}xBe1mcI$tySPK2n=sAjcQcVAhn6u*R0l z1&5D3bz#JIW9%EFPK!vsy4V`6no#~OwlXo#5X`+QI}C^2k66Kmm>I5JosSk|-fdWf zJfK`dJUlRPO?DVe?s>$J7enyO^%k_FX7^0k32^!PEEsRI!S>OoVCJY3{-I65-*X^6 hIvu{z9QgZLytl)3{NB;3!S&^{^ky*Q0R79k{{sS*+GhX& -- 2.30.2