Iperboloide

settings.outformat="pdf";
settings.prc=true;
settings.render=8;
defaultpen(fontsize(8pt));
import graph3;
import three;

size(9cm,0);

triple F_orig(pair uv) {
  real t=uv.x;
  real s=uv.y;
  return (cos(t)-s*sin(t), sin(t)+s*cos(t), s);
}

surface surf_o=surface(F_orig,(-2*pi,-2*pi),(2*pi,2*pi),Spline);
draw(surf_o, surfacepen=material(green+opacity(0.5), emissivepen=0.2 white));


draw(-1.5X -- 5X, arrow=Arrow3(), L=Label("$x$", position=EndPoint, align=W));
draw(-1.5Y -- 5Y, arrow=Arrow3(), L=Label("$y$", position=EndPoint));
draw(-1.5Z -- 5Z, arrow=Arrow3(), L=Label("$z$", position=EndPoint));

int N=20;

for (int i=0; i<N; ++i)
{
  real u=2*pi/N*i;
  real x1=cos(u)-2*pi*sin(u);
  real y1=sin(u)+2*pi*cos(u);
  real z1=2*pi;
  real x2=cos(u)+2*pi*sin(u);
  real y2=sin(u)-2*pi*cos(u);
  real z2=-2*pi;

  triple p1=(x1,y1,z1);
  triple p2=(x2,y2,z2);
  draw(p1 -- p2, blue);
}
Link al pdf navigabile (visualizzabile con Acrobat Reader)