home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 24 DOS / 24-DOS.zip / dosrx10b.zip / 3DPLOT.R next >
Text File  |  1988-04-10  |  582b  |  33 lines

  1. /*
  2.  * Display 3d functions.
  3.  */
  4. f.1 = '30 * exp(-z*z/100)'
  5. f.2 = 'sqrt(900.01-z*z)*.9-2'
  6. f.3 = '30*cos(z/16)-2'
  7. f.4 = '30-30*sin(z/18)'
  8. f.5 = '30*exp(-cos(z/16))-30'
  9. f.6 = '30*sin(z/10)'
  10.  
  11. arg f .
  12. if datatype(f)^='NUM' then f = 1
  13.  
  14. say
  15. do x=-30 to 30 by 1.5
  16.    line = ''
  17.    l = 0
  18.    y1 = 5 * trunc(sqrt(900 - x*x) / 5 )
  19.    do y=y1 to -y1 by -5
  20.       z = trunc(25+ fn(sqrt(x*x+y*y)) - 0.7*y)
  21.       if z<=l then iterate
  22.       l = z
  23.       line = overlay('*',line,z)
  24.    end
  25.    say line
  26. end
  27. exit
  28.  
  29. fn: procedure expose f. f
  30. arg z
  31. interpret 'r=' f.f
  32. return r
  33.