sphere.f
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:2k
源码类别:

GIS编程

开发平台:

Visual C++

  1. C  Copyright (c) Mark J. Kilgard, 1994.
  2. C  This program is freely distributable without licensing fees
  3. C  and is provided without guarantee or warrantee expressed or
  4. C  implied.  This program is -not- in the public domain.
  5. C  GLUT Fortran program to draw red light sphere.
  6. subroutine display
  7. #include "GL/fgl.h"
  8. call fglclear(GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT)
  9. call fglcalllist(1)
  10. call glutswapbuffers
  11. end
  12. subroutine gfxinit
  13. #include "GL/fgl.h"
  14. real diffuse(4),pos(4)
  15. data diffuse /1.0, 0.0, 0.0, 1.0/
  16. data pos /1.0, 1.0, 1.0, 0.0/
  17. call fglnewlist(1, GL_COMPILE)
  18. call glutsolidsphere(dble(1.0), 20, 20)
  19. call fglendlist
  20. call fgllightfv(GL_LIGHT0, GL_DIFFUSE, diffuse)
  21. call fgllightfv(GL_LIGHT0, GL_POSITION, pos)
  22. call fglenable(GL_LIGHTING)
  23. call fglenable(GL_LIGHT0)
  24. call fglenable(GL_DEPTH_TEST)
  25. call fglmatrixmode(GL_PROJECTION)
  26. call fgluperspective(dble(40.0), dble(1.0),
  27.      2                       dble(1.0), dble(10.0))
  28. call fglmatrixmode(GL_MODELVIEW)
  29. call fglulookat(dble(0.0), dble(0.0), dble(5.0),
  30.      2                  dble(0.0), dble(0.0), dble(0.0),
  31.      3                  dble(0.0), dble(1.0), dble(1.0))
  32. call fgltranslatef(0.0, 0.0, -1.0)
  33. end
  34. program main
  35. #include "GL/fglut.h"
  36. external display
  37. external reshape
  38. external submenu
  39. external mainmenu
  40. integer win
  41. call glutinit
  42. call glutinitdisplaymode(GLUT_DOUBLE+GLUT_RGB+GLUT_DEPTH)
  43. win =  glutcreatewindow('Fortran GLUT sphere')
  44. call gfxinit
  45. call glutdisplayfunc(display)
  46. call glutmainloop
  47. end