Boy example — mayavi 4.7.2 documentation

# Boy example

A script to generate the Mayavi logo: a Boy surface.

The boy surface is a mathematical parametric surface, see http://en.wikipedia.org/wiki/Boy%27s_surface . We display it by sampling the two parameters of the surface on a grid and using the mlab’s mesh function: `mayavi.mlab.mesh()`.

Python source code: `boy.py`

    # Author: Gael Varoquaux <gael.varoquaux@normalesup.org>
    # Copyright (c) 2007, Enthought, Inc.
    # License: BSD Style.

    from numpy import sin, cos, mgrid, pi, sqrt
    from mayavi import mlab

    mlab.figure(fgcolor=(0, 0, 0), bgcolor=(1, 1, 1))
    u, v = mgrid[- 0.035:pi:0.01, - 0.035:pi:0.01]

    X = 2 / 3. * (cos(u) * cos(2 * v)
            + sqrt(2) * sin(u) * cos(v)) * cos(u) / (sqrt(2) -
                                                     sin(2 * u) * sin(3 * v))
    Y = 2 / 3. * (cos(u) * sin(2 * v) -
            sqrt(2) * sin(u) * sin(v)) * cos(u) / (sqrt(2)
            - sin(2 * u) * sin(3 * v))
    Z = -sqrt(2) * cos(u) * cos(u) / (sqrt(2) - sin(2 * u) * sin(3 * v))
    S = sin(u)

    mlab.mesh(X, Y, Z, scalars=S, colormap='YlGnBu', )

    # Nice view from the front
    mlab.view(.0, - 5.0, 4)
    mlab.show()