亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mu_util.m

?? A mapping package for Matlab:這是一款功能十分強大的地理繪圖工具包
?? M
字號:
function varargout=mu_util(optn,varargin);% MU_UTIL Various utility routines%           This function should not be used directly; instead it is%           is accessed by other high- and low-level functions.% MU_UTIL is basically a driver for a number of lower-level routines collected% together for convenience. They are specified by the first argument:% 'clip'      - clipping routine% 'axisticks' - generates a "nice" set of ticks, optimized for degrees/minutes on maps%               angles of the circle.% 'x/ygrid'   - generates the lines for axis grids% 'xylimits'  - finds the x/y limits for a given map% 'lllimits'  - finds the lat/long limits for a given map (usually for rectboxes)% 'box'       - returns a line around the boundaries of the map.% Rich Pawlowicz (rich@ocgy.ubc.ca) 4/April/97%% This software is provided "as is" without warranty of any kind. But% it's mine, so you can't sell it.% 31/Mar/04 - added a fix in m_rectgrid that caused problems when a map% boundary coincided with a grid line.% 26/Oct/07 - fixed the same problem when it occurred near SOUTH pole!switch optn,  case 'clip',    [varargout{1},varargout{2}]=m_clip(varargin{:});  case 'axisticks',    varargout{1}=m_getinterval(varargin{:});  case {'xgrid','ygrid'}    [varargout{1},varargout{2},varargout{3},varargout{4}]=m_rectgrid(optn,varargin{:});  case 'xylimits',    m_getxylimits;  case 'lllimits',    m_getlllimits;  case 'box',    [varargout{1},varargout{2}]=m_box(varargin{:});end;%---------------------------------------------------------function [Xc,Yc]=m_clip(cliptype,X,Xedge,indx,Y);% M_CLIP performs clipping of data. Columns of points are%        assumed to be lines; the first points outside the%        clip area are recomputed to lie on the edge of the%        region; others are converted to either NaN or%        edge points depending on CLIPTYPE.%%        indx = 0 for points inside the clip region, 1%               for those outside%%         'on'  - replaces points outside with NaN, but interpolates%                 to provide points right on the border.%         'patch' - replaces points outside with nearest border point%         'point' - does no interpolation (just checks in/out)%% In general m_clip will be called 4 times, since it solves a 1-edge problem.% Rich Pawlowicz (rich@ocgy.ubc.ca) 4/April/97Xc=X;Yc=Y;if ~strcmp(cliptype,'point'),  % Find regions where we suddenly come into the area  % (indices go from 1 to 0)  [i,j]=find(diff(indx)==-1);  if any(i),    I=i+(j-1)*size(X,1); % 1-d addressing    % Linearly interpolate to boundary    bt=(X(I+1)-X(I));    ibt=abs(bt)<5*eps;    if any(ibt), bt(ibt)=1*eps; end; % In these cases the delta(Y) also = 0, so we just want                                      % to avoid /0 warnings.    Yc(I)=Y(I)+(Xedge-X(I)).*(Y(I+1)-Y(I))./bt;    Yc(I(ibt))=(Y(I(ibt))+Y(I(ibt)+1))/2;    Xc(I)=Xedge;    indx(I(isfinite(Yc(I))))=0;  end;  % Find regions where we suddenly come out of the area  % (indices go from 0 to 1)    [i,j]=find(diff(indx)==1);  if any(i),    I=i+(j-1)*size(X,1);    bt=(X(I+1)-X(I));    ibt=abs(bt)<5*eps;    if any(ibt), bt(ibt)=eps;  end; % In these cases the delta(Y) also = 0, so we just want                                      % to avoid /0 warnings.      Yc(I+1)=Y(I)+(Xedge-X(I)).*(Y(I+1)-Y(I))./bt;    Yc(I(ibt)+1)=(Y(I(ibt))+Y(I(ibt)+1))/2;    Xc(I+1)=Xedge;    indx(I(isfinite(Yc(I+1)))+1)=0;  end;end;switch cliptype,  case {'on','point'}    Xc(indx)=NaN;    Yc(indx)=NaN;  case 'patch',    Xc(indx)=Xedge;end;%--------------------------------------------------------------------------function gval=m_getinterval(gmin,gmax,gtick);% M_GETINTERVAL picks nice spacing for grid ticks%        This occurs when the following call is made:%        TICKS=M_GRID('axisticks',MIN,MAX,APPROX_NUM_TICKS)%% Rich Pawlowicz (rich@ocgy.ubc.ca) 2/Apr/1997%% 9/Apr/98 - changed things so that max/min limits are not automatically%            added (this feature made map corners messy sometimes) % If ticks are specified, we just make sure they are within the limits% of the map.if length(gtick)>1,  gval=[gtick(gtick(:)>=gmin & gtick(:)<=gmax)];% Otherwise, we try to fit approximately gtick ticks in the intervalelse  if gtick>2,        exactint=(gmax-gmin)/(gtick-1)*60; %interval in minutes    % These are the intervals which we will allow (they are "nice" in the sense    % that they come to various even multiples of minutes or degrees)    niceints=[0.1 0.2 0.25 0.5 ...              1 2 3 4 5 6 10 12 15 20 30 ...              60*[1 2 3 4 5 6 8 9 10 12 15 18 20 25 30 40 50 60 100 120 180]];    [dun,I]=min(abs(niceints-exactint));    gval=niceints(I)/60*[ceil(gmin*60/niceints(I)):fix(gmax*60/niceints(I))];        gval=[gval(gval>=gmin & gval<=gmax) ];  else    gval=[gmin gmax];  end;end; %--------------------------------------------------------------function [X,Y,vals,labI]=m_rectgrid(direc,Xlims,Ylims,Nx,Ny,label_pos);% M_RECTGRID This handles some of the computations involved in creating grids%            for rectangular maps. Essentially we make our "first guess" using the%            lat/long limits. Then these curves are clipped to the boundaries, after%            which we use the clip points as "new" boundaries and recompute the lines.% Rich Pawlowicz (rich@ocgy.ubc.ca) 4/April/97global MAP_PROJECTION MAP_VAR_LISTNy1=Ny-1;Ny2=Ny*2;Ny21=Ny2-1;% First try some wildly oversampled lines (not including the boundaries)vals=mu_util('axisticks',Xlims(1),Xlims(2),Nx);if strcmp(MAP_VAR_LIST.rectbox,'on') |  strcmp(MAP_VAR_LIST.rectbox,'circle'), % We don't want the end limits here. if vals(end) == Xlims(2), vals(end) = []; end if vals(1)   == Xlims(1), vals(1)   = []; end if direc(1)=='x',  [lg,lt]=meshgrid(vals,Ylims(1)+diff(Ylims)*[0:1/Ny1:1]); else  [lt,lg]=meshgrid(vals,Ylims(1)+diff(Ylims)*[0:1/Ny1:1]); end; % But sneakily we clip them in transforming, so we end up with finite values only % inside the axis limits [X,Y]=feval(MAP_PROJECTION.routine,'ll2xy',lg,lt,'clip','on'); % Now we find the first/last unclipped values; these will be our correct starting points. % (Note I am converting to one-dimensional addressing).  istart=sum(cumsum(isfinite(X))==0)+1+[0:size(X,2)-1]*size(X,1); iend=size(X,1)-sum(cumsum(isfinite(flipud(X)))==0)+[0:size(X,2)-1]*size(X,1); % Now, in the case where map boundaries coincide with limits it is just possible % that an entire column might be NaN...so in this case make up something just % slight non-zero. (31/Mar/04)  i3=find(iend==0);  if any(i3), istart(i3)=1; iend(i3)=1; end;  % do same fix for istart (thanks Ben Raymond for finding this bug) i3=find(istart>prod(size(X))); if any(i3), istart(i3)=1; iend(i3)=1; end;   % Now go back and find the lat/longs corresponding to those points; these are our new % starting points for the lines (Note that the linear interpolation for clipping at boundaries % means that they will not *quite* be the exact longitudes due to curvature, but they should % be very close. if direc(1)=='x',  [lgs,lts]=feval(MAP_PROJECTION.routine,'xy2ll',X(istart),Y(istart),'clip','off');  [lgs,lte]=feval(MAP_PROJECTION.routine,'xy2ll',X(iend),Y(iend),'clip','off');  % Finally compute the lines within those limits (these *may* include some out-of-bounds points  % depending on the geometry of the situation; these are converted to NaN as usual.  [X,Y]=feval(MAP_PROJECTION.routine,'ll2xy',vals(ones(Ny2,1),:),...              lts(ones(Ny2,1),:)+[0:1/Ny21:1]'*(lte-lts),'clip','on'); else  [lgs,lts]=feval(MAP_PROJECTION.routine,'xy2ll',X(istart),Y(istart),'clip','off');  [lge,lts]=feval(MAP_PROJECTION.routine,'xy2ll',X(iend),Y(iend),'clip','off');  % Longitudes should be increasing here, but we can run into wrap problems after  % the tansformations back and forth. It is for this line that I need to make  % long-lims just a tad less than 360 when really they should be 360 (in m_lllimits)  lge(lge<=lgs)=lge(lge<=lgs)+360;   [X,Y]=feval(MAP_PROJECTION.routine,'ll2xy',lgs(ones(Ny2,1),:)+[0:1/Ny21:1]'*(lge-lgs),...              vals(ones(Ny2,1),:),'clip','on'); end;else if direc(1)=='x',  [lg,lt]=meshgrid(vals,Ylims(1)+diff(Ylims)*[0:1/Ny1:1]); else  [lt,lg]=meshgrid(vals,Ylims(1)+diff(Ylims)*[0:1/Ny1:1]); end; [X,Y]=feval(MAP_PROJECTION.routine,'ll2xy',lg,lt,'clip','off');end;switch label_pos  case {'left','bottom','west','south'}    labI=1;  case 'middle',    labI=round(size(X,1)/2+1/2);  case {'right','top','east','north'}    labI=size(X,1);end;%--------------------------------------------------------------------------------function m_getxylimits;% M_GET_LIMITS Converts X/Y limits to lat/long limits%              This is a chunk of code that is needed for most projections.% Rich Pawlowicz (rich@ocgy.ubc.ca) 4/April/97global MAP_PROJECTION MAP_VAR_LIST% Start with the user-specified lat/longs.MAP_VAR_LIST.lats=MAP_VAR_LIST.ulats;MAP_VAR_LIST.longs=MAP_VAR_LIST.ulongs;% Now, let's get the map x/ylimsbX=MAP_VAR_LIST.longs(1)+diff(MAP_VAR_LIST.longs)*[0:1/30:1];bY=MAP_VAR_LIST.lats(1)+diff(MAP_VAR_LIST.lats)*[0:1/30:1];bX=[bX MAP_VAR_LIST.longs(2*ones(1,31)) fliplr(bX) MAP_VAR_LIST.longs(ones(1,31)) ];bY=[MAP_VAR_LIST.lats(ones(1,31)) bY MAP_VAR_LIST.lats(2*ones(1,31)) fliplr(bY) ];[X,Y]=feval(MAP_PROJECTION.routine,'ll2xy',bX,bY,'clip','off');MAP_VAR_LIST.xlims=[min(X) max(X)];MAP_VAR_LIST.ylims=[min(Y) max(Y)];%-------------------------------------------------------------------------------function m_getlllimits;% M_GET_LIMITS Converts X/Y limits to lat/long limits%              This is a chunk of code that is needed for most projections.% Rich Pawlowicz (rich@ocgy.ubc.ca) 4/April/97global MAP_PROJECTION MAP_VAR_LIST[bX,bY]=mu_util('box',31);% Get its lat/longs.[lg,lt]=feval(MAP_PROJECTION.routine,'xy2ll',bX,bY,'clip','off');% Take real part because otherwise funny things might happen if the box is very largeMAP_VAR_LIST.lats=[min(real(lt)) max(real(lt))];% Are the poles within the axis limits? (Test necessary for oblique mercator and azimuthal)[px,py]=feval(MAP_PROJECTION.routine,'ll2xy',[0 0],[-90 90],'clip','point');if isfinite(px(1)), MAP_VAR_LIST.lats(1)=-90; end;if isfinite(px(2)), MAP_VAR_LIST.lats(2)= 90; end;if any(isfinite(px)),  MAP_VAR_LIST.longs=[-179.9 180]+exp(1); % we add a weird number (exp(1)) to get away from                          % anything that might conceivably be desired as a                          % boundary - it makes grid generation easier.                         % Also make the limits just a little less than 180, this                         % is necessary because I have to have the first and last points                         % of lines just a little different in order to figure out orientation                         % in 'm_rectgrid'else  MAP_VAR_LIST.longs=[min(lg) max(lg)];  if all(isnan(px)) & diff(MAP_VAR_LIST.longs)>360*30/31,    ii=lg<mean(MAP_VAR_LIST.longs);    lg(ii)=lg(ii)+360;    MAP_VAR_LIST.longs=[min(lg) max(lg)];  end;end;%------------------------------------------------------------------------function [X,Y]=m_box(npts);% M_BOX  Computes coordinates of the map border.%% Rich Pawlowicz (rich@ocgy.ubc.ca) 4/April/97global MAP_PROJECTION MAP_VAR_LISTn1=npts-1;switch MAP_VAR_LIST.rectbox,  case 'on',    X=MAP_VAR_LIST.xlims(1)+diff(MAP_VAR_LIST.xlims)*[0:1/n1:1];    Y=MAP_VAR_LIST.ylims(1)+diff(MAP_VAR_LIST.ylims)*[0:1/n1:1];    X=[X MAP_VAR_LIST.xlims(2*ones(1,npts)) fliplr(X) MAP_VAR_LIST.xlims(ones(1,npts))];    Y=[MAP_VAR_LIST.ylims(ones(1,npts)) Y  MAP_VAR_LIST.ylims(2*ones(1,npts)) fliplr(Y)];  case 'off',    lg=MAP_VAR_LIST.longs(1)+diff(MAP_VAR_LIST.longs)*[0:1/n1:1];    lg=[lg MAP_VAR_LIST.longs(2*ones(1,npts)) fliplr(lg) MAP_VAR_LIST.longs(ones(1,npts))]';     lt=MAP_VAR_LIST.lats(1)+diff(MAP_VAR_LIST.lats)*[0:1/n1:1];    lt=[MAP_VAR_LIST.lats(ones(1,npts)) lt  MAP_VAR_LIST.lats(2*ones(1,npts)) fliplr(lt)]';    [X,Y]=feval(MAP_PROJECTION.routine,'ll2xy',lg,lt,'clip','off');  case 'circle',    n1=npts*3-1;    X=MAP_VAR_LIST.rhomax*cos([0:n1]/n1*pi*2);    Y=MAP_VAR_LIST.rhomax*sin([0:n1]/n1*pi*2);end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美专区亚洲专区| 国产精品拍天天在线| 日韩免费视频一区| 日韩电影免费在线| 国产成人精品综合在线观看 | 欧美视频你懂的| 国产精品二区一区二区aⅴ污介绍| 国产欧美日产一区| 在线观看免费视频综合| 国内精品写真在线观看| 亚洲一区二区高清| 中文一区在线播放| 欧美成人a∨高清免费观看| 欧美综合在线视频| 成人av免费在线| 狠狠色伊人亚洲综合成人| 午夜精品免费在线观看| 亚洲欧美日韩电影| 国产片一区二区三区| 日韩一卡二卡三卡国产欧美| 91麻豆精品在线观看| 岛国av在线一区| 国产一区二区精品久久91| 七七婷婷婷婷精品国产| 亚洲在线观看免费视频| 亚洲视频电影在线| 国产精品理伦片| 国产午夜三级一区二区三| 欧美videos中文字幕| 4438x成人网最大色成网站| 91国模大尺度私拍在线视频| caoporn国产精品| 成人精品免费看| 国产成a人亚洲| 国产·精品毛片| 懂色av中文字幕一区二区三区| 国产精品资源站在线| 精品一二三四在线| 激情国产一区二区 | 亚洲视频网在线直播| 日本一区二区三区电影| 国产欧美日韩视频一区二区 | 一区二区三区国产| 亚洲伦理在线精品| 亚洲乱码国产乱码精品精小说 | 中文字幕不卡三区| 国产精品狼人久久影院观看方式| 国产精品久久久久久一区二区三区| 全部av―极品视觉盛宴亚洲| 日av在线不卡| 精品无人区卡一卡二卡三乱码免费卡| 久久不见久久见免费视频7| 久久国产尿小便嘘嘘尿| 韩国三级在线一区| 国产中文一区二区三区| 国产夫妻精品视频| 成人国产亚洲欧美成人综合网| 不卡大黄网站免费看| 91麻豆国产香蕉久久精品| 欧美性受xxxx黑人xyx性爽| 欧美日韩第一区日日骚| 欧美大片日本大片免费观看| 久久久久久久久久久99999| 日本一区二区三区免费乱视频| 日韩一区有码在线| 午夜视频一区在线观看| 开心九九激情九九欧美日韩精美视频电影| 奇米精品一区二区三区四区| 国产精品主播直播| 91麻豆精品在线观看| 在线播放91灌醉迷j高跟美女 | 国产精品欧美一区喷水| 亚洲精品伦理在线| 免费久久99精品国产| 国产不卡在线一区| 欧美色手机在线观看| 日韩精品一区在线| 成人免费小视频| 男人操女人的视频在线观看欧美 | 欧美性生活一区| 精品久久久久久无| 综合久久久久综合| 人禽交欧美网站| eeuss鲁片一区二区三区在线看| 欧日韩精品视频| 久久日一线二线三线suv| 亚洲日本一区二区三区| 日韩电影在线观看一区| 成人黄色电影在线 | 91国偷自产一区二区使用方法| 日韩午夜电影av| 亚洲欧美综合色| 久久综合综合久久综合| 色综合久久综合网97色综合 | 麻豆国产欧美日韩综合精品二区 | 青青草97国产精品免费观看| 国产成人免费视频一区| 精品污污网站免费看| 国产日韩欧美制服另类| 亚洲成a人片综合在线| 丰满岳乱妇一区二区三区| 欧美视频在线观看一区二区| 国产情人综合久久777777| 婷婷久久综合九色国产成人 | 国产一区欧美日韩| 欧美网站一区二区| 国产精品理论片在线观看| 久久国产尿小便嘘嘘| 在线观看www91| 国产精品免费aⅴ片在线观看| 免费xxxx性欧美18vr| 在线观看三级视频欧美| 国产精品视频线看| 国产一区在线精品| 欧美一区二区三区视频免费 | 国产麻豆精品一区二区| 欧美精品久久一区| 亚洲精品老司机| va亚洲va日韩不卡在线观看| 久久精品一区八戒影视| 美女mm1313爽爽久久久蜜臀| 欧美日韩国产首页| 一区二区三区四区国产精品| 99视频超级精品| 亚洲国产成人午夜在线一区 | 色八戒一区二区三区| 国产精品久久久久婷婷二区次| 国产成人精品亚洲777人妖 | 免费在线观看不卡| 欧美日韩成人综合| 亚洲妇熟xx妇色黄| 91福利视频网站| 一区二区三区精品在线| 色综合中文字幕国产 | 日韩欧美国产午夜精品| 午夜视黄欧洲亚洲| 欧美日韩免费高清一区色橹橹| 成人天堂资源www在线| 国产香蕉久久精品综合网| 国产精品一二三四区| 久久精品夜夜夜夜久久| 国产精品一二三区| 久久久久9999亚洲精品| 国产老妇另类xxxxx| 国产日韩在线不卡| 99亚偷拍自图区亚洲| 亚洲女同ⅹxx女同tv| 色吧成人激情小说| 午夜国产精品影院在线观看| 欧美一区二区黄| 精品一区二区三区在线播放| 久久久久青草大香线综合精品| 国产伦精品一区二区三区免费| 国产日韩精品视频一区| 成人精品在线视频观看| 亚洲蜜桃精久久久久久久| 91福利区一区二区三区| 日日摸夜夜添夜夜添精品视频 | 亚洲高清免费视频| 91精品国产综合久久小美女| 久久99蜜桃精品| 日本一区二区不卡视频| 日本韩国欧美一区二区三区| 婷婷久久综合九色综合伊人色| 欧美大片在线观看一区二区| 国产高清不卡一区二区| 最好看的中文字幕久久| 欧美日韩亚洲综合| 狠狠久久亚洲欧美| 亚洲色图丝袜美腿| 51精品秘密在线观看| 国产99精品视频| 亚洲一卡二卡三卡四卡五卡| 日韩视频在线一区二区| 成人黄色网址在线观看| 午夜不卡av在线| 国产欧美日韩亚州综合| 欧美亚洲国产一卡| 国产一区二区三区蝌蚪| 亚洲综合成人在线视频| 日韩美女视频在线| 97se亚洲国产综合自在线不卡| 婷婷丁香激情综合| 日本一二三不卡| 91精品国产综合久久久蜜臀粉嫩| 国产iv一区二区三区| 丝袜美腿亚洲一区| 国产精品国产三级国产三级人妇| 精品视频免费在线| 风间由美中文字幕在线看视频国产欧美| 一区二区三区加勒比av| 精品国产精品网麻豆系列| 在线观看91精品国产入口| 国产精品中文欧美| 丝袜亚洲另类欧美综合| 亚洲丝袜精品丝袜在线| 久久免费电影网| 日韩一级黄色大片| 日本精品一区二区三区四区的功能| 国产在线一区二区|