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

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

?? crrect.m

?? computation of conformal maps to polygonally bounded regions
?? M
字號:
function [wr,betar,affr] = crrect(w,beta,cr,aff,Q,betar)
%CRRECT Graphically create a rectified map.
%   A rectified map is one between a generic polygon and a polygon
%   having all angles as multiples of pi/2. Once the CR parameter
%   problem is solved, you can define a rectified polygon to map to by
%   specifying the rectified angles. (Side lengths are not free
%   variables; they are a consequence of the original polygon and the
%   rectified angles.) There is no unique correct choice of rectified
%   angles. No automatic selection of the rectified angles is currently
%   available, so CRRECT allows you to do it graphically.
%       
%   [WR,BETAR,AFFR] = CRRECT(W,BETA,CR,AFF,Q) first selects four
%   vertices of the polygon W to serve as corners of a rectangle, which
%   is the initial rectified domain. Then a side-by-side view of the
%   rectified and original polygons is created. The vertices in each
%   view are color-coded according to angle. There is a pop-up selection
%   list that allows you to pick one rectified angle/color. Any vertex
%   you click on (in either view) will be assigned that color and angle.
%       
%   A counter shows the current sum of angles. When this is -2, you have
%   defined a valid rectified map. If you click the button marked
%   Recompute, the rectified polygon will be calculated and
%   displayed. You may make further changes. If you click "Done", CRRECT
%   returns the rectified vertices and angles, and the affine constants
%   needed to compute the rectified map at specific points. You may also
%   click "Cancel" to return nothing.
%       
%   IMPORTANT NOTE: The rectified polygon may not be embeddable in the
%   plane. That is, it may overlap itself. This may be difficult to see
%   graphically, but it does not affect CRRECT in any way.
%       
%   An additional input parameter will be used as BETAR, and no
%   graphical procedure will take place.
%       
%   See also CRPARAM, CRRMAP, CRRPLOT.
       
%   Copyright 1998 by Toby Driscoll.
%   $Id: crrect.m 7 1998-05-10 04:37:19Z tad $
n = length(w);
if nargin < 6
  % betar not given: use graphical procedure
  
  % Start with a rectangle
  % Pick the 4 vertices closest to right angles
  [tmp,k] = sort(abs(beta+.5));
  k = k(1:4);
  betar = 0*beta;
  betar(k) = -.5*ones(4,1);
  wr = NaN*w;
  wr([k(1) rem(k(1),n)+1]) = [0;1];
  [affr,wr] = craffine(wr,betar,cr,Q);
  %aff = craffine(w,beta,cr,Q);
  
  % Move on to graphical refinement
  fig = figure;
  
  % Dummy objects that store the data
  uicontrol('style','frame','vis','off','user',wr,...
      'tag','wr');
  uicontrol('style','frame','vis','off','user',betar,...
      'tag','betar');
  uicontrol('style','frame','vis','off','user',cr,...
      'tag','cr');
  uicontrol('style','frame','vis','off','user',Q,...
      'tag','Q');
  uicontrol('style','frame','vis','off','user',affr,...
      'tag','affr');
  
  % Set up figure 
  pos = get(fig,'pos');
  set(fig,'pos',[pos(1:2) max(pos(3),700) pos(4)],'user',0)
  
  % Rectified plane
  ax(1) = axes('pos',[.56 .29 .4 .68],'tag','crrect_rectified','box','on');
  hold on
  [hr,h] = plotpoly(wr,betar,1);
  uicontrol('style','frame','vis','off','tag','rect_sides','user',hr(:));
  set(h(:,1),'markersize',20)
  set(h(k,:),'color','m')		% the 4 selected
  set(ax(1),'user',h)
  
  % Original (physical) plane
  ax(2) = axes('pos',[.06 .29 .4 .68],'tag','crrect_original','box','on');
  hold on
  [ho,h] = plotpoly(w,beta,1);
  uicontrol('style','frame','vis','off','tag','orig_sides','user',ho(:));
  axlim = axis;
  set(h(:,1),'markersize',20)
  set(h(k,:),'color','m')		% the 4 selected
  set(ax(2),'user',h)
  p = max(pos(3),700);
  
  set(ax,'dataaspectratio',[1 1 1],'plotboxaspectratio',[1 1 1])
  
  % GUI controls
  uicontrol('style','frame','unit','pix','pos',[0 0 p 100])

  uicontrol('style','text','unit','pix','pos',[10 48 100 16],...
      'string','Set rectified','hor','cen')
  uicontrol('style','text','unit','pix','pos',[10 33 100 16],...
      'string','angle to:','hor','cen')
  
  rh(1)=uicontrol('style','radio','unit','pix','pos',[110 72 80 22],...
      'foreground',[1 0 1],'string','pi / 2','tag','angradio');
  rh(2)=uicontrol('style','radio','unit','pix','pos',[110 49 80 22],...
      'foreground',[0 0 1],'string','pi','tag','angradio');
  rh(3)=uicontrol('style','radio','unit','pix','pos',[110 26 80 22],...
      'foreground',[0 0.5 0.5],'string','3 pi / 2','tag','angradio');
  rh(4)=uicontrol('style','radio','unit','pix','pos',[110 3 80 22],...
      'foreground',[0 0 0],'string','2 pi','tag','angradio');
  set(rh,'user',rh,'call','cback(''radioexclude'')');
  set(rh(2),'value',1)
  
  uicontrol('style','text','unit','pix','pos',[400 60 80 20],...
      'string','sum(beta) =')
  uicontrol('style','text','unit','pix','pos',[410 36 60 25],...
      'string','-2.0','tag','sumbeta')
  
  uicontrol('style','push','unit','pix','pos',[p-110 68 92 25],...
      'string','Recompute','tag','recompute','call','cback(''compute'');')
  uicontrol('style','push','unit','pix','pos',[p-110 37 92 25],...
      'string','Done','call','set(gcf,''user'',1)')
  uicontrol('style','push','unit','pix','pos',[p-110 7 92 25],...
      'string','Cancel','call','set(gcf,''user'',-1)')
  
  % Let the GUI operate until done
  %set(fig,'windowbuttondown','cback(''sideselect'');')
  set(fig,'windowbuttonup','cback(''select'');')
  while(~get(fig,'user'))
    drawnow
  end
  
  % Return values and clean up
  if get(fig,'user') > 0
    % Normal exit
    wr = get(findobj(gcf,'tag','wr'),'user');
    betar = get(findobj(gcf,'tag','betar'),'user');
    affr = get(findobj(gcf,'tag','affr'),'user');
    delete(fig)
  else
    % Cancel
    delete(fig)
    error('Procedure canceled.')
  end
  
else
  % betar was supplied: just do computation
  
  aff = craffine(w,beta,cr,Q);
  k = min(find(betar<0));
  wr = NaN*w;
  wr([k rem(k,n)+1]) = [0;1];
  [affr,wr] = craffine(wr,betar,cr,Q);
end

% End of user-call section

function cback(cmd)
% Called from the GUI

switch cmd
case 'select'
  % An object is selected
  % Is it a vertex? Which one?
  ax = findobj(gcf,'type','axes');
  obj = get(gcf,'currentobj');
  k = find(any((obj==get(ax(1),'user'))') | any((obj==get(ax(2),'user'))'));
  if ~isempty(k) 
    % Get current angle value and assign it
    betar = get(findobj(gcf,'tag','betar'),'user');
    %%      t = findobj(gcf,'tag','betamenu');
    %%      val = get(t,'value');
    %%      betar(k) = (val-2)/2;
    t = findobj(gcf,'tag','angradio');
    t = get(t(1),'user');
    val = get(t,'value');
    val = find( cat(1,val{:}) );
    betar(k) = (val-2) / 2;
    set(findobj(gcf,'tag','betar'),'user',betar)
    % New colors
    colortable = [1 0 1;0 0 1;0 .5 .5;0 0 0];
    h = get(ax(1),'user');
    set(h(k,:),'color',colortable(val,:))
    h = get(ax(2),'user');
    set(h(k,:),'color',colortable(val,:))
    set(findobj(gcf,'tag','sumbeta'),'string',sprintf('%.1f',sum(betar)))
    hr = findobj(gcf,'tag','recompute');
    if abs(sum(betar)+2) > 1e-10
      set(hr,'enable','off')
    else
      set(hr,'enable','on')
    end
  end
  
case 'sideselect'
  % If a side is selected, highlight it and its counterpart
  obj = get(gcf,'currentobj');
  ho = get(findobj(gcf,'tag','orig_sides'),'user');
  hr = get(findobj(gcf,'tag','rect_sides'),'user');
  k = find((obj==ho) | (obj==hr));
  if ~isempty(k)
    set(ho(k),'linesty',':')
    set(hr(k),'linesty',':')
    drawnow
    % When button is released, we'll revert to previous state
    set(gcf,'windowbuttonup','cback(''sideup'');')
  end
  
case 'sideup'
  % End side highlighting and restore vertex selection mode
  ho = get(findobj(gcf,'tag','orig_sides'),'user');
  hr = get(findobj(gcf,'tag','rect_sides'),'user');
  set(ho,'linesty','-')
  set(hr,'linesty','-')
  % Nonobvious trick: Put the vertices back on "top" so they are
  % selectable 
  ax = findobj(gcf,'type','axes');
  set(get(ax(1),'user'),'linesty','.')
  set(get(ax(2),'user'),'linesty','.')
  set(gcf,'windowbuttonup','cback(''select'');')
  
case 'compute'
  % Compute rectified polygon
  betar = get(findobj(gcf,'tag','betar'),'user');
  cr = get(findobj(gcf,'tag','cr'),'user');
  Q = get(findobj(gcf,'tag','Q'),'user');
  % Must be a valid set of angles
  if abs(sum(betar)+2) < 1e-10
    % Do it
    wr = NaN*betar;
    % Reference side will include a nontrivial vertex
    k = min(find(betar<0));
    wr([k rem(k,length(betar(:)))+1]) = [0;1];
    [affr,wr] = craffine(wr,betar,cr,Q);
    set(findobj(gcf,'tag','wr'),'user',wr)
    set(findobj(gcf,'tag','affr'),'user',affr)
    % Update picture
    axes(findobj(gcf,'tag','crrect_rectified'));    
    cla
    axis auto
    [hr,h] = plotpoly(wr,betar,1);
    set(findobj('tag','rect_sides','user',hr(:)))	  
    set(h(:,1),'markersize',20)
    set(h(abs(betar+.5)<eps,:),'color',[1 0 1])
    set(h(abs(betar-.5)<eps,:),'color',[0 .5 .5])
    set(h(abs(betar-1) <eps,:),'color',[0 0 0])
    set(gca,'user',h)
  else
    fprintf('The sum of the beta''s must be -2 to compute the rectified polygon.\n')
  end
  
case 'radioexclude'
  t = findobj(gcf,'tag','angradio');
  k = find( t==gcbo );
  set(t(k),'value',1)
  set(t([1:k-1 k+1:4]),'value',0)
end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看欧美黄色| 色国产综合视频| 不卡的电视剧免费网站有什么| 日本久久一区二区| 久久久久久毛片| 婷婷成人综合网| 不卡电影免费在线播放一区| 欧美一区三区二区| 日本成人中文字幕| 成人激情免费电影网址| 日韩欧美一区在线| 日韩精品亚洲专区| 成人精品一区二区三区四区 | 婷婷综合久久一区二区三区| 国产在线精品一区二区| 日韩av午夜在线观看| 欧美精品丝袜中出| 亚洲欧美日韩国产一区二区三区| 91精品国产全国免费观看| 性欧美大战久久久久久久久| 337p亚洲精品色噜噜噜| 中文字幕av一区二区三区高 | 天天色综合天天| 中文字幕佐山爱一区二区免费| 国产+成+人+亚洲欧洲自线| 欧美剧情片在线观看| 伊人色综合久久天天| 成人激情小说网站| 国产亚洲精品aa| 久久99精品国产麻豆婷婷洗澡| 欧美在线看片a免费观看| 亚洲欧美在线高清| 成人a免费在线看| 日本一区二区三区在线不卡| 久久精品国产999大香线蕉| 欧美日韩国产在线观看| 成人午夜激情片| 亚洲精品在线电影| 国内成+人亚洲+欧美+综合在线| 欧美日韩aaa| 日韩精品一区第一页| 欧美日韩一区高清| 视频一区在线视频| 555夜色666亚洲国产免| 偷拍自拍另类欧美| 制服丝袜激情欧洲亚洲| 日韩高清一级片| 日韩一级免费一区| 美日韩一区二区| 精品欧美乱码久久久久久| 久久不见久久见免费视频1| 日韩精品一区二区三区蜜臀| 精品写真视频在线观看| 久久丝袜美腿综合| 国产一区二区在线看| 欧美剧情片在线观看| 日韩专区在线视频| 欧美精品1区2区| 亚洲成人av一区二区| 欧美色成人综合| 亚洲福利一二三区| 欧美久久久一区| 69p69国产精品| 不卡一区二区在线| 欧美主播一区二区三区美女| 亚洲美女精品一区| 色哟哟国产精品免费观看| 日韩一区欧美一区| 色欧美片视频在线观看| 伊人一区二区三区| 欧美色大人视频| 欧美aaaaaa午夜精品| 日韩欧美国产综合| 国产揄拍国内精品对白| 国产视频不卡一区| 国产精品主播直播| 国产日韩视频一区二区三区| 成人国产在线观看| 亚洲日本免费电影| 欧美日韩午夜影院| 美女视频第一区二区三区免费观看网站 | 色综合天天综合给合国产| 91丨porny丨户外露出| 国产精品蜜臀在线观看| 色一情一乱一乱一91av| 午夜精品福利一区二区蜜股av | 18成人在线视频| 欧美伊人精品成人久久综合97| 污片在线观看一区二区 | 视频一区二区三区在线| 欧美成人精品二区三区99精品| 国产乱子伦视频一区二区三区| 欧美国产精品一区| 成人中文字幕电影| 午夜伦欧美伦电影理论片| 2021国产精品久久精品| av午夜一区麻豆| 亚洲va中文字幕| 26uuu久久综合| 99国产精品久久久久| 日韩不卡一区二区三区 | 成人精品国产一区二区4080| 综合欧美一区二区三区| 欧美羞羞免费网站| 国产一区二区三区日韩| 亚洲精品免费看| 777久久久精品| 国产麻豆成人传媒免费观看| 亚洲欧美另类久久久精品| 欧美电影影音先锋| 国产白丝精品91爽爽久久| 亚洲国产精品久久久久婷婷884| 日韩精品中文字幕在线一区| 99国产精品久久久久久久久久| 一级中文字幕一区二区| 欧美精品一区二| 欧美熟乱第一页| 国产91精品露脸国语对白| 亚洲综合一区二区精品导航| 26uuu亚洲综合色欧美| 欧美天堂一区二区三区| 成人精品免费网站| 日韩精品一级中文字幕精品视频免费观看 | 亚洲欧美另类小说视频| 精品国产免费视频| 在线视频你懂得一区| 国产一区福利在线| 五月天精品一区二区三区| 国产精品色呦呦| 欧美久久免费观看| 成人av影视在线观看| 麻豆精品一区二区三区| 亚洲私人黄色宅男| 久久九九久精品国产免费直播| 欧美三级电影在线观看| 成人在线视频一区| 精品一区二区在线看| 亚洲va韩国va欧美va| ●精品国产综合乱码久久久久| 久久一区二区三区国产精品| 欧美久久一二三四区| av不卡在线观看| 国产一区二区三区av电影| 三级久久三级久久| 一区二区三区精品视频| 国产精品久久久久三级| 久久久亚洲高清| 日韩欧美的一区| 欧美精品777| 欧美日韩免费视频| 成人免费高清视频| 国产99久久久国产精品潘金| 久久电影国产免费久久电影 | 久久久久高清精品| 91精品黄色片免费大全| 欧美色视频一区| 色8久久人人97超碰香蕉987| 国产91精品精华液一区二区三区| 日韩激情一区二区| 一区二区三区四区在线免费观看 | 精品一区二区三区免费视频| 亚洲国产欧美另类丝袜| 国产日产欧美一区| 欧美xxxxx牲另类人与| 欧美午夜精品久久久久久孕妇 | 中文字幕中文乱码欧美一区二区 | 欧美中文字幕一区二区三区亚洲| 99久久久国产精品| eeuss鲁一区二区三区| 成人综合婷婷国产精品久久免费| 国产精品亚洲人在线观看| 国产一区二区三区综合| 乱中年女人伦av一区二区| 青青草伊人久久| 日韩精品久久久久久| 美女一区二区久久| 麻豆一区二区99久久久久| 老司机免费视频一区二区三区| 青娱乐精品在线视频| 久久精品噜噜噜成人88aⅴ| 免费观看在线综合| 裸体一区二区三区| 韩国v欧美v亚洲v日本v| 黄网站免费久久| 欧美福利一区二区| 777午夜精品免费视频| 欧美一区二区三区小说| 欧美一区二区三区免费在线看| 制服丝袜亚洲网站| 精品国产乱码久久久久久图片| 26uuu久久天堂性欧美| 国产区在线观看成人精品| 中文字幕精品综合| 国产女同互慰高潮91漫画| 亚洲少妇中出一区| 亚洲国产美女搞黄色| 免费国产亚洲视频| 国产乱子伦视频一区二区三区| 成人激情综合网站| 欧美最猛性xxxxx直播|