summaryrefslogtreecommitdiff
path: root/Master/texmf/doc/asymptote/examples/Klein.asy
blob: ba3bccd87e9b9ee157b37ccce7070affa37b2a7c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import graph3;

size(200,0);
currentprojection=perspective(40,-100,40);

// From http://local.wasp.uwa.edu.au/~pbourke/surfaces_curves/klein/
triple f(pair t) {
  real u=t.x;
  real v=t.y;
  real r=4*(1-cos(u)/2);
  real x=6*cos(u)*(1+sin(u))+(u < pi ? r*cos(u)*cos(v) : r*cos(v+pi));
  real y=16*sin(u)+(u < pi ? r*sin(u)*cos(v) : 0);
  real z=r*sin(v);
  return (x,y,z);
}

pen p=rgb(0.2,0.5,0.7);

draw(surface(f,(0,0),(2pi,2pi),60,60),lightgray,meshpen=p);