home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / COMAL3-1.DMS / in.adf / Demos / GraphDemo < prev    next >
Encoding:
Text File  |  1993-04-17  |  1.9 KB  |  110 lines

  1. USE GRAPHICS
  2.  
  3. graphmode:=0
  4.  
  5. PROC firkant(l,g)
  6.   a:=l*COS(g/180*PI); b:=l*SIN(g/180*PI)
  7.   draw(a,b)
  8.   draw(-b,a)
  9.   draw(-a,-b)
  10.   draw(b,-a)
  11. ENDPROC firkant
  12.  
  13. PROC graf(f OF Fnc,xmin,xmax,ymin,ymax)
  14.   LOCAL x
  15.   window(xmin,xmax,ymin,ymax)
  16.   pencolor(2)
  17.   moveto(xmin,0)
  18.   drawto(xmax,0)
  19.   moveto(0,ymin)
  20.   drawto(0,ymax)
  21.   moveto(xmin,f(xmin))
  22.   pencolor(2)
  23.   FOR x:=xmin TO xmax STEP 0.05 DO drawto(x,f(x))
  24.   pencolor(1)
  25. ENDPROC graf
  26.  
  27. FUNC f(x)
  28.   RETURN x/(1+x*x)
  29. ENDFUNC f
  30.  
  31. FUNC g(x)
  32.   RETURN (x*x-6*x)/(x*x+2*x+2)
  33. ENDFUNC g
  34.  
  35. PROC ramme(v,h,u,o)
  36.   window(xmin,xmax,ymin,ymax)
  37.   viewport(v,h,u,o)
  38.   clear
  39.   pencolor(2)
  40.   moveto(xmin,ymin)
  41.   drawto(xmax,ymin)
  42.   drawto(xmax,ymax)
  43.   drawto(xmin,ymax)
  44.   drawto(xmin,ymin)
  45.   pencolor(1)
  46.   viewport(v+5,h-5,u+5,o-5)
  47. ENDPROC ramme
  48.  
  49. PROC roset
  50.   window(0,1,0,1)
  51.   moveto(0.5,0.5)
  52.   FOR i:=0 TO 360 STEP 10 DO firkant(0.3,i)
  53. ENDPROC roset
  54.  
  55. graphicscreen(graphmode)
  56.  
  57. MaxY:=height-1; MaxX:=width-1
  58. xmin:=0; xmax:=1; ymin:=0; ymax:=1
  59.  
  60. clear
  61. background(1);ramme(50,0.75*MaxX,5,0.65*MaxY);background(0)
  62. graf(f(),-9,9,-1,1)
  63. WAIT 4
  64.  
  65. viewport(0,MaxX,0,MaxY)
  66. clear
  67. background(3);ramme(50,0.75*MaxX,5,0.65*MaxY);background(0)
  68. graf(g(),-10,7,-2,12)
  69. WAIT 5
  70.  
  71. viewport(0,MaxX,0,MaxY)
  72. clear
  73. background(7);ramme(5,0.5*MaxX,5,0.65*MaxY);background(0)
  74. graf(g(),-10,7,-2,12)
  75. background(13);ramme(0.55*MaxX,0.9*MaxX,5,0.45*MaxY);background(0)
  76. graf(f(),-7,7,-1,1)
  77. WAIT 5
  78.  
  79. viewport(0,MaxX,0,MaxY)
  80. clear
  81. background(11);ramme(5,0.45*MaxX,5,0.65*MaxY);background(0)
  82. pencolor(2)
  83. roset
  84. pencolor(1)
  85. WAIT 4
  86.  
  87. background(4);ramme(0.48*MaxX,0.77*MaxX,5,0.42*MaxY);background(0)
  88. pencolor(1)
  89. roset
  90. pencolor(1)
  91. WAIT 3
  92.  
  93. background(9);ramme(0.80*MaxX,MaxX-1,5,0.32*MaxY);background(0)
  94. pencolor(3)
  95. roset
  96. pencolor(1)
  97. WAIT 5
  98.  
  99. background(15);ramme(0.4*MaxX,0.9*MaxX,0.2*MaxY,0.75*MaxY);background(0)
  100. graf(g(),-10,7,-2,12)
  101. WAIT 5
  102.  
  103. background(13);ramme(20,0.5*MaxX,15,0.5*MaxY);background(0)
  104. graf(f(),-7,7,-0.7,0.7)
  105.  
  106. WHILE KEY$="" DO WAIT
  107. textscreen
  108.  
  109. TYPE Fnc=FUNC(FLOAT) OF FLOAT
  110.