Code covered by the BSD License  

Highlights from
Hatch fill patterns plus Color & Invert

4.85714

4.9 | 7 ratings Rate this file 151 Downloads (last 30 days) File Size: 48.7 KB File ID: #24021
image thumbnail

Hatch fill patterns plus Color & Invert

by

 

06 May 2009 (Updated )

Updated code hatch with color and inverted hatches

Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

| Watch this File

File Information
Description

This is an update of Brian Katz's update to Ben Hinkle's original applypatch and makepatch code for replacing colors in figures with hatches as well as David's applypatch_plus. This new version allows you to either make a black and white hatch or use the colors of the fill to create colored hatches. Additionally you can invert the hatch, i.e. it is possible to have a blue hatch with white background or a white hatch with blue background. All of the previous work done in the plus addition should still work, just these are now new options. See help of functions for example usage.

Acknowledgements

Hatch Fill Patterns Plus Plus, Hatched Fill Patterns, and Hatched Fill Patterns Plus inspired this file.

MATLAB release MATLAB 7.2 (R2006a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (14)
30 Apr 2014 Brian Katz

I would like to acknowledge this work by Brendon. I would like however like to note that the development of "applyhatch_plusC" and this routine have diverged somewhat, with different approaches for creating custom hatch patterns and resolving image resolution questions. As such, cross-compatibility can no longer be assured.

30 Oct 2013 Elizabeth

I've played around with the options a bit, but I cannot figure out how to create colored bars with a black pattern on top (the white patterns definitely do not show up well enough). How can I do this? Thank you!

02 Aug 2013 fadela

Nice work!

02 Aug 2013 fadela  
23 Apr 2013 joanna

It's helpful to me. It's works.

23 Feb 2013 Jawad

Hi,

I tried it with bar but i am having problem with resizing the image. If i keep the image at a very large size then lines are visible but if i resize the image to a relatively smaller size, lines change and eventually become garbage. It is quite sensitive to size change, and even i don't know what is the best size of the figure at which it works. It also is overwriting the bar borders so some sides get disappear. Would you please tell if it is possible to keep the hatch in the bar as well as to resize figure so that it fits the paper? Lines in the bar move as i resize the image. What is the best size at which it works?

25 Aug 2012 fan kaibo

It is very good and helpful for my work!

29 Mar 2012 sinoTrinity Liu

I tried to embed the hatched figures in postscript (ps) http://www.cs.wayne.edu/xliu/imgs/ps.jpg, but they look much worse than in pdf http://www.cs.wayne.edu/xliu/imgs/pdf.jpg. Do you know how I can fix this issue?

29 Mar 2012 sinoTrinity Liu

I tried to embed the hatched figures in postscript (ps) http://www.cs.wayne.edu/xliu/ps.jpg, but they look much worse than in pdf http://www.cs.wayne.edu/xliu/pdf.jpg. Do you know how I can fix this issue?

01 Mar 2011 Sungeun Lee  
18 Oct 2010 Peter Costa  
02 Nov 2009 Stefan

Does just what I was looking for!

01 Oct 2009 Olivier Planchon

Bug Report :
the image generated has twice the number of rows, and columns (thus 4 times the weight) than expected by the defined size and image position.
as a result, Fonts in the result files are half the desired size. See at the end of my comment a file that demonstrates this bug.

Other comments :
This is a convenient workaround to create hatched graphichs.
input is a color graphic (either a matalb figure or an image file).
Output is a hatched graphic where each color area was changed into hatches.

I do not feel comfortable with the last two parameters (scales) because they are relative. Absolute line width and spacing would be better imho (perhaps this is possible and I missed something).

bug demo file :

txt = {'Police 6 1a23b45c67d89e0. ' ; 'Police 8 1a23b45c67d89e0. '; 'Police 10 1a23b45c67d89e0. '; 'Police 12 1a23b45c67d89e0. '} ;

% définit figure vide
fghl = figure(1) ;
clf % clear figure
hold off
set (fghl, 'PaperUnits', 'centimeters') % unité de papier
set (fghl, 'Units', 'centimeters') % unités d'écran (marche pas vraiment ...
figure_margins = [1 1] ; % En cm : position = 1 cm du coin BG de l'image,
figure_size = [8.5 5] ;% taille = largeur x hauteur, en cm.
set (fghl, 'PaperType', 'A4', 'PaperPosition', [figure_margins figure_size])
set (fghl, 'Position', [figure_margins 2*figure_size])
whitebg(fghl, 'white') ; % white back ground

% Les traits et les polices
ligne.hair = 0.5 ;
ligne.normal = 1 ;
ligne.semibold = 1.5 ;
ligne.bold = 2 ;

fontsize = [6 8 10 12] ;

hold on
plot([0 1 2], [0 1 4], 'k', 'linewidth', ligne.normal) ;
t = (1/16:1/8:1)'*2*pi;
x = sin(t);
y = cos(t);
fill(x,y,'r')
axis equal

x0a = [0 0 0 0] ;
y0a = 1.5:-0.2:0 ;
x0b = -1 ;
y0b = 3 ;
for i = 1:4
text(x0a(i), y0a(i), txt(i), 'fontsize', fontsize(i))
end

txt2 = [] ;
for i=1:4
t = txt{i} ;
txt2 = [txt2 '\fontsize{' num2str(fontsize(i)) '}' t] ;
end
text(x0b, y0b, txt2) ;

drawnow

% Transforme les couleurs en hachurage
dpi = 72

% Sauve la figure
dpitag = ['-r' num2str(dpi)] ;
print('-dtiffn',dpitag ,'test1.tiff') ; % This file is correct

[im_hatch, colorlist] = applyhatch_pluscolor(gcf,'\/',0,0,[],dpi,5,5);
imwrite(im_hatch,'test2.tiff','tiff', 'Resolution', dpi) % this file is too large.

30 Sep 2009 Olivier Planchon

This is a convenient workaround to create hatched graphichs.
input is a color graphic (either a matalb figure or an image file).
Output is a hatched graphic where each color area was changed into hatches.

I do not feel comfortable with the last two parameters (scales) because they are relative. Absolute line width and spacing would be better imho (perhaps this is possible and I missed something).

Updates
03 Jul 2011

Adding to the acknowledgements for the entire parent-child relationship of the function.

Contact us