更改图像、填充或曲面的透明度
此示例说明如何修改图像、填充或曲面的透明度。
坐标区框中所有对象的透明度
透明度值称为 alpha 值。使用 alpha
函数设置当前坐标区范围内所有图像、填充或曲面对象的透明度。指定一个介于 0(完全透明)和 1(完全不透明)之间的透明度值。
t = 0:0.1:2*pi; x = sin(t); y = cos(t); figure patch(x,y,'r') patch(x+0.8,y,'g') patch(x+0.4,y+0.8,'b') axis square tight alpha(0.3)
个别曲面的透明度
曲面的透明度由其 AlphaData
属性定义。将 alpha 数据设置为用于指定曲面的每个顶点透明度的标量值或值矩阵。FaceAlpha
属性指示如何从顶点透明度确定曲面透明度。
[X,Y,Z] = peaks(20);
s2 = surf(X,Y,Z);
s2.AlphaData = gradient(Z);
s2.FaceAlpha = 'flat';
个别图像的透明度
与曲面一样,图像的透明度也由其 AlphaData
属性定义。对于图像,将 alpha 数据设置为用于指定图像数据的每个元素透明度的标量值或值矩阵。
例如,使用透明度覆盖两个图像。首先,显示地球的图像。
earth = imread('landOcean.jpg'); image(earth) axis image
然后,使用透明度将云图层添加到地球图像。
clouds = imread('cloudCombined.jpg'); image(earth) axis image hold on im = image(clouds); im.AlphaData = max(clouds,[],3); hold off
个别填充的透明度
填充的透明度由其 FaceAlpha
和 FaceVertexAlphaData
属性定义。若要在整个填充上实现单一的透明度,请将 FaceVertexAlphaData
设置为一个介于 0(完全透明)和 1(完全不透明)之间的常量,并将 FaceAlpha
属性设置为 'flat'
。
cla p1 = patch(x,y,'r'); axis square tight p1.FaceVertexAlphaData = 0.2; p1.FaceAlpha = 'flat' ;
若要在整个填充上实现可变的透明度,请将 FaceVertexAlphaData
设置为用于指定填充的每个顶点或每个面的透明度的值矩阵。然后,通过 FaceAlpha
属性指示如何使用 FaceVertexAlphaData
确定面的透明度。如果为顶点指定了 alpha 数据,则必须将 FaceAlpha
设置为 'interp'
。
p1.FaceVertexAlphaData = x';
p1.FaceAlpha = 'interp';
包含纹理映射的透明度
纹理映射将二维图像映射到三维曲面上。通过将 CData
属性设置为图像数据并将 FaceColor
属性设置为 'texturemap'
,可将图像映射到曲面上。
此示例创建地球和云的三维视图。它创建球形表面,并使用纹理映射将地球和云的图像映射到曲面上。
[px,py,pz] = sphere(50); sEarth = surface(py, px ,flip(pz)); sEarth.FaceColor = 'texturemap'; sEarth.EdgeColor = 'none'; sEarth.CData = earth; hold on sCloud = surface(px*1.02,py*1.02,flip(pz)*1.02); sCloud.FaceColor = 'texturemap'; sCloud.EdgeColor = 'none'; sCloud.CData = clouds; sCloud.FaceAlpha = 'texturemap'; sCloud.AlphaData = max(clouds,[],3); hold off view([80 2]) daspect([1 1 1]) axis off tight
此示例中使用的图像来自 Visible Earth。
致谢:美国国家航空航天局戈达德太空飞行中心图像,由 Reto Stöckli 拍摄(陆地表面、浅水、云)。Robert Simmon 提供增强效果(海洋颜色、合成、三维地球仪、动画)。数据和技术支持:MODIS 土地组;MODIS 科学数据支持团队;MODIS 大气组;MODIS 海洋组附加数据:美国地质调查局 EROS 数据中心(地貌);美国地质勘探局地球遥感弗拉格斯塔夫球场中心(南极洲);美国国防气象卫星计划(城市灯光)。