![]() ![]() ![]() ![]() ![]()
Раздел: Документация
0 ... 54 55 56 57 58 59 60 ... 365 ![]() -4 -4 Рис. 3.42. Параметрически заданная линия (piot3) Сгенерируйте при помощи двоеточия вектор-столбец и вектор-строку, содержащие значения параметров на заданном интервале (важно, что и — вектор-столбец, a v — вектор-строка!): » и = (-2*pi:0.1*pi:2*pi); » v = [-2*pi:0.1*pi:2+pi]; Далее сформируйте матрицы х, y, содержащие значения функций л(н,у), >(m,v) в точках, соответствующих значениям параметров при помощи внешнего произведения векторов (звездочка без точки): » X = 0.3*u*cos(v); » Y = 0.3*u*sin(v); Матрица z должна быть того же размера, что х и y и, кроме того, она должна содержать значения, соответствующие значениям параметров. Если бы в функцию z(«,v) входило произведение и и v, то матрицу z можно было заполнить аналогично х и у при помощи внешнего произведения. С другой стороны, функцию г(ы,\)можно представить в виде г(«, v) = 0.6-wg(v), где g(v) = 1. Поэтому для вычисления z снова примените внешнее произведение на вектор-строку той же размерности, что v, состоящую из единиц: » Z = 0.6*u*ones(size(v)); Все требуемые матрицы созданы. Используйте теперь любую из описанных выше функций для построения трехмерных графиков. Например, последовательность команд » surf(X, Y, Z) » colorbar >> xlabel(\itx = 0.3 \itu cos \itv) » ylabel("\ity =0.3 \itu sin \itv) » zlabel(\itz = 0.6 \itu ) приводит к графику, изображенному на рис. 3.43. ![]() y=0.3us/nv -2 -2x=03ucosv Рис. 3.43. График параметрически заданной поверхности Постройте самостоятельно прозрачную каркасную поверхность эллипсоида, заданного соотношениями .y{h,v) = cosh-cosv, y(u,v) = 0.7cosm-sinv , s(w,i) = 0.8-sin«3 «,ve[-2п, 2тт]. Требуемый результат позволяет получить следующая последовательность команд: » u = (-pi:0.1*pi:pi); » v = -pi:0.l*pi:pi; » X = cos(u)*cos(v); » Y = 0.9*cos(u)*sin(v>; » Z = 0.8*sin(u)*ones(size(v)); » meshfX, Y, Z) » hidden off Все способы построения трехмерных графиков, описанные выше, изменяют цвет поверхности в зависимости от значений функции, что приводит к поверхности, выглядящей не совсем естественно. В то же время MATLAB позволяет получить очень наглядное изображение поверхности в трехмерном пространстве, освещенной с одной или нескольких сторон. Построение освещенной поверхности Предположим, что поверхность графика функции сделана из материала с определенными свойствами отражения и поглощения света, и, кроме того, можно управлять расположением источника света. Эти две возможности вместе с поворотом графика позволяют получить естественно выглядящую поверхность, повернутую и освещенную под нужным углом. Для построения освещенной поверхности применяется функция surf 1. Постройте освещенную поверхность, задаваемую на прямоугольной области ле[-1, 1], уе[0, 1] формулой z(jc,y) = 4-sin2rcr-cosl.57iy-l-jc2 у-{l-у). При использовании surfi удобно задавать цветовые палитры: copper, bone, gray, pink, в которых интенсивность цвета изменяется линейно. Для получения плавно изменяющихся оттенков следует использовать shading interp. Команды, приведенные ниже, приводят к получению требуемой освещенной поверхности, изображенной на рис. 3.44. » [X, У] = meshgrid(-l:0.05:1, 0:0.05:1); » Z = 4*sin(2*pi*X).*cos(1.5*pi*Y).*(1 - Х.Л2).*У.*(1 - Y); » surf1(Х, Y, Z) » colormap(copper1) » shading interp » xlabel(x) » ylabeK y") » zlabel(z) По умолчанию источник света имеет азимут, больший на 45°, чем наблюдатель, и тот же угол возвышения. Дополнительным четвертым аргументом surf 1 может быть вектор-строка из двух элементов — азимута и угла возвышения источника света. Измените, например, азимут источника на -90° по отношению к наблюдателю, а угол возвышения установите в ноль. 0 ... 54 55 56 57 58 59 60 ... 365 |