summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/examples/Klein.asy
blob: 43199200276b91461b613aed686b36157ce8a1ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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);
}

draw(surface(f,(0,0),(2pi,2pi),8,8,Spline),lightgray);