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

GIS编程

开发平台:

Visual C++

  1. /* 
  2.  * helicoid (gernalized torus) demo 
  3.  *
  4.  * FUNCTION:
  5.  * This code provides a very simple example of the helicoid primitive.
  6.  * Most of this code is required to set up OpenGL and GLUT, and very
  7.  * very little to set up the helix drawer. Don't blink!
  8.  *
  9.  * HISTORY:
  10.  * Written by Linas Vepstas, March 1995
  11.  */
  12. /* required include files */
  13. #include <GL/glut.h>
  14. #include <GL/tube.h>
  15. /*  most recent mouse postion */
  16. extern float lastx;
  17. extern float lasty;
  18. void InitStuff (void) {
  19.    lastx = 121.0;
  20.    lasty = 121.0;
  21. }
  22. /* draw the helix shape */
  23. void DrawStuff (void) {
  24.    glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  25.    glColor3f (0.6, 0.8, 0.3);
  26.    /* set up some matrices so that the object spins with the mouse */
  27.    glPushMatrix ();
  28.    glTranslatef (0.0, 0.0, -80.0);
  29.    glRotatef (lastx, 0.0, 1.0, 0.0);
  30.    glRotatef (lasty, 1.0, 0.0, 0.0);
  31.    /* Phew. FINALLY, Draw the helix  -- */
  32.    gleSetJoinStyle (TUBE_NORM_EDGE | TUBE_JN_ANGLE | TUBE_JN_CAP);
  33.    gleHelicoid (1.0, 6.0, 2.0, -3.0, 4.0, 0x0, 0x0, 0.0, 1080.0);
  34.    glPopMatrix ();
  35.    glutSwapBuffers ();
  36. }
  37. /* ------------------------- end of file ----------------- */