Mercurial > hg > camir-aes2014
diff toolboxes/MIRtoolbox1.3.2/somtoolbox/vis_patch.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolboxes/MIRtoolbox1.3.2/somtoolbox/vis_patch.m Tue Feb 10 15:05:51 2015 +0000 @@ -0,0 +1,117 @@ +function p=vis_patch(lattice) + +% VIS_PATCH Defines the basic patches (hexa and rect) used in SOM_CPLANE +% +% p = vis_patch(lattice) +% +% Input and output arguments: +% lattice (string) 'rect', 'hexa' or 'hexagon' +% +% p (matrix) size Lx2, defines the vertices of the patch +% +% This function produces vertex coordinates for a patch presenting +% a map unit in hexagonal or rectangular lattice with its centre in (0,0). +% +% For more help, try 'type vis_patch' or check out online documentation. +% See also SOM_CPLANE, PATCH. + +%%%% DETAILED DESCRIPTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% vis_patch +% +% SYNTAX +% +% p = vis_patch(lattice) +% +% DESCRIPTION +% +% Forms a map unit patch for SOM_CPLANE function. Mainly a subroutine +% of SOM_CPLANE, although can be used for on its own as well. +% +% REQUIRED INPUT ARGUMENTS +% +% lattice (string) +% +% 'hexa' produces vertex coordiantes for a hexagoanl patch which +% has its center on (0,0), unit width, and a height of +% 1.3334 units. This is not a regular hexagon but such that +% the node which has topological coordinates (a,b) has its +% center in the visualization at coordinates (a,b) for odd +% a and at (a,b+.5) for even a. The non-regular look of the +% patch is taken care simply by changing the axis ratio. +% +% 'rect' produces vertex coordinates for a uniform rectangular patch. +% having its center on (0,0) and unit sidelength. Used as a +% subfunction in SOM_CPLANE. +% +% 'hexagon' produces vertex coordinates for a regular hexagonal patch. +% It may be used in som_cplane if, for some reason, truly +% regular hexagons are needed instead of the default unit +% markers which are not uniform, but have integer +% y-coordinates in the lattice. +% +% OUTPUT ARGUMENTS +% +% p (matrix) The 2-dimensional vertex coordinates: +% +% case 'rect' case 'hexa' case 'hexagon' +% p=[[-.5 -.5];... p=[[0 0.6667];... p=[[0 0.5774];... +% [-.5 .5];... [0.5 0.3333];... [0.5 0.2887];... +% [ .5 .5];... [0.5 -0.3333];... [0.5 -0.2887];... +% [ .5 -.5]]; [0 -0.6667];... [0 -0.5774];... +% [-0.5 -0.3333];... [-0.5 -0.2887];... +% [-0.5 0.3333]]; [-0.5 0.2887]]; +% +% EXAMPLES +% +% som_cplane(vis_patch('rect'),[6 5],'none'); +% % this produces the same result as som_cplane('rect',[6 5], 'none') +% +% som_cplane(vis_patch('hexa'), vis_unit_coord('hexa',[6 5]), 'none'); +% % produces in principle the same result as +% % som_cplane(vis_patch('hexa'),[6 5],'none'), +% % _but_ in this case the axis are not rescaled and the non-regular +% % shape of hexagons can be seen. +% +% som_cplane(vis_patch('hexagon'), som_unit_coords([6 5],'hexa'), 'none'); +% % produces a truly regular hexa lattice +% +% SEE ALSO +% +% vis_unit_coord The default 'hexa' and 'rect' coordinates in visualizations +% som_unit_coords Locations of units on the SOM grid. + +% Copyright (c) 1999-2000 by the SOM toolbox programming team. +% http://www.cis.hut.fi/projects/somtoolbox/ + +% Version 2.0beta Johan 041099 + +if ~ischar(lattice) + error('Input argument should be a string') +else + switch lattice + case 'rect' + p=[[-.5 -.5]; ... + [-.5 .5];... + [.5 .5];... + [.5 -.5]]; + case 'hexagon' + p=[[0 0.5774];... + [0.5 0.2887];... + [0.5 -0.2887];... + [0 -0.5774];... + [-0.5 -0.2887];... + [-0.5 0.2887]]; + case 'hexa' + p=[[0 0.6667];... + [0.5 0.3333];... + [0.5 -0.3333];... + [0 -0.6667];... + [-0.5 -0.3333];... + [-0.5 0.3333]]; + otherwise + error('Unknown lattice'); + end +end + +