MathCAD — это просто! Часть 6. Графики поверхностей

В прошлый раз мы с вами говорили о системах нелинейных алгебраических уравнений — точнее, не столько о них самих, сколько о методах их решения с использованием такого замечательного программного продукта, как MathCAD. И остановились на подборе начальных условий для приближенного (численного) решения систем нелинейных алгебраических уравнений с помощью построения графиков уравнений. Поскольку вопрос о создании в MathCAD'е графиков поверхностей для уравнений с тремя переменными довольно сложен, я решил в этой статье из серии "MathCAD — это просто!" поговорить исключительно о графиках поверхностей и не трогать другие темы, как бы велик ни был соблазн это сделать. Причем, весьма вероятно, даже в одну статью это вместить не удастся, хотя, конечно, это уже посмотрим по ходу дела. Рассказ должен быть особенно подробным также и в силу того очевидного факта, что умение строить графики поверхностей в MathCAD'е пригодится вам, само собой, не только при решении уравнений с тремя переменными — задачи визуализации настолько обширны и встречаются настолько часто, что сложно придумать область знаний, где без них можно было бы обойтись. Хотя существуют и специальные инструменты, "заточенные" под построение трехмерных графиков, вы убедитесь, что в MathCAD тоже можно строить очень приличные на вид графики поверхностей.

График функции z = f(x; y)

Для того, чтобы начать работу с графиками, для начала запустите MathCAD. Мы с вами начнем, пожалуй, с самого простого случая трехмерных графиков, а именно с построения графика для того случая, когда z имеет функциональную зависимость от x и y. К уравнениям такие графики, правда, имеют довольно опосредованное отношение, но начинать всегда лучше с простого. Для начала нужно определить функцию, график которой мы будем строить. Лично я для примера (см. соответствующий скриншот) взял f(x, y) := sin(x) / cos(y). В отличие от двумерных графиков, где мы могли задавать зависимости переменных x и y друг от друга прямо на графике, для построения графиков в трех измерениях нужно использовать именно запись функции. Почему? Об этом чуть-чуть ниже. После того, как вы определили функцию, график которой мы будем получать, найдите на панели Graph кнопку Surface Plot и щелкните по ней мышью. На экране появится пустой график, очень похожий на тот, который мы с вами уже вполне успешно (и не раз) использовали для визуализации двумерных функций и уравнений. Только здесь всего одна область для ввода — она находится внизу под координатной сеткой.

В ней нужно написать просто f. Почему не f(x, y)? Вопрос, безусловно, уместный и очень грамотный. Дело в том, что MathCAD, вообще говоря, не умеет строить трехмерные графики для функций или уравнений. Он умеет отображать в виде графика только массив точек — именно его та часть среды, которая отвечает за построение графиков, и ожидает увидеть на этом месте. Если мы запишем вместо массива функцию без указания аргументов, то MathCAD автоматически построит на ее основе нужный ему массив, который успешно будет отображен на графике. Если же мы укажем для функции аргументы, то MathCAD выдаст сообщение об ошибке. Не верите — можете сами попробовать и убедиться.

В общем, если вы правильно все сделали, а сделать что-то неправильно при внимательном чтении будет сложно, то на экране у вас должен появиться такой же график, как на скриншоте к статье. На этом мы пока остановимся и посмотрим, как и что для этого графика можно настроить.

Настройка графика

Если дважды щелкнуть по графику мышью, то появится окно его настроек. Уже по количеству различных вкладок в нем видно, что настраивать графики поверхностей в MathCAD'е можно долго и упорно, и можно, что называется, донастраиваться. Обо всех этих настройках у нас с вами сейчас поговорить, конечно, не получится, потому что объем газетной статьи, сами понимаете, имеет некоторые ограничения. Да и вряд ли, говоря откровенно, подробный рассказ о каждой галочке в этом окне сильно облегчит кому-либо жизнь. Поэтому лучше обратимся к самым часто употребляемым из них.

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

Отдельного упоминания стоят настройки для координатных осей, расположившиеся на закладке Axes. На этой вкладке для каждой из осей по отдельности можно включить или выключить подписи в виде чисел, настроить цвет, задать поясняющую надпись (полезно, если за поверхностью, которую вы строите, стоит какой-либо физический или, например, экономический процесс — тогда можно ось Z назвать "распределение температуры", а X и Y — "длина бруска" и "ширина бруска" соответственно).

При настройке внешнего вида графика вам пригодится и вкладка Appearance. Если вам нужно раскрасить поверхность градиентной заливкой, то выберите переключатель Fill Surface из группы Fill Options, а в группе Colour Options установите в активное положение переключатель Colormap. Если вы хотите вовсе отключить любую заливку поверхности (а вам вполне может понадобиться и такое), то в группе Fill Options выберите No Fill. Аналогичным образом можно настраивать и линии, которые отображаются по контуру графика для его лучшей видимости. Хотя лично мне кажется, что с ними график, во-первых, и выглядит как-то эстетичнее, и, во-вторых, более легко воспринимается, но вы, само собой, вправе со мной не согласиться и их, если они вам мешают, напрочь отключить. В целом обращаться с этими линиями ничуть не сложнее, чем с заливкой — их, кстати, тоже можно сделать градиентными. Если нужно, можно также включить отображение точек, которые лежат в основе графиков, которые строит MathCAD — тех самых точек, массив которых нужен для построения трехмерного графика. Для этих точек можно менять цвет аналогично тому, как это можно делать для самой поверхности и ее контурных линий, а также настраивать размер точек — для этого служит поле Size, расположенное в группе Point Options. Также можно менять символ, обозначающий на графике точки — это может быть круг, ромб, два разных крестика или квадрат. В общем и целом, как можно увидеть на соответствующем скриншоте, с использованием вкладки Appearance можно преобразовать полученный график так, что его родной отец или мать (то есть вы) не узнает.

Для еще более тонкой настройки внешнего вида графика можно воспользоваться источниками света, добавить которые можно на вкладке Lighting все того же диалога настройки трехмерных графиков. По умолчанию все источники света для любого трехмерного графика отключены, и включить их можно установкой в активное положение переключателя Enable Lighting. Всего на каждом графике может быть до восьми источников света, но реально вам вряд ли когда понадобится иметь их больше, чем три. Для каждого источника можно настроить его положение или, если этот источник расположен на бесконечности, то направление света. Также можно настроить цвет освещения, которое создается на поверхности этим источником. Также присутствуют пять стандартных схем освещения, выбрать которые можно в списке, расположенном слева внизу диалогового окна. Следует отметить, что графики с градиентной заливкой для любого стандартного освещения смотрятся не слишком привлекательно.

О вкладке Title долго говорить не будем — это просто заголовок графика, который можно разместить сверху или снизу относительно самого изображения. Для настройки плоскостей, которые могут помочь более наглядно отобразить ход графика, применяется вкладка Backplanes. На ней доступны настройки для трех плоскостей: X-Y, X-Z и Y-Z. Конечно, для каждой из них все возможности настройки абсолютно идентичны. По умолчанию все задние плоскости не отображаются. Для того, чтобы включить их отображение, нужно активировать переключатель Fill Backplane и выбрать цвет, щелкнув по квадратику рядом со словом Color. По умолчанию в нем выставлен белый цвет, который будет не виден на белом фоне графика. Если вы хотите, чтобы на задней плоскости, ко всему прочему, еще и отображалась координатная сетка, то нужно активировать переключатели Draw Lines в группах X Axis и Y Axis группы Grid. Первый переключатель задает отображение линий по оси X, второй — по оси Y. Если плоскость, которую вы настраиваете, это, например, X-Z, то и оси будут не X и Y, а X и Z. Можно также добавить промежуточную сетку — для этого настраивать нужно опции в группе Sub-Grid.

Вкладку Special этого окна мы с вами пока что отложим до лучших времен — в ближайшее время ее настройка нам не понадобится. Поэтому сразу перейдем к вкладке Advanced. Переключатель Enable Fog в активном состоянии включает на графике "туман", который может сделать график существенно более приятным для глаз. Переключатель Perspective позволяет включить для графика эффект перспективы. Также на этой вкладке можно выбрать одну из наиболее подходящих градиентных окрасок в группе Coloumap. По умолчанию ставится радужная окраска, что далеко не всегда удобно.

Вкладка Quick Data Plot позволяет настроить несколько очень важных параметров графика — в первую очередь, координатную систему, которую MathCAD будет использовать при выводе графика на экран. Доступны прямоугольная (декартова), сферическая и цилиндрическая координатные системы, что хватает для решения львиной доли практических задач. Там же можно задать диапазон изменения значений переменной, которая отображается по этой шкале — правда, в приведенном выше примере вполне хватит и автоматически выставляемого диапазона от -5 до +5. Шаг сетки тоже задается именно там — по умолчанию предусматривается по 20 точек на каждую ось, но если такой точности вам не хватает, никто не запрещает увеличить это число.

Возможно, Вам показалось, что я излишне подробно рассказывал обо всех настройках для трехмерных графиков, которых разработчики MathCAD щедрой рукой отсыпали пользователям. Однако на самом деле это имело смысл — однажды рассказав об этих настройках, к ним после можно будет уже не возвращаться, а просто говорить: "настройте то-то и то-то". А как настраивать, вы уже знаете. Хочу еще раз подчеркнуть, что, несмотря на немалое число рассмотренных выше настроек, здесь я охватил далеко не все из них, однако, в общем-то, ничего страшного в этом нет. Для человека, владеющего худо-бедно (но лучше, конечно, хорошо владеющего) английским языком, все оставшиеся неразобранными в данной статье настройки будут прозрачны и понятны, так что волноваться по этому поводу совершенно не стоит.

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

SF, spaceflyer@tut.by


Компьютерная газета. Статья была опубликована в номере 18 за 2008 год в рубрике soft

©1997-2022 Компьютерная газета