www.pudn.com > geometric.rar > polyind.m, change:2004-08-13,size:2894b


function [jmin,jmax] = polyind(ipoly,x,y)  % [jmin,jmax] = polyind(ipoly,x,y) % % x,y	= input arrays of polygon coordinates % ipoly = input desired index of polygon is  %  % POLYIND returns: % jmin 	= index of the first point % jmax 	= index of the last point %    % Tom Bishop, Oct.93 % % NOTE: It is illegal for you to use this software for a purpose other % than non-profit education or research UNLESS you are employed by a CREWES % Project sponsor. By using this software, you are agreeing to the terms % detailed in this software's Matlab source file.   % BEGIN TERMS OF USE LICENSE % % This SOFTWARE is maintained by the CREWES Project at the Department % of Geology and Geophysics of the University of Calgary, Calgary, % Alberta, Canada.  The copyright and ownership is jointly held by  % its author (identified above) and the CREWES Project.  The CREWES  % project may be contacted via email at:  crewesinfo@crewes.org %  % The term 'SOFTWARE' refers to the Matlab source code, translations to % any other computer language, or object code % % Terms of use of this SOFTWARE % % 1) Use of this SOFTWARE by any for-profit commercial organization is %    expressly forbidden unless said organization is a CREWES Project %    Sponsor. % % 2) A CREWES Project sponsor may use this SOFTWARE under the terms of the  %    CREWES Project Sponsorship agreement. % % 3) A student or employee of a non-profit educational institution may  %    use this SOFTWARE subject to the following terms and conditions: %    - this SOFTWARE is for teaching or research purposes only. %    - this SOFTWARE may be distributed to other students or researchers  %      provided that these license terms are included. %    - reselling the SOFTWARE, or including it or any portion of it, in any %      software that will be resold is expressly forbidden. %    - transfering the SOFTWARE in any form to a commercial firm or any  %      other for-profit organization is expressly forbidden. % % END TERMS OF USE LICENSE  % compute distmax distmax=.05;    %threshold of 5 percent of picture scalex=1./(max(x)-min(x)); scaley=1./(max(y)-min(y)); j=0; distnext=distmax; % %loop thru all polygons % for loop = 1:ipoly   jmin = j+1;  %reset from last polygon   dist = distmax + 1;   % dont want 2nd point    j=jmin+1;   while (dist > distmax) | (dist >= distnext)      j=j+1;     if(j > length(x)) %      fprintf('reached end of array, length = %d\n',length(x))       jmax = length(x);       return     end     distx = scalex*(x(j)-x(jmin));     disty = scaley*(y(j)-y(jmin));     dist  = sqrt(distx.^2 + disty.^2);     jnext = min(j+1,length(x));  %dont run off end of array     distxnext = scalex*(x(jnext)-x(jmin));     distynext = scaley*(y(jnext)-y(jmin));     distnext  = sqrt(distxnext.^2 + distynext.^2); %    fprintf('dist,distnext,j =  %8.4f %8.4f %d\n',... %             dist,distnext,j)    end   jmax=j; end