I know that some tags do not correspond but I wanted to draw your attention to this question. I made two graphics in asymptote.ualberta.ca/, but I want to download them as pdf file, but it keeps loading infinitely, that does not happen if I try to download it as png. Does anyone else have this problem or is it that maybe the problem is my machine? Any way to solve this problem in case the problem is located in my code?
First:
settings.render=8;
import graph3;
import palette;
currentprojection=orthographic(1,1,0.3);
//currentlight.background = gray(0.7);
typedef triple newtriple(pair);
// https://en.wikipedia.org/wiki/Hyperboloid
newtriple f(real a, real b, real c)
{
return new triple(pair k){
real u=k.x,v=k.y;
real x,y,z;
x=acosh(v)cos(u);
y=bcosh(v)sin(u);
z=c*sinh(v);
return (x,y,z);
};
}
triple F(pair z){ return f(1,1,1)(z); }
// Gauss map
triple g(pair z)
{
real u=z.x, v=z.y;
triple U=(-cosh(v)sin(u),cosh(v)cos(u),0);
triple V=(sinh(v)cos(u),sinh(v)sin(u),cosh(v));
return 1.5*cross(U,V)/abs(cross(U,V));
}
// https://trecs.se/hyperboloidOfOneSheet.php
path3 vector(pair z) {
real u=z.x, v=z.y;
real a=1, b=1, c=1;
real x,y,z;
x=-bccosh(v)^2cos(u);
y=-accosh(v)^2sin(u);
z=absinh(v)*cosh(v);
return O--(-(x,y,z)/sqrt(x^2+y^2+z^2));
}
size(13cm);
surface sf=surface(F,(0,-1.5),(2pi,1.5),40,Spline);
//sf.colors(palette(sf.map(zpart),Rainbow()));
draw(sf,RGB(0,153,216),render(merge=true));
label("$(\mathcal{H})$",(-1,2.2,2.7),dir(45));
add(vectorfield(vector,F,(0,-1.5),(2pi,1.5),10,0.5,red,render(merge=true)));
xaxis3(Label("$x$",EndPoint),0,3.5,Arrow3);
yaxis3(Label("$y$",EndPoint),0,3.5,Arrow3);
zaxis3(Label("$z$",EndPoint),0,3,Arrow3);
pair z=(pi/3,1);
dot("$P$",F(z),dir(-10),white+3bp);
draw(Label("$N(P)$",EndPoint,LeftSide),shift(F(z))*vector(z),white,Arrow3);
transform3 t=shift(5(Y-X));
surface sg=surface(g,(0,-1.5),(2pi,1.5),20,Spline);
//sg.colors(palette(sg.map(zpart),Rainbow()));
draw(tsg,RGB(231,76,60),render(merge=true));
label("$N\left(\mathcal{H} \right)$",t(-.5,0.5,1.2),dir(45));
dot(t(0,0,1.5/sqrt(2)),white+3bp);
draw(Label("$x$",EndPoint),t((0,0,0)--(3.5,0,0)),Arrow3);
draw(Label("$y$",EndPoint),t((0,0,0)--(0,3.5,0)),Arrow3);
draw(Label("$z$",EndPoint),t*((0,0,0)--(0,0,3)),Arrow3);
draw(Label("$N$",Relative(.5),N),subpath((0,0,0)--t*(0,0,0),0.4,0.6),Arrow3);
label("$\frac{1}{\sqrt{2}}$",t*(0.9,0,1.4),dir(45));
Second:
settings.render=8;
import graph3;
import palette;
currentprojection=orthographic(1,1,0.3);
//currentlight.background = gray(0.7);
typedef triple newtriple(pair);
// https://en.wikipedia.org/wiki/Hyperboloid
newtriple f(real a, real b, real c)
{
return new triple(pair k){
real u=k.x,v=k.y;
real x,y,z;
x=-au;
y=bv;
z=cexp(u)sin(v);
return (x,y,z);
};
}
triple F(pair z){ return f(1,1,1)(z); }
// Gauss map
triple g(pair z)
{
real u=z.x, v=z.y;
real x,y,z;
x=exp(u)sin(v);
y=exp(u)cos(v);
z=sqrt(1+exp(2u));
return -7(x,y,-1)/z;
}
// https://trecs.se/hyperboloidOfOneSheet.php
path3 vector(pair z) {
real u=z.x, v=z.y;
real a=1, b=1, c=1;
real x,y,z;
x=-bcexp(u)sin(v);
y=-acexp(u)cos(v);
z=absqrt(1+exp(2*u));
return O--(-(x,y,-1)/z);
}
size(480,400,false);
surface sf=surface(F,(-10,-12),(3,6),40,Spline);
//sf.colors(palette(sf.map(zpart),Rainbow()));
draw(sf,RGB(0,153,216),render(merge=true));
add(vectorfield(vector,F,(-10,-12),(3,6),10,2.5,red,render(merge=true)));
//xaxis3(Label("$x$",BeginPoint),0,7,Arrow3);
draw(Label("$x$",EndPoint),(12,0,0)--(-12,0,0),Arrow3);
yaxis3(Label("$y$",EndPoint),0,12,Arrow3);
zaxis3(Label("$z$",EndPoint),-18,22,Arrow3);
label("$\mathcal{H}$",(-.5,5.5,18),dir(45));
transform3 t=shift(20(Y-X));
surface sg=surface(g,(-2.7,-12),(3,6),20,Spline);
//sg.colors(palette(sg.map(zpart),Rainbow()));
draw(tsg,RGB(231, 76, 60),render(merge=true));
label("$N\left(\mathcal{H} \right)$",t(-.5,6,6),dir(45));
draw(Label("$x$",EndPoint),t((0,0,0)--(12,0,0)),Arrow3);
draw(Label("$y$",EndPoint),t((0,0,0)--(0,12,0)),Arrow3);
draw(Label("$z$",EndPoint),t((0,0,0)--(0,0,13)),Arrow3);
//dot(Label("$(0,0,1)$",black),t(0,0,7),dir(135),white+5bp);
label("$(0,0,1)$",t(.5,0,7),dir(135));
draw(Label("$N$",Relative(.5),N),subpath((0,0,0)--t*(0,0,0),0.4,0.6),Arrow3);