В этом примере показано, как изменить прозрачность изображений, закрашенных фигур и поверхностей.
Значения прозрачности называются альфа-значениями. Используйте alpha
функция для установки прозрачности для всех изображений, закрашенных фигур и поверхностных объектов в текущей системе координат. Задайте значение прозрачности между 0 (полностью прозрачный) и 1 (полностью непрозрачный).
t = 0:0.1:2*pi; x = sin(t); y = cos(t); figure patch(x,y,'r') % make a red circular patch patch(x+0.8,y,'g') % make a green circular path patch(x+0.4,y+0.8,'b') % make a blue circular path axis square tight % set axis to square alpha(0.3) % set all patches transparency to 0.3
Прозрачность поверхности определяется ее AlphaData
свойство. Установите альфа- данные как скалярное значение или матрицу значений, задающих прозрачность каждой вершины поверхности. The FaceAlpha
свойство указывает, как прозрачность граней поверхности определяется из вершинной прозрачности.
[X,Y,Z] = peaks(20); s2 = surf(X,Y,Z); s2.AlphaData = gradient(Z); % set vertex transparencies s2.FaceAlpha = 'flat';
Как и поверхности, прозрачность изображения также определяется его AlphaData
свойство. Для изображений установите альфа-данные как скалярное значение или матрицу значений, задающих прозрачность каждого элемента в данных изображения.
Для примера используйте прозрачность, чтобы наложить два изображения. Сначала отобразите изображение Земли.
earth = imread('landOcean.jpg'); image(earth) % display Earth image axis image
Затем добавьте слой облака к изображению Земли с помощью прозрачности.
clouds = imread('cloudCombined.jpg'); image(earth) axis image hold on im = image(clouds); im.AlphaData = max(clouds,[],3); % set transparency to maximum cloud value hold off
Прозрачность закрашенной фигуры определяется его FaceAlpha
и FaceVertexAlphaData
свойства. Для постоянной прозрачности по всему патчу установите FaceVertexAlphaData
к константе между 0 (полностью прозрачная) и 1 (полностью непрозрачная), и установите FaceAlpha
свойство к 'flat'
.
cla p1 = patch(x,y,'r'); % make a red circular patch axis square tight % set axis to square p1.FaceVertexAlphaData = 0.2; % Set constant transparency p1.FaceAlpha = 'flat' ; % Interpolate to find face transparency
Для прозрачности, которая изменяется между закрашенной фигурой, установите FaceVertexAlphaData
в матрицу значений, задающих прозрачность в каждой вершине или каждой грани закрашенной фигуры. The FaceAlpha
свойство затем указывает, как прозрачность грани определяется с помощью FaceVertexAlphaData
. Если альфа- данные заданы для вершин, FaceAlpha
должно быть установлено в 'interp'
.
p1.FaceVertexAlphaData = x'; % Set vertex transparency to x values p1.FaceAlpha = 'interp' ; % Interpolate to find face transparency
Отображение текстур преобразует 2-D изображение в 3-D поверхность. Изображение может быть сопоставлено с поверхностью путем установки CData
свойство к данным изображения и установка FaceColor
свойство, которое должно быть 'texturemap'
.
Этот пример создает 3-D вид земли и облаков. Он создает сферические поверхности и использует сопоставление текстур для отображения изображений земли и облаков на поверхности.
[px,py,pz] = sphere(50); % generate coordinates for a 50 x 50 sphere cla sEarth = surface(py, px ,flip(pz)); sEarth.FaceColor = 'texturemap'; % set color to texture mapping sEarth.EdgeColor = 'none'; % remove surface edge color sEarth.CData = earth; % set color data hold on sCloud = surface(px*1.02,py*1.02,flip(pz)*1.02); sCloud.FaceColor = 'texturemap'; % set color to texture mapping sCloud.EdgeColor = 'none'; % remove surface edge color sCloud.CData = clouds; % set color data sCloud.FaceAlpha = 'texturemap'; % set transparency to texture mapping sCloud.AlphaData = max(clouds,[],3); % set transparency data hold off view([80 2]) % specify viewpoint daspect([1 1 1]) % set aspect ratio axis off tight % remove axis and set limits to data range
Изображения, используемые в этом примере, взяты из Visible Earth.
Кредит: Изображение Пространства рейсов НАСА им. Годдарда Рето Штёкли (поверхность суши, мелководье, облака). Улучшения Роберта Симмона (цвет океана, композитинг, 3D глобусы, анимация). Данные и техническая поддержка: MODIS Land Group; Группа поддержки научных данных MODIS; Группа «МОДИС Атмосфера»; MODIS Ocean Group Дополнительные данные: Центр обработки данных USGS EROS (топография); USGS Наземный центр дистанционного зондирования Флагстафф (Антарктида); Программа оборонного метеорологического спутника (городские огни).