helix3.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.  * =======> MOUSE HOOKED UP TO SWEEP, HEIGHT < ========
  10.  *
  11.  * HISTORY:
  12.  * Written by Linas Vepstas, March 1995
  13.  */
  14. /* required include files */
  15. #include <GL/glut.h>
  16. #include <GL/tube.h>
  17. /*  most recent mouse postion */
  18. extern float lastx;
  19. extern float lasty;
  20. void InitStuff (void) {
  21.    lastx = 121.0;
  22.    lasty = 121.0;
  23. }
  24. /* draw the helix shape */
  25. void DrawStuff (void) {
  26.    glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  27.    glColor3f (0.8, 0.3, 0.6);
  28.    /* set up some matrices so that the object spins with the mouse */
  29.    glPushMatrix ();
  30.    glTranslatef (0.0, 0.0, -80.0);
  31.    glRotatef (220.0, 0.0, 1.0, 0.0);
  32.    glRotatef (65.0, 1.0, 0.0, 0.0);
  33.    /* Phew. FINALLY, Draw the helix  -- */
  34.    gleSetJoinStyle (TUBE_NORM_EDGE | TUBE_JN_ANGLE | TUBE_JN_CAP);
  35.    gleHelicoid (1.0, 6.0, -1.0, 
  36.                0.0, (0.02*lasty-2.0), 0x0, 0x0, 0.0, 6.0*lastx);
  37.    glPopMatrix ();
  38.    glutSwapBuffers ();
  39. }
  40. /* ------------------------- end of file ----------------- */