Графика

 

Версия для печати

3d-поверхности и контурные графики

Для визуализации двумерных данных в виде функции f(x,y) в Maple есть две возможности:

(1) нарисовать значения функции как высоту поверхности над плоскостью (xy) или

(2) нарисовать контуры постоянного значения f(x,y) в плоскости (xy).

Что лучше – решается проверкой и на ваш вкус.

Примеры для обоих вариантов.

Рассмотрим функцию типа «горный рельеф»:

Трехмерный график создается командой plot3d:

  • restart;
  • f:=exp(-abs(x-sin(y)))*(1+.2*cos(x/2))*(1 + .4/(.3+y^2));
  • plot3d(f,x=-6..6,y=-6..6);

Выглядит интересно, но чтобы увидеть подробности, нужны разные углы обзора. Для этого есть опции команды (запрос ?plot3d[option]), или просто щелкните на фигуре и тащите курсор, удерживая левую кнопку мыши, пока не повернете куда надо. Если зайти в меню Options на панели и заменить отображение с inline на window, получите рисунок с набором инструментов, которые могут изменить множество элементов.

Вот улучшенный график с опцией внутри команды:

  • plot3d(f,x=-6..6,y=-6..6,grid=[60,60],labels=["x","y","f"],
    orientation=[45,30], axes=boxed,shading=xy,view=0..3);

Сетка контролируется опцией grid=[m,n], надписи – опцией labels, а угол обзора – orientation.

Предупреждение: разработчики Maple используют как угол сферических координат вместе с осью z и азимутальным углом θ (ху-поворот).

В физике углы обозначаются в точности наоборот. Поэтому применяют опцию ориентации orientation = [,θ], что прямо противоположно тому, что написано в Maple help. Вдобавок, угол указывает направление, вдоль которого смотрит наблюдатель, а не его угловое положение. Это необычно, и надо поэкспериментировать, чтобы привыкнуть и получать из опций именно то, что хочется.

Вертикальный размер контролируется опцией view=zmin..zmax.

Тени задаются shading=z, shading=xy, shading=xyz.

Другие параметры можно посмотреть по запросу ?plot3d.

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

Посмотрите контурный рисунок этих же гор или топографическую карту (не забывайте, что для применения команды нужно сказать: with(plots)):

  • restart;
  • with(plots):
  • f:=exp(-abs(x-sin(y)))*(1+.2*cos(x/2))*(1 + .4/(.3+y^2));
  • contourplot(f,x=-6..6,y=-6..6,contours=40,grid=[30,30],coloring=[green,blue]);

Учтите, что опция coloring=[green,blue] рисует малые значения функции зеленым, большие – синим, а остальное – переходными цветами. Для подробной справки посмотрие запрос ?plot[color]):

  • ?plot[color]