# FaceAlpha of surf plot takes the first row and column twice

3 Ansichten (letzte 30 Tage)
Emiel am 21 Mär. 2014
Kommentiert: Emiel am 23 Mär. 2014
Hi all,
This problem has been bugging me for quite some time so I decided to post the question. When I'm trying to use face alpha on a surf plot to make some faces disappear, I found that the first row and column of the alphadata matrix are used for the first two rows. Example:
[X,Y] = meshgrid(1:5,1:5);
Z = ones(5,5);
A = zeros(5,5);
A(1,1) = 1;
I would expect this code to draw only the first face (1,1), but it draws faces (1,1), (2,1), (1,2) and (2,2). When I turn on index (2,2) of the alphadata it does show only one face, though shifted:
[X,Y] = meshgrid(1:5,1:5);
Z = ones(5,5);
A = zeros(5,5);
A(2,2) = 1;
Why can't I control the first two rows and columns separately? Is it a bug? The results of both codes are shown in the image below. Left is the first part and right the second:
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Akzeptierte Antwort

Rob Comer am 23 Mär. 2014
This variation does what I think you're hoping for:
[X,Y] = meshgrid(1:5,1:5);
Z = ones(5,5);
C = ones(4,4);
A = zeros(4,4);
A(1,1) = 1;
'FaceColor','texturemap','FaceAlpha','texturemap')
It sets the color and alpha data on each face instead of at each vertex (echoing Chad's concern), which goes along with the 'texturemap' settings.
##### 1 Kommentar-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden
Emiel am 23 Mär. 2014
Aha, thanks a lot! This is a nice work around. Still the original method doesn't behave as it says it does in the documentation, I'll report that. Thanks again!

Melden Sie sich an, um zu kommentieren.

### Weitere Antworten (1)

Chad Greene am 21 Mär. 2014
Interesting. My question is, why would it make sense to define alpha at vertices? By that I mean, the alphadata is defined for intersections of lines, not the squares between the intersections. A simple workaround is to change facealpha to interp by plotting with this line:
But that doesn't explain the odd placement of the alpha map using the flat method.
##### 1 Kommentar-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden
Emiel am 21 Mär. 2014
Thanks for your answer. With the surf plot I represent a 2D FEM mesh. The displacements are indeed defined at the vertices but I have some other property defined on and constant over each element (face), represented by the alpha value. Therefore I want the whole face have some alpha value and not interpolate between the vertices.. I get the idea that this is a bug, but lets hope it's not.

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Surface and Mesh Plots finden Sie in Help Center und File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by