home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / progm / pcgraphc.zip / LB_DEMO.C < prev    next >
C/C++ Source or Header  |  1988-12-26  |  3KB  |  133 lines

  1. #include <stdio.h>
  2. #include "graph.h"
  3. #include <math.h>
  4. int mark (double, double, int, char *);
  5.  
  6. main()
  7.     {
  8.     int mode;
  9.     double re, im, a, x, y, xt, d_to_r;
  10.     char *idx;
  11.     mode = CGA_320x200;        /* 320x200, 4 color */
  12.     g_init (mode);            /* select graphics mode: default pen = 1, lable origin = 1 */
  13.     frame ();            /* frame hard clip limit */
  14.  
  15.     scale (0, 100, 0, 100);
  16.     move (50,100);
  17.     lorg (6);
  18.     labelf ("Labeling and Label Origins");
  19.     csize (3,0,0);
  20.     mark (5,5,1,"lorg (1)");
  21.     mark (5,15,2,"lorg (2)");
  22.     mark (5,25,3,"lorg (3)");
  23.     mark (40,5,4,"lorg (4)");
  24.     mark (40,15,5,"lorg (5)");
  25.     mark (40,25,6,"lorg (6)");
  26.     mark (85,5,7,"lorg (7)");
  27.     mark (85,15,8,"lorg (8)");
  28.     mark (85,25,9,"lorg (9)");
  29.  
  30.     lorg (1);
  31.     move (5,85);
  32.     csize (2,0,0);
  33.     labelf ("c");
  34.     csize (3,0,0);
  35.     move (7,84.5);
  36.     labelf ("s");
  37.     csize (4,0,0);
  38.     move (9,84);
  39.     labelf ("i");
  40.     csize (5,0,0);
  41.     move (11.5,83.5);
  42.     labelf ("z");
  43.     csize (6,0,0);
  44.     move (15,83);
  45.     labelf ("e");
  46.     move (5,80);
  47.     csize (3,0,0);
  48.     labelf ("change size");
  49.  
  50.     move (75,85);
  51.     csize (3,0,-15);
  52.     labelf ("t");
  53.     csize (3,0,-10);
  54.     labelf ("i");
  55.     csize (3,0,-5);
  56.     labelf ("l");
  57.     csize (3,0,0);
  58.     labelf ("t");
  59.     csize (3,0,5);
  60.     labelf ("i");
  61.     csize (3,0,10);
  62.     labelf ("n");
  63.     csize (3,0,15);
  64.     labelf ("g");
  65.     csize (3,0,0);
  66.     move (95,82);
  67.     lorg (8);
  68.     labelf ("Add tilt");
  69.  
  70.     lorg (1);
  71.     move (80,70);
  72.     csize (3.5,0,0);
  73.     labelf ("0.2 ");
  74.     csize (3.5,.2,0);
  75.     labelf ("A");
  76.     move (80,65);
  77.     csize (3.5,0,0);
  78.     labelf ("0.4 ");
  79.     csize (3.5,.4,0);
  80.     labelf ("A");
  81.     move (80,60);
  82.     csize (3.5,0,0);
  83.     labelf ("0.6 ");
  84.     csize (3.5,.6,0);
  85.     labelf ("A");
  86.     move (80,55);
  87.     csize (3.5,0,0);
  88.     labelf ("0.8 ");
  89.     csize (3.5,.8,0);
  90.     labelf ("A");
  91.     move (80,50);
  92.     csize (3.5,0,0);
  93.     labelf ("1.0 ");
  94.     csize (3.5,1.0,0);
  95.     labelf ("A");
  96.     csize (3,0,0);
  97.     move (80,45);
  98.     labelf ("aspect\nratio");
  99.  
  100.     csize (3,0,0);
  101.     d_to_r = 3.1415926 / 180;
  102.     re = cos (-10 * d_to_r);
  103.     im = sin (-10 * d_to_r);
  104.     x = -20 * cos (40 * d_to_r);
  105.     y = -20 * sin (40 * d_to_r);
  106.     move (50 + x, 50 + y);
  107.     idx = "Creative labeling in action             ";
  108.     lorg (4);
  109.     unclip ();
  110.     for (a = 0; a >= -360.0; a -= 10)
  111.         {
  112.         ldir (130 + a);
  113.         move (50 + x, 50 + y);
  114.         labelf ("%c", *idx);
  115.         ++idx;
  116.         xt = x;
  117.         x = x * re - y * im;
  118.         y = y * re + xt * im;
  119.         }
  120.     exit(0);
  121.     }
  122.  
  123. int mark (x, y, org, text) double x, y; int org; char * text;
  124.     {
  125.     move (x-1, y);
  126.     draw (x+1, y);
  127.     move (x, y-1);
  128.     draw (x, y+1);
  129.     move (x,y);
  130.     lorg (org);
  131.     labelf ("%s",text);
  132.     return;
  133.     }