June 7th, 2011 | 3 Comments

A Klein bottle is a non-orientable surface, which has no defined left and right, as stated on Wikipedia. There we can also find a Gnuplot plot of the bottle, which we want to fine-tune a little bit in order to reach the result in Fig. 1.

In order to reach Fig. 1 we start with the definition of the parametric functions given in Wikipedia and do a simple `pm3d`

plot with them.

set parametric x(u,v)= v<2*pi ? (2.5-1.5*cos(v))*cos(u) : \ v<3*pi ? -2+(2+cos(u))*cos(v) : \ -2+2*cos(v)-cos(u) y(u,v)= v<2*pi ? (2.5-1.5*cos(v))*sin(u) : \ sin(u) z(u,v)= v<pi ? -2.5*sin(v) : \ v<2*pi ? 3*v-3*pi : \ v<3*pi ? (2+cos(u))*sin(v)+3*pi : \ -3*v+12*pi splot x(u,v),y(u,v),-z(u,v) w pm3d

The result is shown in Fig. 2.

Now we add some lines to the surface and hide parts, which are not visible in 3d.

set pm3d depthorder hidden3d 1 set hidden3d

Here the `depthorder`

option takes care of the right positioning of the bottleneck going back into the bottle, which is not correct in Fig. 2. The `hidden3d 1`

option draws lines in the right order for a correctly looking 3d plot using line style 1. The additional `set hidden3d`

command takes care of showing only those lines that are visible in 3d. These options will result in Fig. 3.

In order to reach at Fig. 1 we just have to set the surface to be transparent, which can be done by the `set style fill`

command.

set style fill transparent solid 0.65

[…] following color settings are from: http://www.gnuplotting.org/klein-bottle/ set pm3d depthorder hidden3d 1 set hidden3d set style fill transparent solid 0.65 set palette rgb […]

[…] Image by GnuplottingÂ under CC-BY-NC […]

[…] http://www.gnuplotting.org/klein-bottle/ […]