이전 댓글 표시
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
Sean de Wolski
2011년 5월 12일
What's the point of filling it if it's going to be transparent? Why not just plot?
Jessica
2011년 5월 12일
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
Jessica
2011년 5월 12일
Matt Fig
2011년 5월 12일
Yes, this is why I mentioned the other properties for you to look at, did you do so?
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)
set(h,'linewidth',3)
Now if your next question is how to change the line color, look at the edgecolor property.
Jessica
2011년 5월 12일
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일
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
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))))')
카테고리
도움말 센터 및 File Exchange에서 Graphics Performance에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!