Купить Matlab  |  Mathematica  |  Mathcad  |  Maple  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Форум  |  Download
https://hub.exponenta.ru/


Справочник по Matlab
  • Массивы, матрицы и операции с ними
  • Математические функции
  • Линейная алгебра
  • Анализ и обработка данных
  • Работа с разреженными матрицами
  • Графические команды и функции
  •  
    SURF, SURFC
    Затененная сетчатая поверхность

    Синтаксис:

    surf(X, Y, Z, C) surfc(X, Y, Z, C)
    surf(x, y, Z, C ) surfc(x, y, Z, C )
    surf(Z, C) surfc(Z, C)
    surf(X, Y, Z) surfc(X, Y, Z)
    surf(x, y, Z) surfc (x, y, Z)
    surf(Z) surfc(Z)

    Описание:

    Команда surf(X, Y, Z, C) выводит на экран сетчатую поверхность для значений массива Z, определенных на множестве значений массивов X и Y. Цвет ячейки определяется массивом C. Цвет ребер - черный, определяется свойством EdgeColor, специфицированным как [0 0 0]. Можно задать одинаковый цвет для всех ребер, определив его в виде вектора [r g b] интенсивности трех цветов - красного, зеленого, синего. Если определить спецификацию none, то ребра не будут прорисовываться.

    Применение функции shading после обращения к функции surf изменяет спецификации свойств EdgeColor и FaceColor графического объекта surface согласно следующей таблице.

    Свойство

    Применяемая функция

    surf shading flat shading interp
    EdgeColor [0 0 0] none none
    FaceColor flat flat interp

    Команда surf(x, y, Z, C) выполняет ту же функцию, но вместо двумерных массивов X, Y использует их одномерные проекции, так что если length(x) = = n, а length(y) = m, то [m, n] = size(Z). В этом случае узлы сетчатой поверхности определяются тройками {x(j), y(i), Z(i, j)}, где вектор x определяет столбцы массива Z, а y - строки.

    Команда surf(Z, C) использует сетку, которая определяется одномерными массивами x = 1 : n и y = 1 : m.

    Команды surf(X, Y, Z), surf(x, y, Z), surf(Z) используют в качестве массива цвета C = Z, то есть цвет в этом случае пропорционален высоте поверхности.

    Группа команд surfc(...) в дополнение к трехмерным затененным поверхностям строит проекцию линий постоянного уровня.

    Функция h = surf(...) возвращает дескриптор h для графического объекта surface.

    Примеры:

    Построим трехмерную затененную поверхность функции z = x * exp(-x2 - y2) со шкалой затененности.

                 [ X, Y ] = meshgrid([ -2 : 0.1 : 2 ]);
                 Z = X . * exp(- X .^ 2 - Y .^ 2);
                 surf(X, Y, Z)
                 colormap(gray)
                 shading interp
                 colorbar

    image1013.gif (8125 bytes)

    Рассмотрим пример сферы, которая раскрашена в соответствии с матрицей Адамара (Hadamard), часто используемой в теории кодирования сигналов и составленной только из двух чисел 1 и -1.

                  k = 5; n = 2 ^ k - 1;
                  [X, Y, Z]=sphere(n);
                  C = hadamard(2 ^ k);
                  surf(X, Y, Z, C);
                  colormap([1 1 1; 2/3 2/3 2/3])
                  colorbar

    image1014.gif (9944 bytes)

    Алгоритм:

    В общем виде, для задания поверхности можно использовать два независимых параметра i и j, которые изменяются непрерывно, например в прямоугольнике 1 <= i <= m, 1 <= j <= n; тогда поверхность будет определяться тремя функциями x(i, j), y(i, j), z(i, j). Когда i и j целые числа, они задают прямоугольную сетку с целочисленными значениями для узлов. Функции x(i, j), y(i, j), z(i, j) становятся двумерными массивами X, Y, Z размера m х n. Четвертая функция - цвет ячеек поверхности c(i, j) задает четвертую матрицу C.

    Каждая точка сетчатой поверхности имеет в общем случае четырех соседей, как показано на следующей схеме.

    image1015.gif (1185 bytes)

    Такая прямоугольная сетка приводит к разбиению поверхности на ячейки, ограниченные четырьмя ребрами. Каждый внутренний узел поверхности имеет четырех соседей, узел на границе - трех, узел в углу поверхности - двух.

    Цвет такой сетчатой поверхности может быть задан двумя способами: либо цветом одной из вершин, либо цветом в центре ячейки.

    Рассмотрим, как в этом случае действует функция закраски shading. Если задано значение shading interp, то цвет ячейки определяется как билинейная функция местных координат. Если задано значение shading faceted (принято по умолчанию) или shading flat, то цвет ячейки постоянен и определяется цветом верхней левой вершины, как показано на следующей схеме:

    image1016.gif (1522 bytes)

    Сопутствующие функции и команды: MESH, MESHC, SURFL, WATERFALL.

    В начало страницы К предыдущему разделуК следующему разделу

    | На первую страницу | Поиск | Купить Matlab

    Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter


    Copyright © 1993-2024. Компания Softline. Все права защищены.

    Дата последнего обновления информации на сайте: 04.03.17
    Сайт начал работу 01.09.00