# fill

조회 수: 94 (최근 30일)
Jessica 2011년 5월 12일
편집: madhan ravi 2018년 11월 23일
Hi,
Is it possible to automatically alter the transparency of colors using the fill command?
For example, I would want to use:
fill (x,y, 'r');
but make the red color transparent.
Thanks!
##### 댓글 수: 3이전 댓글 1개 표시이전 댓글 1개 숨기기
Jessica 2011년 5월 12일
I want to see the picture behind the colors.
Sean de Wolski 2011년 5월 12일
Ahh, translucent...

댓글을 달려면 로그인하십시오.

### 답변 (2개)

Matt Fig 2011년 5월 12일
t = (1/16:1/8:1)'*2*pi;
x = sin(t);
y = cos(t);
h = fill(x,y,'r');
% Choose a number between 0 (invisible) and 1 (opaque) for facealpha.
set(h,'facealpha',.5)
Also, see the edgealpha property of h. Look at set(h) to see all the properties you can set.
##### 댓글 수: 5이전 댓글 3개 표시이전 댓글 3개 숨기기
Matt Fig 2011년 5월 12일
I cannot reproduce the problem. Could you describe the data more? For example, are the black lines the boundaries of one long skinny patch object squeezed between two larger patches? Or are they the boundaries of the larger patch objects? If you can't find a work around, you might be better off setting the edgecolor to none and plotting the edges by using the LINE function. For example:
t = (1/16:1/8:1)'*2*pi;
x = sin(t);
y = cos(t);
h = fill(x,y,'r','edgecolor','none');
set(h,'facealpha',.5)
X = [x;x(1)];
Y = [y;y(1)];
line(X,Y,'color','k','linewidth',3) % Make the edges...
Jessica 2011년 5월 12일
The black line down the middle is outlining the edge of two polygons that are adjacent to each other.
The only way I have found a way around this is to save the image. And then pull up the saved image and draw the lines atop it again. However, this is not very simple because the image is not saved with the same dimensions as the original so I need to bring it into photoshop to change the dimensions first. My original image is large so the file "export_fig" did not work to save the figure with the original dimensions.

댓글을 달려면 로그인하십시오.

Teja Muppirala 2011년 5월 12일
Just for fun, and because windowbuttonmotionfcns are totally underappreciated:
t = (1/16:1/8:1)'*2*pi;
x = sin(t);
y = cos(t);
h = fill(x,y,'r');
F = @(x) alpha(max(min(x,1),0));
set(gcf,'windowbuttonmotionfcn','F( ([1 0]*get(gca,''currentp'')*[0;1;0] - min(ylim)) / diff(ylim) )')
##### 댓글 수: 1이전 댓글 -1개 표시이전 댓글 -1개 숨기기
Matt Fig 2011년 5월 12일
편집: madhan ravi 2018년 11월 23일
Nice! I prefer symmetry myself:
t = (1/16:1/8:1)'*2*pi;
x = sin(t);
y = cos(t);
h = fill(x,y,'r');
axis square
set(gcf,'windowbuttonmotionfcn','set(h,''facealpha'',min(1,abs(norm(get(gca,''currentpoint''),''fro'')-sqrt(2))))')

댓글을 달려면 로그인하십시오.

### 카테고리

Help CenterFile Exchange에서 Image Arithmetic에 대해 자세히 알아보기

### Community Treasure Hunt

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

Start Hunting!

Translated by