home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / magazi~1 / 226 / analog.49 / vdidemo.c < prev    next >
Encoding:
C/C++ Source or Header  |  1986-10-14  |  4.3 KB  |  221 lines

  1. /*****************************************/
  2. /*         C-MANSHIP, ST-LOG #9          */
  3. /*              LISTING 1                */
  4. /*       DEVELOPED WITH MEGAMAX-C        */
  5. /*****************************************/
  6. #include <osbind.h>
  7.  
  8. int work_in[11], work_out[57];
  9. int handle;
  10. int contrl[12], intin[128];
  11. int ptsin[128], intout[128], ptsout[128];
  12. int gr_hwchar, gr_hhchar, gr_hwbox, gr_hhbox;
  13.  
  14. main()
  15. {
  16.   appl_init();
  17.   open_vwork();
  18.   do_pline();
  19.   do_roundrec();
  20.   do_froundrec();
  21.   do_circle();
  22.   do_pmarker();
  23.   do_bar();
  24.   do_ellipse();
  25.   do_arc();
  26.   do_pieslice();
  27.   do_fills();
  28.   v_clsvwk(handle);
  29.   appl_exit();
  30. }
  31.  
  32. open_vwork()
  33. {
  34.   int i;
  35.  
  36.   for (i=0; i<10; work_in[i++] = 1);
  37.   work_in[2] = 2;
  38.   handle = graf_handle(&gr_hwchar,&gr_hhchar,&gr_hwbox,&gr_hhbox);
  39.   v_opnvwk(work_in, &handle, work_out);
  40. }
  41.  
  42. do_pline()
  43. {
  44.   int pxy[4];
  45.   int color, end, type, width;
  46.  
  47.   pxy[0] = 30;   pxy[1] = 20;
  48.   pxy[2] = 280;  pxy[3] = 20;
  49.   end = 0; width = 1; 
  50.   v_clrwk(handle);
  51.   for (color=1; color<5; ++color) {
  52.     vsl_color(handle,color);
  53.     vsl_ends(handle,end,end);
  54.     vsl_width(handle,width);
  55.     v_pline(handle,2,pxy);
  56.     pxy[1] += 10;  pxy[3] += 10;
  57.     end += 1; width += 2;
  58.   }
  59.   vsl_width(handle,1);
  60.   vsl_ends(handle,0,0);
  61.   vsl_color(handle,1);
  62.   for (type=1; type<7; ++type) {
  63.     vsl_type(handle,type);
  64.     pxy[1] += 10; pxy[3] += 10;
  65.     v_pline(handle,2,pxy);
  66.   }
  67.   Cconin();
  68. }
  69.  
  70. do_roundrec()
  71. {
  72.   int pxy[4];
  73.   int color, width;
  74.  
  75.   pxy[0] = 10;   pxy[1] = 10;
  76.   pxy[2] = 300;  pxy[3] = 190;
  77.   width = 1;
  78.   v_clrwk(handle);
  79.   vsl_type(handle,1);
  80.   for (color=1; color<7; ++color) {
  81.     vsl_width(handle,width);
  82.     vsl_color(handle,color);
  83.     v_rbox(handle,pxy);
  84.     width += 2;
  85.     pxy[0] += 20;  pxy[1] += 20;
  86.     pxy[2] -= 10;  pxy[3] -= 10;
  87.   }
  88.   Cconin();
  89. }
  90.  
  91. do_froundrec()
  92. {
  93.   int pxy[4];
  94.   int color;
  95.  
  96.   pxy[0] = 10;   pxy[1] = 10;
  97.   pxy[2] = 300;  pxy[3] = 190;
  98.   v_clrwk(handle);
  99.   for (color=1; color<7; ++color) {
  100.     vsf_color(handle,color);
  101.     v_rfbox(handle,pxy);
  102.     pxy[0] += 20;  pxy[1] += 20;
  103.     pxy[2] -= 10;  pxy[3] -= 10;
  104.   }
  105.   Cconin();
  106. }
  107.  
  108. do_circle()
  109. {
  110.   int color, radius;
  111.  
  112.   v_clrwk(handle);
  113.   radius = 100;
  114.   for (color=1; color<8; ++color) {
  115.     vsf_color(handle,color);
  116.     v_circle(handle,150,100,radius);
  117.     radius -= 15;
  118.   }
  119.   Cconin();
  120. }
  121.  
  122. do_pmarker()
  123. {
  124.   int color, height, type;
  125.   int pxy[2];
  126.  
  127.   v_clrwk(handle);
  128.   pxy[1] = 10;
  129.   for (type=1; type<7; ++type) {
  130.     vsm_type(handle,type);
  131.     height = 2;  pxy[0] = 10;
  132.     for (color=1; color<6; ++color) {
  133.       vsm_color(handle,color);
  134.       vsm_height(handle,height);
  135.       v_pmarker(handle,1,pxy);
  136.       height += 16;  pxy[0] += 60;
  137.     }
  138.     pxy[1] += 35;
  139.   }
  140.   Cconin();
  141. }
  142.     
  143. do_bar()
  144. {
  145.   int pxy[4], color;
  146.  
  147.   pxy[0] = 10;  pxy[1] = 190;
  148.   pxy[2] = 300;  pxy[3] = 10;
  149.   v_clrwk(handle);
  150.   for (color=1; color<6; ++color) {
  151.     vsf_color(handle,color);
  152.     v_bar(handle,pxy);
  153.     pxy[0] += 25;  pxy[1] -= 20;
  154.     pxy[2] -= 20;  pxy[3] += 10;
  155.   }
  156.   Cconin();
  157. }
  158.  
  159. do_ellipse()
  160. {
  161.   int color, xradius, yradius;
  162.  
  163.   v_clrwk(handle);
  164.   xradius = 150;  yradius = 100;
  165.   for (color=1; color<11; ++color) {
  166.     vsf_color(handle,color);
  167.     v_ellipse(handle,150,100,xradius,yradius);
  168.     xradius -= 15;
  169.   }
  170.   Cconin();
  171. }
  172.  
  173. do_arc()
  174. {
  175.   int color, radius, bang, eang;
  176.  
  177.   v_clrwk(handle);
  178.   vsl_width(handle,3);
  179.   bang = 900; eang = 0; radius = 10;
  180.   for (color=1; color<6; ++color) {
  181.     vsl_color(handle,color);
  182.     v_arc(handle,150,100,radius,bang,eang);
  183.     bang += 60; eang -= 60; radius += 20;
  184.   }
  185.   Cconin();
  186. }
  187.  
  188. do_pieslice()
  189. {
  190.   int color, radius, bang, eang;
  191.  
  192.   v_clrwk(handle);
  193.   radius = 100; bang = 3200; eang = 600;
  194.   for (color=1; color<6; ++color) {
  195.     vsf_color(handle,color);
  196.     v_pieslice(handle,150,100,radius,bang,eang);
  197.     radius -= 15; bang -=200; eang -= 100;
  198.   }
  199.   Cconin();
  200. }
  201.  
  202. do_fills()
  203. {
  204.   int pxy[4], style, i, num, x;
  205.  
  206.   pxy[0] = 50; pxy[1] = 30;
  207.   pxy[2] = 250; pxy[3] = 170; num = 25;
  208.   for (i=2; i<4; ++i) {
  209.     vsf_color(handle,i);
  210.     vsf_interior(handle,i);
  211.     for (style=1; style<num; ++style) {
  212.       vsf_style(handle,style);
  213.       v_clrwk(handle);
  214.       v_bar(handle,pxy);
  215.       for (x=0; x<32000; ++x);
  216.     }
  217.     num = 13;
  218.   }
  219.   Cconin();
  220. }
  221.