CSS

Saturday, December 24, 2011

My Differential Geometry Images

So I am writing some notes on differential geometry, and using metapost for tricky diagrams. Here are a few of the tricky diagrams I have.

The first three images are:

The third image is a tad bit bigger:

Note the fonts in this picture are messed up, since I had to use postscript fonts. It looks far more beautiful in TeX using metapost, trust me!

numeric u;
color yellow;
u := 1pc;
yellow = red+green;

verbatimtex \input amssym.tex etex;

% sphere
beginfig(0)
  draw fullcircle scaled 4u;
  draw (-2u,0)..(0,-.7u)..(2u,0);
  draw (-2u,0)..(0,.7u)..(2u,0) dashed evenly;
endfig;

% plane + cylinder
beginfig(1)
  draw (0,-u)--(0,3u)--(u,4u)--(u,0)--cycle;

  draw (3u,0)..(4u,-.5u)..(5u,0);
  draw (3u,0)..(4u,.5u)..(5u,0) dashed evenly;

  draw (3u,4u)..(4u,4.5u)..(5u,4u);
  draw (5u,4u)..(4u,3.5u)..(3u,4u);

  draw (3u,0)--(3u,4u);
  draw (5u,0)--(5u,4u);
endfig;

% saddle
beginfig(2)
  path p[];
  z[0] = (2u,4u);
  z[1] = (2.5u,3u);
  z[2] = (1.5u,2.5u);
  z[3] = (4u,0u);
  z[4] = (6.5u,u);
  z[5] = (7.u,1.75u);
  z[6] = (6.75u,0.5u);

  p[0] = z[0]..z[1]..z[2];
  p[1] = z[1]..z[3]..z[4];
  p[2] = z[5]..z[4]..z[6];

  p[3] = z[0]--(point 0.75*length(p[1]) of p[0]);
  p[4] = z[2]--(1.75u,-2u);
  p[5] = z[6]--(6.5u,-2u);
  p[6] = z[5]--(point 0.9*length(p[1]) of p[2]);
  for i=0 upto 6:
    draw p[i];
  endfor;

  draw (4u,-u){up}..(point 0.6*length(p1) of p1);
  draw (point 0.6*length(p1) of p1)..{down}(5.125u,-.75u) dashed evenly;
  draw (1.75u,-2u)..(4u,-u)..(6.5u,-2u);

  p7 = ((0,0)--(2u*unitvector(direction 0 of p[6]))) shifted point (length p6) of p[6];
  draw p[7] dashed evenly;

  p8 = ((0,0)--(3.5u*unitvector(direction 0 of p3))) shifted point (length p3) of p3;
  draw p8 dashed evenly;

  p9 = (point (length p8) of p8)..(5.125u,-.75u)..(point (length p7) of p7);
  draw p9 dashed evenly;

endfig;

beginfig(3)
  picture Rn;
  picture sphere;
  picture torus;
  % R^n
  Rn = image(
      for i=1 upto 3:
      draw (-.5u,i*u)--(3.5u,i*u) withcolor 0.75white;
      draw (i*u,-.5u)--(i*u,3.5u) withcolor 0.75white;
    endfor;
    drawdblarrow (-.5u,0)--(3.5u,0);
    drawdblarrow (0,-.5u)--(0,3.5u);
    );
  % sphere  
  sphere = image( 
      draw fullcircle scaled 4u;
    draw ((-2u,0)..(0,-.7u)..(2u,0));
    draw ((-2u,0)..(0,.7u)..(2u,0)) dashed evenly;
    );
  % torus
  torus = image(
      path hole;
    path uhole;
      draw
      (0,2u)..(-2u,0)..(0,-2u)..(2u,-u)..(4u,-2u)..(6u,0)..(4u,2u)..(2u,u)..cycle;
    hole = halfcircle rotated 180 scaled 2u shifted (4.5u,0);
    draw hole;
    uhole = (point 0.1*length(hole) of hole)
     ..(0.5[(point 0.1*length(hole) of hole),(point 0.9*length(hole) of hole)]+(0,.5u))
     ..(point 0.9*length(hole) of hole);
    draw uhole; 
    );
  
  draw Rn;
  draw Rn shifted (20u,-5u);

  draw torus shifted (8u,4u);

  path localPatch;
  path imageOfF;
  path preimageOfG;
  path imageOfG;
  path imageOfPsi;
  path intersection;
  localPatch = (fullcircle scaled 2u shifted (1.5u,1.5u));
  fill localPatch withcolor 0.75[blue,white];
  draw localPatch dashed evenly;

  z[0] = (((u,0)--(u,2u)) intersectionpoint localPatch);
  draw (((0,u)--(u,u)) intersectionpoint localPatch)
  --(((2u,u)--(4u,u)) intersectionpoint localPatch) withcolor 0.75[black,blue];
  draw (((0,2u)--(2u,2u)) intersectionpoint localPatch)
  --(((2u,2u)--(4u,2u)) intersectionpoint localPatch) withcolor 0.75[black,blue];
  draw (((u,0)--(u,2u)) intersectionpoint localPatch)
  --(((u,2u)--(u,4u)) intersectionpoint localPatch) withcolor 0.75[black,blue];
  draw (((2u,0)--(2u,2u)) intersectionpoint localPatch)
  --(((2u,2u)--(2u,4u)) intersectionpoint localPatch) withcolor 0.75[black,blue];

  imageOfF = fullcircle xscaled 3u yscaled 1.5u shifted (8u,4u);
  fill imageOfF withcolor 0.75[blue,white];
  draw imageOfF dashed evenly;

  picture preG;

  preG = image(
  
  preimageOfG = unitsquare scaled 2u rotated 45 shifted (22u,-5u);

    fill preimageOfG withcolor 0.5[yellow,white];
    fill fullcircle xscaled u yscaled 5u rotated -23 shifted (22u,-3u)
      withcolor 0.5[green,white];
      draw (((21u,-4u)--(21u,-5u)) intersectionpoint preimageOfG)
    --(((21u,-5u)--(21u,-3u)) intersectionpoint preimageOfG)
    withcolor 0.5[black,yellow];
  draw (((22u,-2u)--(22u,-3u)) intersectionpoint preimageOfG)
    --(((22u,-4u)--(22u,-8u)) intersectionpoint preimageOfG)
    withcolor 0.5[black,yellow];
  draw (((23u,-3u)--(23u,-3.5u)) intersectionpoint preimageOfG)
    --(((23u,-3.5u)--(23u,-8u)) intersectionpoint preimageOfG)
    withcolor 0.5[black,yellow];
  draw (((21u,-4u)--(22u,-4u)) intersectionpoint preimageOfG)
    --(((22u,-4u)--(25u,-4u)) intersectionpoint preimageOfG)
    withcolor 0.5[black,yellow];
  draw (((21u,-3u)--(22u,-3u)) intersectionpoint preimageOfG)
    --(((22u,-3u)--(25u,-3u)) intersectionpoint preimageOfG)
    withcolor 0.5[black,yellow];
  draw preimageOfG dashed evenly;

  clip currentpicture to preimageOfG;
    );
  draw preG;

  imageOfG = (19u,2.5u)--(20u,3u)--(21.5u,3u)--(21u,2.5u)--cycle;


  fill imageOfG withcolor 0.5[white,yellow];

  imageOfPsi = fullcircle xscaled 2u yscaled u rotated -45
    shifted (20u,3u);
  fill imageOfPsi withcolor 0.75[blue,white];


  numeric t[];
  (t[0],whatever) = imageOfPsi intersectiontimes ((19u,2.5u)--(20u,3u));
  (t[1],whatever) = imageOfPsi intersectiontimes ((21u,2.5u)--(19u,2.5u));
  (t[2],whatever) = imageOfPsi intersectiontimes ((20u,3u)--(23u,3u));  
  (t[3],whatever) = imageOfPsi intersectiontimes ((19u,2.5u)--(20u,2.5u));
  
  intersection = (subpath(t0,t3) of imageOfPsi)--%(20u,3u)--
    (subpath(t1,t2) of imageOfPsi)--(20u,3u)--cycle;
  
  fill intersection withcolor 0.5[green,white];
  draw imageOfPsi dashed evenly;
  draw imageOfG dashed evenly;
  draw sphere shifted (20u,4u);

  p[0] := (point 0.25*length(localPatch) of localPatch)..(4u,4u)
  ..(point 0.5*length(imageOfF) of imageOfF);
  p[1] := (point 0 of imageOfF)..(12u,5u)..(19.5u,3.5u);
  p[2] := (21.5u,3u)..(23u,0)..(23u,-3u);
  p[3] := (point .75*length(localPatch) of localPatch)..(1.5u,-u)
  ..(10u,-4u)..(21.5u,-4.5u);
  drawarrow p[0];
  
  drawarrow p1;

  drawarrow p2;

  drawarrow p3 dashed evenly;

  label.top(btex $x$ etex, point 0.5*length(p0) of p0);
  label.top(btex $\varphi$ etex, point 0.75*length(p1) of p1);
  label.rt(btex $y^{-1}$ etex, point 0.5*length(p2) of p2);
  label.bot(btex $y^{-1}\circ\varphi\circ x$ etex, point 0.6*length(p3) of p3);

  label(btex $U$ etex, (1.5u,1.5u)) withcolor 0.5[black,blue];

  draw (8u,4u) withpen pencircle scaled 3;
  label.lft(btex $p$ etex, (8u,4u)) withcolor 0.75[blue,black];
  label.bot(btex $M$ etex, (12u,2u));

  label.rt(btex $N$ etex, (22u,4u));

  label.lft(btex $\Bbb{R}^{n}$ etex, (20u,-2u));

  label.lft(btex $\Bbb{R}^{m}$ etex, (0,3u));
endfig;


end;

No comments:

Post a Comment