Вы здесь

1. Расширения графики— пакет Graphics

 

Расширения графики— пакет Graphics

 

  • Анимация графиков различного типа
  • Использование цвета
  • Построение стрелок
  • Графики комплекснозначных функций
  • Построение объемных контурных графиков
  • Построение графиков с окраской внутренних областей
  • Графики специальных типов
  • Специальные типы трехмерных графиков
  • Построение графиков неявных функций
  • Вывод обозначений кривых
  • Построение трехмерных параметрических графиков
  • Представление полей на плоскости и в пространстве
  • Трехмерные графические объекты

Пакет расширения Graphics дает множество средств для построения графиков самого изысканного вида. Он является прекрасным инструментом для визуализации задач, допускающих представление результатов в графической форме. Объем материала данного пакета намного выходит за пределы одного урока, поскольку предполагает отбор нужного материала для изучения того или иного вида графики.

Анимация графиков различного типа — Animation

Фактически, техника анимации (оживления) графиков уже была описана. Напомним, что она сводится к подготовке отдельных кадров анимационного рисунка, которые специфицируются особой изменяющейся переменной t. Это не обязательно время, возможно, что t задает размеры изображения, его положение или иную характеристику. Естественно, что имя переменной можно выбирать произвольно.

Подпакет Animation подключается автоматически и в ряде случаев не требует загрузки (хотя на всякий случай его лучше загрузить при использовании средств анимации). Пакет задает две важнейшие функции:

  • Animate [grcom, {t, tmin, tmax, dt] — задает построение серии графических объектов grcom при изменении параметра t от tmin до tmax с шагом dt;
  • ShowAnimation [ {p1,p2, р3,...} ] — дает анимацию последовательным воспроизведением ранее подготовленных объектов p1, р2, рЗ, ...

Рисунок 14.1 показывает пример подготовки к анимации простого графика — функции n*Sin [х] /х при n, меняющемся от 0.1 до 1 с шагом 0.1. Таким образом демонстрируется изменение данной функции по высоте (амплитуде).

При задании анимации есть небольшая проблема — Mathematica автоматически меняет масштаб с тем, чтобы график был наиболее представительным. Но для анимации это недопустимо, поэтому опцией PlotRange задан фиксированный масштаб для всех кадров анимации. Выполнив показанные на рис. 14.1 команды, можно наблюдать построение всех кадров — для n = 0.1,0.2,0.3,..., 1. 0. Первые три кадра анимации видны на рис. 14.1 снизу.

Теперь для наблюдения анимации достаточно двойным щелчком выделить первый рисунок. Будет видна быстрая смена кадров. Остановить анимацию и снова запустить ее можно нажатием клавиш Ctrl+Y. При выполнении анимации внизу окна документа появляются кнопки анимационного проигрывателя (рис. 14.2).

Рис. 14.1. Демонстрация графика функции n*Sin[x]/x, меняющейся по высоте

Рис. 14.2. Стоп-кадр анимации графика функции n*Sin[x]/x

Проигрыватель имеет мнемонику кнопок, подобную мнемонике бытовых проигрывателей видеодисков. Есть кнопки пуска и остановки, реверса проигрывания, замедления и ускорения проигрывания. Последние особенно важны, поскольку на современных компьютерах анимация рисунков происходит слишком быстро и лишь ее замедление позволяет обеспечить хорошую визуализацию данного процесса. Число кадров анимации не должно быть меньше 8-10, иначе вместо плавного движения будут видны резкие скачки изображения.

Следующий пример иллюстрирует анимацию графика с параметрическим заданием функции:


ShowAnimation[Table[ Graphics[Line[{{0 0},

{Cos[t], Sin[t]}}], PlotRange -> {{-1, 1}, {-1, 1}}],

{t, 0, 2Pi, Pi/8}]]

Запустив этот фрагмент программы, вы увидите построение отрезка прямой, вращающегося вокруг одного неподвижного конца. Здесь для анимации вначале строится набор кадров, а затем используется функция ShowAnimation.

Аналогичным образом осуществляется анимация трехмерных графиков поверхностей или фигур. Рисунок 14.3 показывает начало подготовки к анимации сложной поверхности, описываемой функцией Бесселя, аргумент которой меняется от кадра к кадру.

Рис. 14.3. Подготовка к анимации сложной трехмерной поверхности

Обратите внимание на применение функций Show и Graph!csArray для построения на одном графике сразу всех кадров (фаз) анимации. Порой этот набор кадров даже важней, чем анимация, длящаяся доли секунд или несколько секунд.

Рисунок 14.4 иллюстрирует следующий шаг анимации — исполнение функции ShowAnimation. Как и для предшествующих примеров, она строит последовательно все рисунки — кадры анимации.

Рис. 14.4. Подготовка кадров анимации сложной трехмерной поверхности

Запуск анимации выполняется, как уже было описано (рис. 14.5). При этом наблюдаются характерные колебания поверхности — пик ее проваливается вниз, образуя впадину, а затем снова выходит вверх. Внизу графика видны кнопки анимационного проигрывателя, работа с которым также была описана выше.

Для упрощения анимации сложных графиков в подпакете Animations задан ряд специализированных функций, которые приведены в приложении. Рисунок 14.6 поясняет задание анимации и построение начального кадра для параметрически заданной раскручивающейся спирали — используется функция MovieParametricPlot. Запустив начальный кадр, можно наблюдать раскручивание спирали.

Рис. 14.5. Один из стоп-кадров анимации сложной трехмерной поверхности

Рис. 14.6. Построение раскручивающейся спирали

Еще один пример построения сложной вращающейся в пространстве фигуры, напоминающей гантель, показан на рис. 14.7. В данном случае трехмерная фигура задана в параметрической форме, а для последующей ее анимации используется функция SpinShow.

Последние примеры даны в упрощенной форме — без окна с проигрывателем. Разумеется, кнопки проигрывателя появляются при реальном пуске анимации.

Рис. 14.7. Построение вращающейся в пространстве фигуры — «гантели»

 


Top.Mail.Ru