边界爆破的脖子区域分解图

如下图所示,脖子区域的分解图为
\[
D_\delta^+\setminus D_{r_nR}^+(x_n)
=D_\delta^+\setminus D_{\delta/2}^+(x_n’)
\cup D_{\delta/2}^+(x_n’)\setminus D_{2d_n}^+(x_n’)
\cup D_{2d_n}^+(x_n’)\setminus D_{d_n}^+(x_n)
\cup D_{d_n}^+(x_n)\setminus D_{r_nR}^+(x_n).
\]

NeckRegionDecomposition.png

\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
%\mplibnumbersystem{double}
\begin{mplibcode}
    u:=15pt;
    def DrawPaths(text lis) = 
    pickup pencircle scaled .3pt;
    for i=lis:
    draw pat[i];
    pat[10+i]:=(point 0 of pat[i]) -- (point 4 of pat[i]);
    draw pat[10+i];
    endfor;
    pickup defaultpen;
    enddef;
    beginfig(1);
    path pat[]; picture lab;
    delta=60u;
    rnR=4u;
    pat0=halfcircle scaled delta;
    z0=(4u, 4u); z1=(xpart(z0),0);
    d=2ypart(z0);
    pat1=fullcircle scaled rnR shifted z0;
    pat2=halfcircle scaled (delta/2) shifted z1;
    pat3=halfcircle scaled (2d) shifted z1;
    pat4=fullcircle scaled d shifted z0;
    %0=D_\delta^+$
    %1=D_{r_nR}^+(x_n)
    %2=D_{\delta/2}^+(x_n')
    %3=D_{2d_n}^+(x_n')
    %4=D_{d_n}^+(x_n)
    DrawPaths(0,1,2,3,4); 
    pat6=buildcycle(pat0,reverse pat10, reverse pat2, pat10);
    fill pat6 withcolor .95[blue,white];
    pat7=buildcycle(pat2,reverse pat12, reverse pat3, reverse pat12);
    fill pat7 withcolor .95[green,white];
    fill buildcycle(pat3,pat13) withcolor .95[red,white];
    fill pat4 withcolor .95[blue+green,white];
    unfill pat1;
    input hatching;
    pat5=buildcycle(pat0, pat10);
    hatchoptions (withcolor .8[red,white] dashed evenly);
    hatchfill pat5 withcolor (45, 3mm, -.5bp); 
    unfill buildcycle(pat1,pat11);
 
    label.bot(btex $D_\delta^+$ etex, point 0 of pat0);
    dotlabel.bot(btex $x_n$ etex, z0) withpen pencircle scaled 1.5pt;
    dotlabel.bot(btex $x_n'$ etex, z1) withpen pencircle scaled 1.5pt;
    dotlabel.bot(btex $0$ etex, origin) withpen pencircle scaled 1.5pt;
    lab:=thelabel.bot(btex $D_{r_nR}^+(x_n)$ etex, (point 2 of pat1)+0.5u*down);
    unfill bbox lab; draw lab;
    label.bot(btex $D_{\delta/2}^+(x_n')$ etex, point 0 of pat2);
    label.bot(btex $D_{2d_n}^+(x_n')$ etex, point 0 of pat3);
    lab:=thelabel.bot(btex $D_{d_n}^+(x_n)$ etex, (point 2 of pat4)-0.5u*up);
    unfill bbox lab; draw lab;
    endfig;
  \end{mplibcode}
  \end{document}

Leave a Reply

Your email address will not be published. Required fields are marked *