home *** CD-ROM | disk | FTP | other *** search
/ back2roots/padua / padua.7z / padua / lang / sgl.lzh / EXAMPLES / EX2.C < prev    next >
Encoding:
C/C++ Source or Header  |  1988-10-11  |  2.4 KB  |  85 lines

  1. #include "gfunc.h"
  2. #include <stdio.h>
  3. #include <math.h>
  4.  
  5. void main()
  6.  
  7. {
  8.  int err0,err1,i;
  9.  double x0,step,x[100],y[100];
  10.  
  11. /*********************************************
  12.  *Zeichnen der Funktion y = 1/(sqr(1-v^2/c^2))
  13.  *********************************************/
  14.  
  15.  step = 1.0/100.05;
  16.  x0   = step;
  17.  for (i=0;i<100;i++)                          /* Stⁿtzpunkte berechnen */
  18.  {
  19.   x[i] = x0;
  20.   y[i] = 1.0/(sqrt(1.0-x0*x0));
  21.   x0  += step;
  22.  }
  23.  
  24.  
  25.  err0 = initialize(0,0);                     /* Initialisierung        */
  26.  if (err0 == 0)
  27.  {
  28.   frame(300.0,210.0);                        /* Rahmen definieren      */
  29.   picture(200.0,140.0,40.0,30.0);            /* Bildbereich definieren */
  30.   err1 = mkwind();                           /* Fenster ÷ffnen         */
  31.   if (err1 != 0) exit(-1);
  32.   region(step,1.0,1.0,100.0);                /* Wertebereich festlegen */
  33.  
  34. /* Nach Aufruf von region ist das Koordinatensystem "region" eingestellt */
  35.  
  36. /*************************************************************************
  37.  Fⁿr die x-Achse wird ein linearer Ma▀stab gewΣhlt.
  38.  Es wird eine Achse unten und oben gezeichnet. Ticks werden bei
  39.  -1.0, -0.5, 0.0, 0.5, 1.0 gezeichnet und unten beschriftet. Kleinere
  40.  Ticks werden oben und unten im Abstand von 0.25 ohne Beschriftung ge-
  41.  zeichnet. y-Achse logarithmisch, Dekaden beschriftet
  42. **************************************************************************/
  43.  
  44.   linax("XL",1,3.0,0.1,1);
  45.   linax("XU",-1,3.0,0.1,0);
  46.   linax("XL",1,2.0,0.05,0);
  47.   linax("XU",-1,2.0,0.05,0);
  48.   logax("YL",1,3.0,1,1);
  49.   logax("YU",-1,3.0,1,0);
  50.   logax("YL",1,1.5,10,0);
  51.  
  52. /* Kurve interpolieren und mit Stift 1 zeichnen */
  53.  
  54.   srcurve(100,x,y);
  55.     
  56. /* Texte schreiben */
  57.  
  58.   setpen(8);
  59.   setmode("PIC");             /* Koordinatensystem "picture" anwΣhlen */
  60.   setfont("ruby.font",15);
  61.   htext(100.0,150.0,"MB","Beispiel 2: Massenformel");
  62.   setpen(5);
  63.   setmode("PIC");
  64.   setfont("topaz.font",8);
  65.   htext(100.0,-20.0,"LB","v/c");
  66.   htext(-20.0,70.0,"RM","m");
  67.   htext(70.0,80.0,"MB","m = m");
  68.   setmode("REF");
  69.   htext(0.0,-2.0,"LB","░");
  70.   setfont("ruby.font",15);
  71.   htext(0.0,0.5,"LB","(");
  72.   setfont("topaz.font",8);
  73.   htext(0.0,1.0,"LB","1-v");
  74.   htext(0.0,2.0,"LB","2");
  75.   htext(0.0,-2.0,"LB","/c");
  76.   htext(0.0,2.0,"LB","2");
  77.   setfont("ruby.font",15);
  78.   htext(0.0,-3.0,"LB",")");
  79.   setfont("topaz.font",8);
  80.   htext(0.0,4.0,"LB","-1/2");  
  81.   finish();  /* !!WICHTIG!! */
  82.  }
  83.  else printf("initialize failed with error number %d\n",err0);
  84. }
  85.