2012-02-20 75 views
0

好的,所以patch函数可以让我们绘制多个多边形。MATLAB:针对不同色块对象的不同alphas

patch(X,Y,'r') 

其中XY是m乘n矩阵。这绘制了n个具有m个顶点的多边形。

但是,如果我想要这n个多边形中的每一个具有唯一的alpha透明度值呢?

patch(X,Y,'r', ??? SOME CODE TO USE A VECTOR OF ALPHA VALUES ???) 

该文档令我困惑不已。我不能使用for循环,因为我需要很快绘制许多修补程序对象。有人可以提供一个代码示例吗?感谢大家。

回答

4

貌似FaceVertexAlphaData属性是关键:下面是一些示例代码:

X = [... 
    1 2 3 ; ... 
    4 5 6 ; ... 
    7 8 9 ; ... 
    10 11 12]; 
Y = [... 
    2 5 8; ... 
    3 6 9; ... 
    1 4 7; ... 
    -1 3 6]; 
h = patch(X, Y, 'r'); 
set(h,'FaceAlpha','flat','FaceVertexAlphaData',[.2; .4; .8]) 

docsearch patch properties以获取更多信息。

+1

非常感谢!当我看到即使使用alpha 0.2和0.8时,我也感到困惑,第一个多边形看起来完全透明,第三个完全不透明。我搜索并发现Matlab具有alpha限制,并且它自动将它们与对象的alpha数据相匹配。调用'alim([0 1])'修复它! Hooray :) – SamH 2012-02-20 08:36:56

+0

谢谢。我没有付出足够的补丁的实际颜色,以注意到这个重要的微妙之处。 – Pursuit 2012-02-20 14:48:02