Display a Lissajous Figure using OpenGL

LISSAJOUS_OPENGL is a C++ program which computes a Lissajous figure based on user input, and uses OpenGL to display it.

The user specifies information about the number of points, and the form of the two sine curves involved. Depending on these parameters, the resulting shape may or may not be a closed curve. The user also specifies a range for the underlying T parameter. Again, depending on the parameters, this value may result in a closed curve being drawn several times, or a closed curve being only partially drawn.

The program plots N points along the curve

t(i) = i * T2 / ( N - 1 )
x(i) = R1 * sin ( ( A1 * t(i) + B1 ) * 2 * pi )
y(i) = R2 * sin ( ( A2 * t(i) + B2 ) * 2 * pi )
for 0 <= I <= N - 1.

The user specifies N, T2, A1, B1, A2 and B2. The parameters R1 and R2 are currently fixed at 1.


lissajous_opengl n t2 a1 b1 a2 b2

OpenGL on Macintosh OS X

OpenGL ships with OS X for the Macintosh. You can obtain the latest software version on the Apple OpenGL web site.

Note that this source code and compilation script have been adapted for use on a Macintosh running OS X.

For that reason, the include file references have been changed from:

        # include <GL/glut.h>

        # include <GLUT/glut.h>

The compilation statement, which might ordinarily be

        g++ lissajous_opengl.C -m -lGL -lGLU -lglut
was modified to:

        g++ lissajous_opengl.C -m -framework OpenGL -framework GLUT


The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.


LISSAJOUS_OPENGL is available in a C++ version.

Related Data and Programs:

CAUSTIC_OPENGL, a C++ program which computes a caustic curve and displays it using OpenGL.

FERN_OPENGL, a C++ program which uses OpenGL to display the Barnsley fractal fern.

FLOOD_OPENGL, a C program which allows a user to select a region and flood it with color, using OpenGL, by Art Wetzel.

LIFE_OPENGL, a C program which simulates a version of John Conway's "Game of Life", displaying the results using OpenGL.

LIGHTS_OUT_OPENGL, a C++ program which sets up a "Lights Out" game and allows the user to solve it, using the OpenGL graphics window.

OPENGL, C++ programs which illustrate the use of the OpenGL graphics library;

OBJ2OPENGL, a PERL script which converts OBJ files of 3D data into C include files, which can then be used in an OpenGL program to display the object.

POLYGONAL_SURFACE_DISPLAY_OPENGL, a C++ program which displays a surface in 3D described as a set of polygons, using OpenGL.

ROTATING_CUBE_DISPLAY_OPENGL, a C++ program which displays a rotating color cube in 3D, using OpenGL;

PPMA, a data directory which describes the ASCII Portable Pixel Map (PPM) format, which is a possible means of storing the graphics information displayed by OpenGL. One of the example programs shows how this can be done.

SPHERE_XYZ_DISPLAY_OPENGL, a C++ program which reads XYZ information defining points in 3D, and displays a unit sphere and the points, using OpenGL.

TET_MESH_DISPLAY_OPENGL, a C++ program which reads a pair of files defining a tetrahedral mesh and displays an image using OpenGL.

TRI_SURFACE_DISPLAY_OPENGL, a C++ program which displays the 3D graphics information in a TRI_SURFACE file using OpenGL.

TRIANGULATION_DISPLAY_OPENGL, a C++ program which reads a pair of files defining a triangulation and displays an image using OpenGL.

XY_DISPLAY_OPENGL, a C++ program which reads an XY file of 2D point coordinates, and displays an image of those points using OpenGL.

XYL_DISPLAY_OPENGL, a C++ program which reads XYL information defining points and lines in 2D, and displays an image using OpenGL.

XYZ_DISPLAY_OPENGL, a C++ program which reads an XYZ file of 3D point coordinates, and displays an image of those points using OpenGL.


  1. Edward Angel,
    Interactive Computer Graphics, a Top-Down Approach with OpenGL,
    Addison-Wesley, 2000,
    ISBN: 0-201-38597-X,
    LC: T385.A514.
  2. Renate Kempf, Chris Frazier, editors,
    OpenGL Reference Manual,
    Fourth Edition,
    Addison-Wesley, 2004,
    ISBN: 032117383X,
    LC: T385.O642.
  3. Mason Woo, Jackie Neider, Tom Davis,
    OpenGL Programming Guide,
    Addison-Wesley, 1997,
    ISBN: 0-201-46138-2,
    LC: T385.N435.
  4. Richard Wright, Michael Sweet,
    OpenGL Superbible,
    Third Edition,
    Sams, 2004,
    ISBN: 0672326019,
    LC: T385.W73.
    The official OpenGL site.

Source Code:

Examples and Tests:

List of Routines:

You can go up one level to the C++ source codes.

Last revised on 01 December 2008.