Exemple #1
0
/* >>>>>>>>>> EX13_1 <<<<<<<<<< */
void ex13_1 (void)
{ setpag ("da4l");
  disini ();
  pagera ();
  hwfont ();

  frame  (3);
  axspos (400, 1850);
  axslen (2400, 1400);

  name   ("Longitude", "x");
  name   ("Latitude", "y");
  titlin ("World Coastlines and Lakes", 3);

  labels ("map", "xy");
  grafmp (-180.f, 180.f, -180.f, 90.f, -90.f, 90.f, -90.f, 30.f);

  gridmp (1, 1);
  color  ("green");
  world  ();
  color  ("fore");

  height (50);
  title  ();
  disfin ();
}
Exemple #2
0
/* >>>>>>>>>> EXA_9  <<<<<<<<<< */
void exa_9 (void)
{ int nl, nx, ny, i;
  static int ivec[20]   = {   0,1111,1311,1421,1531,1701,1911,3111,3311,3421,
                           3531,3703,4221,4302,4413,4522,4701,5312,5502,5703};
  static char *ctit = "Vectors", cnum[5];

  disini ();
  color  ("cyan");
  pagera ();
  hwfont ();

  height (60);
  nl = nlmess (ctit);
  nx = (2970 - nl) / 2;
  messag (ctit, nx, 200);

  height (50);
  nx = 300;
  ny = 400;

  for (i = 0; i < 20; i++)
  { if (i == 10) 
    { nx += 2970 / 2;
      ny  = 400;
    }

    sprintf (cnum, "%d", ivec[i]);
    nl = nlmess (cnum);
    messag (cnum, nx - nl, ny - 25);

    vector (nx + 100, ny, nx + 1000, ny, ivec[i]);
    ny += 160;
  }
  disfin ();
}
Exemple #3
0
/* >>>>>>>>>> EX13_2 <<<<<<<<<< */
void ex13_2 (void)
{ int nya, i;
  static char *cproj[3] = {"Sanson", "Winkel", "Hammer"};
  char   ctit[61];

  setpag ("da4p");
  disini ();
  hwfont ();
  pagera ();

  height (40);
  axslen (1600, 750);

  nya = 3850;
  for (i = 0; i < 3; i++)
  { nya = nya - 950;
    axspos (250, nya);

    projct (cproj[i]);
    noclip ();
    grafmp (-180.f, 180.f, -180.f, 30.f, -90.f, 90.f, -90.f, 15.f);

    sprintf (ctit, "%s%s", "Elliptical Projection of ", cproj[i]);
    titlin (ctit, 4);
    title  ();
    color  ("green");
    world  ();
    color  ("fore");

    gridmp (1, 1);
    endgrf ();
  }
  disfin ();
}
Exemple #4
0
/* >>>>>>>>>> EX13_3 <<<<<<<<<< */
void ex13_3 (void)
{ int    nl, nx, i;
  static int   nxa[4]  = {200, 1150, 200, 1150},
               nya[4]  = {1600, 1600, 2700, 2700};
  static float xpol[4] = {0.f, 0.f, 0.f, 0.f},
               ypol[4] = {0.f, 45.f, 90.f, -45.f};
  static char  *ctit   = "Azimuthal Lambert Projections";

  setpag ("da4p");
  disini ();
  hwfont ();
  pagera ();

  height (50);
  nl = nlmess (ctit);
  nx = (2250 - nl) / 2;
  messag (ctit, nx, 300);

  axslen (900, 900);
  projct ("lambert");

  for(i = 0; i < 4; i++)
  { axspos (nxa[i], nya[i]);
    mappol (xpol[i], ypol[i]);
    grafmp (-180.f, 180.f, -180.f, 30.f, -90.f, 90.f, -90.f, 30.f);

    color  ("green");
    world  ();
    color  ("fore");
    gridmp (1, 1);
    endgrf ();
  }
  disfin ();
}
Exemple #5
0
/* >>>>>>>>>> EXA12_2 <<<<<<<<<< */
void exa12_2 (void)
{ float p = 3.14159f, step;
  
   setpag ("da4p");
   disini ();
   pagera ();
   hwfont ();
   axspos (200, 2400);
   axslen (1800, 1800);
   intax  ();

   titlin ("Surface Plot of the Parametric Function", 2);
   titlin ("[COS(t)+(3+COS(u)), SIN(t)*(3+COS(u)), SIN(u)]", 4);

   name   ("X-axis", "x");
   name   ("Y-axis", "y");
   name   ("Z-axis", "z");

   vkytit (-300);
   zscale (-1.f, 1.f);
   graf3d (-4.f, 4.f, -4.f, 1.f, -4.f, 4.f, -4.f, 1.f,
	   -3.f, 3.f, -3.f, 1.f);
   height (40);
   title  ();

   surmsh ("on");
   step = (float) (2 * 3.14159 / 30.);
   surfcp (zfun, 0.f, 2 * p, step, 0.f, 2 * p, step);
   disfin ();
}
Exemple #6
0
/* >>>>>>>>>> EXA_13 <<<<<<<<<< */
void exa_13()
{ int n = 7, i;
  static char
      *clr[7] = {"fore", "red", "yello", "cyan", "oran", "green", "blue"},
     *cont[7] = {"anta", "afri", "sout" , "aust", "nort", "eura", "lake"};

  disini ();
  hwfont ();
  setvlt ("small");
  pagera ();

  projct ("hammer");
  noclip ();
  grafmp (-180.f, 180.f, -180.f, 30.f, -90.f, 90.f, -90.f, 30.f);

  shdpat (16L);
  for (i = 0; i < n; i++)
  { color  (clr[i]); 
    shdmap (cont[i]);                               
    sendbf ();
  }

  color  ("fore");
  gridmp (1, 1);
  disfin ();
}
Exemple #7
0
/* >>>>>>>>>> EXA_10  <<<<<<<<<< */
void exa_10 (void)
{ int i;
  char cbuf[40], cstr[4];

  for (i = 0; i < 18; i++)
    xray[i] = 1.f;

  setpag ("da4p");
  disini ();
  setvlt ("small");
  pagera ();
  hwfont ();

  axspos (250, 2700);
  axslen (1600, 2200);
  titlin ("Shading Patterns (PIEGRF)", 3);
  height (50);

  legini (cbuf, 18, 2);

  for (i = 0; i < 18; i++)
  { sprintf (cstr, "%d", i);
    leglin (cbuf, cstr, i + 1);
  }

  chnpie ("both");
  labels ("none", "pie");
  piegrf (cbuf, 1, xray, 18);
  title  ();
  disfin ();
}
Exemple #8
0
/* >>>>>>>>>> EXA_6  <<<<<<<<<< */
void exa_6 (void)
{ int i, ny, nx;
  static float    x[2] = {3.f, 9.f}, y[2];
  static char *ctyp[8] = {"SOLID",  "DOT",   "DASH", "CHNDSH",
                          "CHNDOT", "DASHM", "DOTL", "DASHL"};

  setpag ("da4p");
  disini ();
  setvlt ("small");
  pagera ();
  center ();
  chncrv ("both");
  hwfont ();

  name   ("X-axis", "x");
  name   ("Y-axis", "y");

  titlin ("Demonstration of Curve", 1);
  titlin ("Line Styles", 3);

  graf   (0.f, 10.f, 0.f, 2.f, 0.f, 10.f, 0.f, 2.f);
  title  ();

  for (i = 1; i <= 8; i++)
  { y[0] = 9.5f - i;
    y[1] = 9.5f - i;
    ny = nyposn (y[0]);
    nx = nxposn (1.0f);
    messag (ctyp[i-1], nx, ny - 20);
    curve  (x, y, 2);
  }

  disfin ();
}
Exemple #9
0
/* >>>>>>>>>> EXA12_1 <<<<<<<<<< */
void exa12_1 (void)
{ int n = 50 ,i, j;
  static int ixp[4] = {200, 1999, 1999, 200},
             iyp[4] = {2600, 2600, 801, 801};

  double fpi = 3.1415927 / 180., step, x, y;

  step = 360. / (n - 1);
  for (i = 0; i < n; i++)
  { x = i * step;
    for (j = 0; j < n; j++)
    { y = j * step;
      zmat[i][j] = (float) (2 * sin (x * fpi) * sin (y * fpi));
    }
  }

  setpag ("da4p");
  disini ();
  pagera ();
  hwfont ();

  axspos (200, 2600);
  axslen (1800, 1800);

  name   ("X-axis", "x");
  name   ("Y-axis", "y");
  name   ("Z-axis", "z");

  titlin ("Surface Plot (SURMAT)", 2);
  titlin ("F(X,Y) = 2*SIN(X)*SIN(Y)", 4);

  graf3d (0.f, 360.f, 0.f, 90.f, 0.f, 360.f, 0.f, 90.f,
          -3.f, 3.f, -3.f, 1.f);
  height (50);
  title  ();
  shlsur ();
  color  ("green");
  surmat ((float *) zmat, n, n, 1, 1);

  color  ("fore");
  grfini (-1.f, -1.f, -1.f, 1.f, -1.f, -1.f, 1.f, 1.f, -1.f);
  nograf ();
  graf   (0.f, 360.f, 0.f, 90.f, 0.f, 360.f, 0.f, 90.f);
  dashl  ();
  grid   (1,1);
  grffin ();

  grfini (-1.f, -1.f, -1.f, -1.f, 1.f, -1.f, -1.f, 1.f, 1.f);
  graf   (0.f, 360.f, 0.f, 90.f, -3.f, 3.f, -3.f, 1.f);
  grid   (1, 1);
  grffin ();

  grfini (-1.f, 1.f, -1.f, 1.f, 1.f, -1.f, 1.f, 1.f, 1.f);
  shdpat (7L);
  solid  ();
  areaf  (ixp, iyp, 4);
  grffin ();
  disfin ();
}
Exemple #10
0
/* >>>>>>>>>> EX6_1  <<<<<<<<<< */
void ex6_1 (void)
{ int ny = 1100, nl;
  static char *ctit = "Instruction Alphabet",
  *ct1 = 
   "{m2}C{m4}(x) = {m3p}v{m4}e{e}-t{r}t{e}x-1{r}dt{gdh0.4f-1}0{u1.4m3f3}l",
  *ct2 =
   "lim{gdhc}x{m3cd1.1}a{c}l{rm} (1 + {puh} 1 {rvgd0.5h} x {r}){u1.2h}x{r} = e",
  *ct0 = 
   "Character{h0.5} height{rz-30}  incli{z30}nation {zw0.5} ratio {wk} fixed width",
  *ct3 = "Underscoring{l}    {p}twice{j}    vectors {pa8v}";

  setpag ("da4l");
  disini ();
  pagera ();
  hwfont ();
  color  ("cyan");

  height (50);
  nl = nlmess (ctit);
  messag (ctit, (2970 - nl) / 2, 250);

  height (36);
  messag ("1.)", 300, 450);
  messag (ct0, 500, 450);

  height (50);
  smxalf ("inst", "{", "}", 1);
  messag (ct0, 500, 550);

  reset  ("smxa");
  height (36);
  messag ("2.)", 300, 750);
  messag (ct3, 500, 750);

  height (50);
  smxalf ("inst", "{", "}", 1);
  messag (ct3, 500, 850);

  reset  ("smxalf");
  height (36);
  messag ("3.)", 300, ny);
  messag (ct1, 500, ny);

  smxalf ("inst", "{", "}", 1);
  height (80);
  messag (ct1, 900, ny + 150);

  height (36);
  reset  ("smxa");
  messag ("4.)", 300, ny + 450);
  messag (ct2, 500, ny + 450);

  height (80);
  smxalf ("inst", "{", "}", 1);
  messag (ct2, 900, ny + 600);
  disfin ();
}
Exemple #11
0
/* >>>>>>>>>> EX14_1 <<<<<<<<<< */
void ex14_1 (void)
{ int n = 50, i, j;
  double   fpi = 3.14159 / 180., step, x, y;
  float  zlev;

  step = 360. / (n - 1);

  for (i = 0; i < n; i++)
  { xray[i] = (float) (i * step);
    yray[i] = (float) (i * step);
  }

  for (i = 0; i < n; i++)
  { for (j = 0; j < n; j++)
    { x = xray[i] * fpi;
      y = yray[j] * fpi;    
      zmat[i][j] = (float) (2 * sin (x) * sin (y));
    }
  }

  setpag ("da4p");
  disini ();
  complx ();
  pagera ();

  titlin ("Contour Plot", 1);
  titlin ("F(X,Y) = 2 * SIN(X) * SIN(Y)", 3);

  name   ("X-axis", "x");
  name   ("Y-axis", "y");

  intax  ();
  axspos (450, 2670);
  graf   (0.f, 360.f, 0.f, 90.f, 0.f, 360.f, 0.f, 90.f);

  height (30);
  for (i = 0; i < 9; i++)
  { zlev = (float) (-2. + i * 0.5);
    setclr ((i + 1) * 25);
    if (i == 4)
      labels ("none", "contur"); 
    else
      labels ("float", "contur");

    contur  (xray, n, yray, n, (float *) zmat, zlev);
  }

  height (50);
  color  ("fore");
  title  ();
  disfin ();
}
Exemple #12
0
int main ()
{ int n = 100, i, ic;
  double fpi = 3.1415926 / 180.0, step, x;
  float  xray[100], y1ray[100], y2ray[100];

  step = 360. / (n - 1);

  for (i = 0; i < n; i++)
  { xray[i] = (float) (i * step);
    x = xray[i] * fpi;
    y1ray[i] = (float) sin (x);
    y2ray[i] = (float) cos (x);
  }

  metafl ("cons");
  scrmod ("revers");
  disini ();
  pagera ();
  complx ();
  axspos (450, 1800);
  axslen (2200, 1200);

  name   ("X-axis", "x");
  name   ("Y-axis", "y");

  labdig (-1, "x");
  ticks  (9, "x");
  ticks  (10, "y");

  titlin ("Demonstration of CURVE", 1);
  titlin ("SIN(X), COS(X)", 3);

  ic =   intrgb (0.95,0.95,0.95);
  axsbgd (ic);

  graf   (0.0, 360.0, 0.0, 90.0, -1.0, 1.0, -1.0, 0.5);
  setrgb (0.7, 0.7, 0.7);
  grid   (1, 1);

  color  ("fore");
  height (50);
  title  ();

  color  ("red");
  curve  (xray, y1ray, n);
  color  ("green");
  curve  (xray, y2ray, n);
  disfin ();
  return 0;
}
Exemple #13
0
/* >>>>>>>>>> EXA_7  <<<<<<<<<< */
void exa_7 (void)
{ int n = 100, i, nx, ny;
  double fpi = 3.1415926/180., step, x;
  char   cbuf[20];

  step = 360. / (n - 1);
  for (i = 0; i < n; i++)
  { xray[i] = (float) (i * step);
    x=xray[i] * fpi;
    y1ray[i] = (float) sin (x);
    y2ray[i] = (float) cos (x);
  }

  disini ();
  hwfont ();
  pagera ();

  axspos (450, 1800);
  axslen (2200, 1200);

  name   ("X-axis", "x");
  name   ("Y-axis", "y");
  labdig (-1, "x");
  ticks  (10, "xy");

  titlin ("Demonstration of Curve", 1);
  titlin ("Legend", 3);

  graf   (0.f, 360.f, 0.f, 90.f, -1.f, 1.f, -1.f, 0.5f);
  title  ();
  xaxgit ();

  chncrv ("both");
  curve  (xray, y1ray, n);
  curve  (xray, y2ray, n);

  legini (cbuf, 2, 7);
  nx = nxposn (190.f);
  ny = nyposn (0.75f);
  legpos (nx, ny);
  leglin (cbuf, "sin (x)", 1);
  leglin (cbuf, "cos (x)", 2);
  legtit ("Legend");
  legend (cbuf, 3);
  disfin ();
}
Exemple #14
0
/* >>>>>>>>>> EXA_2  <<<<<<<<<< */
void exa_2 (void)
{ int n = 300, m = 10, i;
  double f = 3.1415926 / 180., step, a;
  float x2[10], y2[10];
  
  step = 360. / (n - 1);

  for (i = 0; i < n; i++)
  { a = i * step * f;
    yray[i] = (float) a;
    xray[i] = (float) sin (5 * a);
  }

  for (i = 0; i < m; i++)
  { x2[i] = i + 1;
    y2[i] = i + 1;
  }

  setpag ("da4p");
  disini ();
  pagera ();
  hwfont ();
  axspos (450,1800);

  titlin ("Polar Plots", 2);
  ticks  (3, "Y");
  axends ("NOENDS", "X");
  labdig (-1, "Y");
  axslen (1000, 1000);
  axsorg (1050, 900);

  grafp  (1.f ,0.f, 0.2f, 0.f, 30.f);
  curve  (xray, yray, n);
  htitle (50);
  title  ();
  endgrf ();

  labdig (-1, "X");
  axsorg (1050, 2250);
  labtyp ("VERT", "Y");
  grafp  (10.f, 0.f, 2.f, 0.f, 30.f);
  barwth (-5.f);
  polcrv ("FBARS");
  curve  (x2, y2, m);
  disfin ();
}
Exemple #15
0
/* >>>>>>>>>> EXA_12 <<<<<<<<<< */
void exa_12 (void)
{ int i, nxp, nyp;
  float  xp, yp;
  static float   xc[9] = {-22.f,18.f,37.5f,0.f,2.5f,12.5f,23.5f,-3.75f,14.25f},
                 yc[9] = {64.f,59.6f,56.f,51.5f,48.5f,42.f,38.f,40.3f,50.1f};
  static char *cstr[9] = {"REYKJAVIK", "STOCKHOLM", "MOSKAU", "LONDON",
                          "PARIS", "ROM", "ATHEN", "MADRID", "PRAG"};

  disini ();
  pagera ();
  hwfont ();

  axspos (500, 1850);
  axslen (2200, 1400);

  labdig (-1, "xy");
  ticks  (1, "xy");
  name   ("Longitude", "x");
  name   ("Latitude", "y");

  titlin ("Map Plot", 3);
  incmrk (-1);

  labels ("map", "xy");
  projct ("lambert");
  frame  (3);
  grafmp (-40.f, 60.f, -40.f, 20.f, 35.f, 70.f, 40.f, 10.f);

  color  ("green");
  world  ();
  color  ("fore");
  curvmp (xc, yc, 9);

  for (i = 0; i < 9; i++)
  { pos2pt (xc[i], yc[i], &xp, &yp);
    nxp = (int) (xp + 30);
    nyp = (int) yp;
    messag (cstr[i], nxp, nyp);
  }

  gridmp (1, 1);
  height (50);
  title  ();
  disfin ();
}
Exemple #16
0
/* >>>>>>>>>> EXA_4  <<<<<<<<<< */
void exa_4 (void)
{ int nya, i;
  static char    ctit[]  = "Logarithmic Scaling", cstr[60],
                *clab[3] = {"LOG", "FLOAT", "ELOG"};

  setpag ("da4p");
  disini ();
  pagera ();
  hwfont ();

  axslen (1400, 500);
  name   ("X-axis", "x");
  name   ("Y-axis", "y");
  axsscl ("log", "xy");

  titlin (ctit, 2);

  for (i = 1; i <= 3; i++)
  { nya = 2650 - (i - 1) * 800;
    labdig (-1, "xy");
    if (i == 2)
    { labdig (1, "y");
      name   (" ", "x");
    }

    axspos (500, nya);
    color  ("yellow");
    strcpy (cstr, "Labels: ");
    strcat (cstr, clab[i-1]);
    messag (cstr,600,nya-400);
    color  ("fore");
    labels (clab[i-1],"xy");
    graf   (0.f, 3.f, 0.f, 1.f, -1.f, 2.f, -1.f, 1.f);

    if (i == 3)
    { height (50);
      title  ();
    }

    endgrf ();
  }
  disfin ();
}
Exemple #17
0
/* >>>>>>>>>> EXA_5  <<<<<<<<<< */
void exa_5 (void)
{ int nya = 2700, i, nx, ny;
  static float
        x[] = { 0.0f,  1.0f,  3.0f,  4.5f,  6.0f,  8.0f,  9.0f, 11.0f, 12.0f,
               12.5f, 13.0f, 15.0f, 16.0f, 17.0f, 19.0f, 20.0f},
        y[] = { 2.0f,  4.0f,  4.5f,  3.0f,  1.0f,  7.0f,  2.0f,  3.0f,  5.0f,
                2.0f,  2.5f,  2.0f,  4.0f,  6.0f,  5.5f,  4.0f};
  static char 
       *cpol[6] = {"SPLINE", "STEM", "BARS", "STAIRS", "STEP", "LINEAR"},
       *ctit    = "Interpolation Methods";

  setpag ("da4p");
  disini ();
  hwfont ();
  pagera ();
  incmrk (1);
  hsymbl (25);
  titlin (ctit, 1);
  axslen (1500, 350);
  setgrf ("line", "line", "line", "line");

  for (i = 0; i < 6; i++)
  { axspos (350, nya - i * 350);
    polcrv (cpol[i]);
    marker (0);

    graf   (0.f, 20.f, 0.f, 5.f, 0.f, 10.f, 0.f, 5.f);
    nx = nxposn (1.f);
    ny = nyposn (8.f);
    color  ("yellow");
    messag (cpol[i], nx, ny);
    curve (x, y, 16);
    color ("fore");

    if (i == 5)
    { height (50);
      title  ();
    }
    endgrf ();
  }

  disfin ();
}
Exemple #18
0
/* >>>>>>>>>> EX10_2 <<<<<<<<<< */
void ex10_2 (void)
{ int nya = 2800, i;
  static char    *ctit = "Pie Charts (PIEGRF)", cbuf[41];
  static float xdray[5] = {1.f, 2.5f, 2.f, 2.7f, 1.8f};

  setpag ("da4p");
  disini ();
  pagera ();
  hwfont ();
  axslen (1600, 1000);
  titlin (ctit, 2);
  chnpie ("both");

  legini (cbuf, 5, 8);
  leglin (cbuf, "FIRST", 1);
  leglin (cbuf, "SECOND", 2);
  leglin (cbuf, "THIRD", 3);
  leglin (cbuf, "FOURTH", 4);
  leglin (cbuf, "FIFTH", 5);

  patcyc (1, 7L);
  patcyc (2, 4L);
  patcyc (3, 13L);
  patcyc (4, 3L);
  patcyc (5, 5L);

  for (i = 0; i < 2; i++)
  { axspos (250,nya - i * 1200);
    if (i == 1)
    { labels ("data", "pie");
      labpos ("external", "pie");
    }
    piegrf (cbuf, 1, xdray, 5);

    if (i == 1)
    { height (50);
      title  ();
    }
    endgrf ();
  }
  disfin ();
}
Exemple #19
0
/* >>>>>>>>>> EXA_14 <<<<<<<<<< */
void exa_14 (void)
{ int ncol = 0, ny, i, j, nx, nb = 100, nh = 80, nl, ip, id_lis, ilis;
  float xcol;
  char   *cvlt;
  static char clis[] =
      {"SMALL|RAINBOW|SPECTRUM|TEMPERATURE|GREY|RRAIN|RGREY|VGA"};

  swgpop ("NOQUIT");
  swgpop ("NOHELP");

  ip = wgini ("vert");
  ilis = 2;
  wglab (ip, "Colour Table:");
  id_lis = wglis (ip, clis, ilis);
  wgok (ip);
  wgfin ();

  ilis = gwglis (id_lis);
  cvlt = itmstr (clis, ilis);

  disini ();
  setvlt (cvlt);
  pagera ();

  height (30);
  for (i = 1; i <= 13; i++)
  { ny = i * 150;
    nx = -50;
    for (j = 1; j <= 20; j++)
    { nx += 145;
      if (ncol <= 255)
      { point  (nx, ny, nb, nh, ncol);
        xcol = (float) ncol;
        nl = nlnumb (xcol, -1);
        color ("fore");  
        number (xcol, -1, nx - nl / 2, ny + 50);
        ncol++;
      }
    }
  }                   
  disfin ();
}
Exemple #20
0
/* >>>>>>>>>> EXA_8  <<<<<<<<<< */
void exa_8 (void)
{ int   ixp[4], iyp[4], nl, nx, nx0 = 335, ny0 = 350, ny, i, j, ii, k, iclr;
  static int  ix[4] = {0, 300, 300, 0},
              iy[4] = {0, 0, 400, 400};
  static char *ctit = "Shading Patterns (AREAF)", cstr[3];

  disini ();
  setvlt ("small");
  pagera ();
  hwfont ();

  height (50);
  nl = nlmess (ctit);
  nx = (2970 - nl) / 2;
  messag (ctit, nx, 200);

  iclr = 0;
  for (i = 0; i < 3; i++)
  { ny = ny0 + i * 600;
    for (j = 0; j < 6; j++)
    { nx = nx0 + j * 400;
      ii = i * 6 + j;
      shdpat ((long) ii);
      sprintf (cstr, "%d", ii);

      iclr = iclr % 8;
      iclr++;
      setclr (iclr);

      for (k = 0; k < 4; k++)
      { ixp[k] = ix[k] + nx;
        iyp[k] = iy[k] + ny;
      }
      areaf  (ixp, iyp, 4);

      nl  = nlmess (cstr);
      nx += (300 - nl) / 2;
      messag (cstr, nx, ny + 460);
    }
  }
  disfin ();
}
Exemple #21
0
/* >>>>>>>>>> EX11_1 <<<<<<<<<< */
void ex11_1 (void)
{ int n = 50, i, j;
  double   fpi = 3.1415927 / 180., step, x, y;
  char   *cdev;

  step = 360. / (n - 1);
  for (i = 0; i < n; i++)
  { x = i * step;
    for (j = 0; j < n; j++)
    { y = j * step;
      zmat[i][j] = (float) (2 * sin (x * fpi) * sin (y * fpi));
    }
  }

  disini ();
  pagera ();
  cdev = getmfl ();
  hwfont ();

  titlin ("3-D Colour Plot of the Function", 2);
  titlin ("F(X,Y) = 2 * SIN(X) * SIN(Y)", 4);

  name   ("X-axis", "x");
  name   ("Y-axis", "y");
  name   ("Z-axis", "z");

  intax  ();
  autres (n, n);
  axspos (300, 1850);
  ax3len (2200, 1400, 1400);

  graf3  (0.f, 360.f, 0.f, 90.f, 0.f, 360.f, 0.f, 90.f,
          -2.f, 2.f, -2.f, 1.f);
  crvmat((float *) zmat, n, n, 1, 1);

  height (50);
  if (strcmp (cdev, "POST") == 0)
        psfont ("palatino-bolditalic");
  title  ();
  disfin ();
}
Exemple #22
0
/* >>>>>>>>>> EXA_1  <<<<<<<<<< */
void exa_1 (void)
{ int n = 100, i;
  double fpi = 3.1415926 / 180., step, x;

  step = 360. / (n-1);

  for (i = 0; i < n; i++)
  { xray[i] = (float) (i * step);
    x = xray[i] * fpi;
    y1ray[i] = (float) sin (x);
    y2ray[i] = (float) cos (x);
  }

  disini ();
  pagera ();
  hwfont ();
  axspos (450, 1800);
  axslen (2200, 1200);

  name   ("X-axis", "x");
  name   ("Y-axis", "y");

  labdig (-1, "x");
  ticks  (10, "xy");

  titlin ("Demonstration of CURVE", 1);
  titlin ("SIN(X), COS(X)", 3);

  graf   (0.f, 360.f, 0.f, 90.f, -1.f, 1.f, -1.f, 0.5f);
  title  ();

  color  ("red");
  curve  (xray, y1ray, n);
  color  ("green");
  curve  (xray, y2ray, n);

  color  ("fore");
  dash   ();
  xaxgit ();
  disfin ();
}
Exemple #23
0
/* >>>>>>>>>> EX14_2 <<<<<<<<<< */
void ex14_2 (void)
{ int    n = 50, i, j;
  float zlev[12];
  double step, x, y;

  step = 1.6 / (n - 1);
  for (i = 0; i < n; i++)
  { x = 0.0 + i * step;
    xray[i] = (float) x;
    for (j = 0; j < n; j++)
    { y = 0.0 + j * step;
      yray[j] = (float) y;
      zmat[i][j] = (float) ((x * x - 1.) * (x * x - 1.) + 
                            (y * y - 1.) * (y * y - 1.));
    }
  }

  setpag ("da4p");
  disini ();
  pagera ();
  hwfont ();

  mixalf ();
  titlin ("Shaded Contour Plot", 1);
  titlin ("F(X,Y) = (X[2$ - 1)[2$ + (Y[2$ - 1)[2$", 3);
  name   ("X-axis", "x");
  name   ("Y-axis", "y");

  shdmod ("poly", "contur");
  axspos (450, 2670);
  graf   (0.0f, 1.6f, 0.0f, 0.2f, 0.0f, 1.6f, 0.0f, 0.2f);

  for (i = 1; i <= 12; i++)
    zlev[12-i] = (float) (0.1 + (i - 1) * 0.1);

  conshd (xray, n, yray, n, (float *) zmat, zlev, 12);

  height (50);
  title  ();
  disfin ();
}
Exemple #24
0
/* >>>>>>>>>> EX10_3 <<<<<<<<<< */
void ex10_3 (void)
{ char cbuf[80];
  float x[5]  = {2., 4., 6., 8., 10.},
        y1[5] = {0., 0., 0., 0., 0.},
        y2[5] = {3.2, 1.5, 2.0, 1.0, 3.0};

  int ic1ray[5]  = {50, 150, 100, 200, 175},
      ic2ray[5]  = {50, 150, 100, 200, 175};

  setpag ("da4p");
  disini ();
  pagera ();
  hwfont ();

  titlin ("3-D Bar Graph / 3-D Pie Chart", 2);
  htitle (40);

  shdpat (16L);
  axslen (1500, 1000);
  axspos (300, 1400);

  barwth (0.5);
  bartyp ("3dvert");
  labels ("second", "bars");
  labpos ("outside", "bars");
  graf   (0., 12., 0., 2., 0., 5., 0., 1.);
  title  ();
  color  ("red");
  bars   (x, y1, y2, 5);
  endgrf ();

  shdpat (16L);
  labels ("data", "pie");
  chnpie ("none");
  pieclr (ic1ray, ic2ray, 5);
  pietyp ("3d");
  axspos (300, 2700);
  piegrf (cbuf, 0, y2, 5);       
  disfin ();
}
Exemple #25
0
/* >>>>>>>>>> EX13_4 <<<<<<<<<< */
void ex13_4 (void)
{ int n = 32, inray[32], icray[32], i;
  long ipray[32];

  for (i = 0; i < 32; i++)
  { inray[i] = i + 1;
    ipray[i] = 0;
    icray[i] = 1;
  }

  setpag ("da4p");
  disini ();
  setvlt ("small");
  pagera ();
  hwfont ();

  intax  ();
  ticks  (1, "xy");
  frame  (3);
  axslen (1600, 2200);
  axspos (400, 2700);

  name   ("Longitude", "x");
  name   ("Latitude", "y");
  titlin ("Conformal Conic Projection", 3);

  labels ("map", "xy");
  projct ("conf");
  grafmp (-10.f, 30.f, -10.f, 5.f, 35.f, 70.f, 35.f, 5.f);

  gridmp (1, 1);
  shdeur (inray, ipray, icray, n);

  height (50);
  title  ();
  disfin ();
}
Exemple #26
0
/* >>>>>>>>>> EXA_11 <<<<<<<<<< */
void exa_11 (void)
{ int n = 50 ,i, j;
  double fpi=3.1415927 / 180., step, x, y;

  step = 360. / (n - 1);
  for (i = 0; i < n; i++)
  { x = i * step;
    for (j = 0; j < n; j++)
    { y = j * step;
      zmat[i][j] = (float) (2 * sin (x * fpi) * sin (y * fpi));
    }
  }

  setpag ("da4p");
  disini ();
  pagera ();
  hwfont ();
  axspos (200, 2600);
  axslen (1800, 1800);

  name   ("X-axis", "x");
  name   ("Y-axis", "y");
  name   ("Z-axis", "z");

  titlin ("Surface Plot (SURMAT)", 2);
  titlin ("F(X,Y) = 2*SIN(X)*SIN(Y)", 4);

  view3d (-5.f, -5.f, 4.f, "abs");
  graf3d (0.f, 360.f, 0.f, 90.f, 0.f, 360.f, 0.f, 90.f,
          -3.f, 3.f, -3.f, 1.f);
  height (50);
  title  ();

  color  ("green");
  surmat ((float *) zmat, 50, 50, 1, 1);
  disfin ();
}
Exemple #27
0
/* >>>>>>>>>> EXA_3  <<<<<<<<<< */
void exa_3 (void)
{ int nl, ny, i, nxp = 0;
  static char ctit[] = "Symbols", cstr[3];

  setpag ("da4p");
  disini ();
  pagera ();
  color  ("yellow");
  hwfont ();

  height (60);

  nl = nlmess (ctit);
  messag (ctit, (2100 - nl) / 2, 200);

  height (50);
  hsymbl (120);

  ny = 150;

  for (i = 0; i < 24; i++)
  { if ((i % 4) == 0) 
    { ny  += 400;
      nxp  = 550;
    }
    else
    { nxp += 350;
    }

    sprintf (cstr, "%d", i); 
    nl = nlmess (cstr) / 2;
    messag (cstr, nxp - nl, ny + 150);
    symbol (i, nxp, ny);
  }
  disfin ();
}
int main ( int argc, char *argv[] )

/******************************************************************************/
/*
  Purpose:

    CIRCLE_INOUT uses DISLIN to draw points in and out of a circle.

  Licensing:

    This code is distributed under the GNU LGPL license.

  Modified:

    01 May 2011

  Author:

    John Burkardt

  Reference:

    Helmut Michels,
    The Data Plotting Software DISLIN - version 10.4,
    Shaker Media GmbH, January 2010,
    ISBN13: 978-3-86858-517-9.
*/
{
  int i;
  int j;
  int m;
  int n_circle = 100;
  int n_in;
  int n_out;
  int pat;
  float pi = 3.14159265;
  float r;
  float s;
  float t;
  float *x;
  float *xy_in;
  float *xy_out;
  float *y;

  printf ( "\n" );
  printf ( "CIRCLE_INOUT:\n" );
  printf ( "  C version\n" );
  printf ( "  Use DISLIN routines to make a scatterplot.\n" );
/*
  Read the data.
*/
  r4mat_header_read ( "circle_in.txt", &m, &n_in );

  xy_in = r4mat_data_read ( "circle_in.txt", m, n_in );

  r4mat_header_read ( "circle_out.txt", &m, &n_out );

  xy_out = r4mat_data_read ( "circle_out.txt", m, n_out );
/*
  Specify the format of the output file.
*/
  metafl ( "png" );
/*
  Indicate that new data overwrites old data.
*/
  filmod ( "delete" );
/*
  Specify the name of the output graphics file.
*/
  setfil ( "circle_inout.png" );
/*
  Choose the page size and orientation.
  'USA' is 2160 plot units wide and 2790 plot units high.
  'P' requests PROFILE rather than LANDSCAPE orientation.
*/
  setpag ( "usap" );
/*
  For PNG output, use reverse the default black background to white.
*/
  scrmod ( "reverse" );
/*
  Open DISLIN.
*/
  disini ( );
/*
  Plot a border around the page.
*/
  pagera ( );
/*
  Use the COMPLEX font.
*/
  complx ( );
/*
  Set the axis origin 230 plot units to the right, and 2560 plot units DOWN.
*/
  axspos ( 230, 2560 );
/*
  Define the X and Y sizes of the axis system in plot units.
*/
  axslen ( 1700, 1700 );
/*
  Label the X and Y axes.
*/
  name ( "<--- X --->", "X" );
  name ( "<--- Y --->", "Y" );
/*
  Relate the physical coordinates to the axes.
*/
  graf ( 0.0, 1.0, 0.0, 0.1, 0.0, 1.0, 0.0, 0.1 );
/*
  Define axis system titles.
*/
  titlin ( "Random points inside/outside the unit circle", 1 );
/*
  Draw the title.
*/
  title ( );
/*
  Add a grid, with one grid line for every tick mark in the X and Y axes.
*/
  grid ( 1, 1 );
/*
  Select the shading pattern.
*/
  pat = 16;
  shdpat ( pat );
/*
  Set the color to blue.
*/
  color ( "blue" );
/*
  At every data point, draw a circle of radius 0.01.
*/
  for ( i = 0; i < n_in; i++ )
  {
    rlcirc ( xy_in[0+i*2], xy_in[1+i*2], 0.01 );
  }
/*
  Set the color to red.
*/
  color ( "red" );
/*
  At every data point, draw a circle of radius 0.01.
*/
  for ( i = 0; i < n_out; i++ )
  {
    rlcirc ( xy_out[0+i*2], xy_out[1+i*2], 0.01 );
  }
/*
  Draw a red circle.
*/
  x = ( float * ) malloc ( n_circle * sizeof ( float ) );
  y = ( float * ) malloc ( n_circle * sizeof ( float ) );

  for ( i = 0; i < n_circle; i++ )
  {
    t = pi * ( float ) ( i ) / ( float ) ( n_circle - 1 );
    x[i] = cos ( t );
    y[i] = sin ( t );
  }
  thkcrv ( 10 );
  curve ( x, y, n_circle );
/*
  End this plot.
*/
  endgrf ( );
/*
  Free memory.
*/
  free ( x );
  free ( xy_in );
  free ( xy_out );
  free ( y );
/*
  Close DISLIN.
*/
  disfin ( );
/*
  Terminate.
*/
  printf ( "\n" );
  printf ( "CIRCLE_INOUT:\n" );
  printf ( "  Normal end of execution.\n" );

  return 0;
}
int main ( int argc, char *argv[] )

/******************************************************************************/
/*
  Purpose:

    MAIN demonstrates the use of bar graphs.

  Modified:
 
    09 April 2011

  Reference:

    Helmut Michels,
    The Data Plotting Software DISLIN - version 10.4,
    Shaker Media GmbH, January 2010,
    ISBN13: 978-3-86858-517-9.
*/
{
  static char cbuf[25];
  static char *ctit = "Bar Graphs (BARS)";
  int i;
  int nya = 2700;
  static float x[9]  = { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 };
  static float y[9]  = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
  static float y1[9] = { 1.0, 1.5, 2.5, 1.3, 2.0, 1.2, 0.7, 1.4, 1.1 };
  static float y2[9] = { 2.0, 2.7, 3.5, 2.1, 3.2, 1.9, 2.0, 2.3, 1.8 };
  static float y3[9] = { 4.0, 3.5, 4.5, 3.7, 4.0, 2.9, 3.0, 3.2, 2.6 };

  printf ( "\n" );
  printf ( "DISLIN_EX05:\n" );
  printf ( "  C version:\n" );
  printf ( "  Demonstrate the display of data in bar graphs.\n" );
/*
  Specify the format of the output file.
*/
  metafl ( "png" );
/*
  Specify that if a file already exists of the given name,
  the new data should overwrite the old.
*/
  filmod ( "delete" );
/*
  Specify the name of the output graphics file.
*/
  setfil ( "dislin_ex05.png" );
/*
  Choose the page size and orientation.
*/
  setpag ( "usap" );
/*
  For PNG output, reverse the default black background to white.
*/
  scrmod ( "reverse" );
/*
  Open DISLIN.
*/
  disini ( );
/*
  Plot a border around the page.
*/
  pagera ( );
/*
  Use the COMPLEX font.
*/
  complx ( );
  ticks ( 1, "x" );
  intax ( );
  axslen ( 1600, 700 );
  titlin ( ctit, 3 );

  legini ( cbuf, 3, 8 );
  leglin ( cbuf, "FIRST", 1 );
  leglin ( cbuf, "SECOND", 2 );
  leglin ( cbuf, "THIRD", 3 );
  legtit ( " " );
  shdpat ( 5L );

  for ( i = 1; i <= 3; i++ )
  {
     if ( 1 < i )
     {
       labels ( "none", "x" );
     }
    axspos ( 300, nya-(i-1)*800 );

    graf ( 0.0, 10.0, 0.0, 1.0, 0.0, 5.0, 0.0, 1.0 );

    if ( i == 1 )
    {
      bargrp ( 3, 0.15 );
      color ( "red" );
      bars ( x, y, y1, 9 );
      color ( "green" );
      bars ( x, y, y2, 9 );
      color ( "blue" );
      bars ( x, y, y3, 9 );
      color ( "fore" );
      reset ( "bargrp" );
    }
    else if ( i == 2 )
    {
      height ( 30 );
      labels ( "delta", "bars" );
      labpos ( "center", "bars" );
      color ( "red" );
      bars ( x, y, y1, 9 );
      color ( "green" );
      bars ( x, y1, y2, 9 );
      color ( "blue" );
      bars ( x, y2, y3, 9 );
      color ( "fore" );
      reset ( "height" ); 
    }
    else if ( i == 3 )
    {
      labels ( "second", "bars" );
      labpos ( "outside", "bars" );
      color ( "red" );
      bars ( x, y, y1, 9 );
      color ( "fore" );
    }

    if ( i < 3 )
    {
      legend ( cbuf, 7 );
    }
    else
    {
      height ( 50 );
      title ( );
    }

    endgrf ( );
  }
/*
  Close DISLIN.
*/
  disfin ( );
/*
  Terminate.
*/
  printf ( "\n" );
  printf ( "DISLIN_EX05:\n" );
  printf ( "  Normal end of execution.\n" );

  return 0;
}
Exemple #30
0
int main ( int argc, char *argv[] )

/******************************************************************************/
/*
  Purpose:

    ORBITAL uses DISLIN to display a contour plot of Z(X,Y) data.

  Licensing:

    This code is distributed under the GNU LGPL license. 

  Modified:

    20 May 2011

  Author:

    John Burkardt

  Reference:

    Helmut Michels,
    The Data Plotting Software DISLIN - version 10.4,
    Shaker Media GmbH, January 2010,
    ISBN13: 978-3-86858-517-9.
*/
{
  int i;
  int j;
  int k;
  int level;
  int level_num;
  float level_value;
  int m;
  int n;
  int nn;
  float *x;
  float xmax;
  float xmin;
  float *xyz;
  float *y;
  float ymax;
  float ymin;
  float *z;
  float zmax;
  float zmin;

  printf ( "\n" );
  printf ( "ORBITAL:\n" );
  printf ( "  C version:\n" );
  printf ( "  Use DISLIN to make a contour plot of Z(X,Y) data.\n" );
/*
  Read the data.
*/
  r4mat_header_read ( "orbital.txt", &m, &nn );

  xyz = r4mat_data_read ( "orbital.txt", m, nn );
/*
  Split the data.
  The contouring routine expects that data is along fixed X and Y coordinates,
  and so the X and Y data is to be given as vectors, not arrays.
*/
  n = 101;
  x = ( float * ) malloc ( n * sizeof ( float ) );
  y = ( float * ) malloc ( n * sizeof ( float ) );
  z = ( float * ) malloc ( n * n * sizeof ( float ) );

  k = 0;
  for ( i = 0; i < n; i++ )
  {
    x[i] = xyz[0+k*3];
    k = k + 1;
  }
  xmin = r4vec_min ( n, x );
  xmax = r4vec_max ( n, x );

  k = 0;
  for ( i = 0; i < n; i++ )
  {
    y[i] = xyz[1+k*3];
    k = k + n;
  }
  ymin = r4vec_min ( n, y );
  ymax = r4vec_max ( n, y );
/*
  Z is a table.
  The first dimension should contain values for constant Y.
*/
  k = 0;
  for ( i = 0; i < n; i++ )
  {
    for ( j = 0; j < n; j++ )
    {
      z[i+j*n] = xyz[2+k*3];
      k = k + 1;
    }
  }
  zmax = r4mat_max ( n, n, z );
  zmin = r4mat_min ( n, n, z );
/*
  Specify the format of the output file.
*/
  metafl ( "png" );
/*
  Indicate that new data overwrites old data.
*/
  filmod ( "delete" );
/*
  Specify the name of the output graphics file.
*/
  setfil ( "orbital.png" );
/*
  Choose the page size and orientation.
  'USA' is 2160 plot units wide and 2790 plot units high.
  'P' requests PORTRAIT orientation.
*/
  setpag ( "usap" );
/*
  For PNG output, reverse the default black background to white.
*/
  scrmod ( "reverse" );
/*
  Open DISLIN.
*/
  disini ( );
/*
  Plot a border around the page.
*/
  pagera ( );
/*
  Use the SIMPLX font.
*/
  simplx ( );
/*
  Set the axis origin in plot units to the right, and plot units DOWN.
*/
  axspos ( 230, 2500 );
/*
  Define the X and Y sizes of the axis system in plot units.
*/
  axslen ( 1700, 1700 );
/*
  Label the X and Y axes.
*/
  name ( "X axis", "X" );
  name ( "Y axis", "Y" );
/*
  Relate the physical coordinates to the axes, and specify tick marks.
*/
  graf ( xmin, xmax, xmin, 1.0, ymin, ymax, ymin, 1.0 );
/*
  BEGIN LEVEL 2 COMMANDS.
*/

/*
  Define the title.
*/
  titlin ( "Orbital contour plot", 1 );
  title ( );
/*
  Set color to "blue".
*/
  color ( "blue" );
/*
  Draw the contour plot.
*/
  level_num = 10;

  for ( level = 1; level <= level_num; level++ )
  {
    level_value = ( ( float ) ( level_num + 1 - level ) * zmin   
                  + ( float ) (                 level ) * zmax ) 
                  / ( float ) ( level_num + 1         );

    contur ( x, n, y, n, z, level_value );
  }
/*
  End this graph.
*/
  endgrf ( );
/*
  RETURN FROM LEVEL 2 TO LEVEL 1.
*/

/*
  Close DISLIN.
*/
  disfin ( );
/*
  Free memory.
*/
  free ( x );
  free ( xyz );
  free ( y );
  free ( z );
/*
  Terminate.
*/
  printf ( "\n" );
  printf ( "ORBITAL:\n" );
  printf ( "  Normal end of execution.\n" );

  return 0;
}