1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
/*
* helicoid (gernalized torus) demo
*
* FUNCTION:
* This code provides a very simple example of the helicoid primitive.
* Most of this code is required to set up OpenGL and GLUT, and very
* very little to set up the helix drawer. Don't blink!
*
* =======> MOUSE HOOKED UP TO AFFINE < ========
*
* HISTORY:
* Written by Linas Vepstas, March 1995
*/
#include "extrusion.h"
/* controls shape of object */
extern float lastx;
extern float lasty;
void InitStuff_helix4 (void)
{
}
/* draw the helix shape */
void DrawStuff_helix4 (void)
{
double affine[2][3];
double delta_affine[2][3];
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f (0.7, 0.5, 0.3);
/* set up some matrices so that the object spins with the mouse */
glPushMatrix ();
/* glTranslatef (0.0, 0.0, -80.0); */
/* glRotatef (220.0, 0.0, 1.0, 0.0); */
/* glRotatef (65.0, 1.0, 0.0, 0.0); */
/* Phew. FINALLY, Draw the helix -- */
affine [0][0] = 1.0/ (0.01*lastx);
affine [1][0] = 0.0;
affine [0][1] = 0.0;
affine [1][1] = 0.01*lastx;
affine [0][2] = 0.0;
affine [1][2] = 0.0;
delta_affine [0][0] = 0.0;
delta_affine [1][0] = 0.03*lasty;
delta_affine [0][1] = -0.03*lasty;
delta_affine [1][1] = 0.0;
delta_affine [0][2] = 0.0;
delta_affine [1][2] = 0.0;
gleSetJoinStyle (TUBE_NORM_EDGE | TUBE_JN_ANGLE | TUBE_JN_CAP);
gleHelicoid (1.0, 7.0, -1.0,
-4.0, 6.0, affine, delta_affine, 0.0, 980.0);
glPopMatrix ();
}
/* ------------------------- end of file ----------------- */
|