根据mathcurve.com的参数化
orthographic(5,0,5) 视图
size(10cm);
import graph3;
import three;
currentprojection=orthographic(5,0,5);
triple surfacepoint(pair p) {
real x = cos(p.x)*cos(p.y);
real y = cos(p.x)*sin(p.y);
real z = sin(p.x);
return (2x*z,2y*z,x^2 - z^2);
}
surface crosscap = surface(surfacepoint, (0,0), (pi,2pi), Spline);
draw(crosscap, surfacepen=material(diffusepen=0.5white+0.5red, emissivepen=0.2white));
draw((0,0,0) -- (1.5,0,0), Arrow3(6));
draw((0,0,0) -- (0,1.5,0), Arrow3(6));
draw((0,0,0) -- (0,0,1.5), Arrow3(6));
label("$x$", (1.5,0,0), align=E);
label("$y$", (0,1.5,0), align=N);
label("$z$", (0,0,1.5), align=W);
orthographic(5,5,5) 视图
size(10cm);
import graph3;
import three;
currentprojection=orthographic(5,5,5);
triple surfacepoint(pair p) {
real x = cos(p.x)*cos(p.y);
real y = cos(p.x)*sin(p.y);
real z = sin(p.x);
return (2x*z,2y*z,x^2 - z^2);
}
surface crosscap = surface(surfacepoint, (0,0), (pi,2pi), Spline);
draw(crosscap, surfacepen=material(diffusepen=0.5white+0.5red, emissivepen=0.2white));
draw((0,0,0) -- (1.5,0,0), Arrow3(6));
draw((0,0,0) -- (0,1.5,0), Arrow3(6));
draw((0,0,0) -- (0,0,1.5), Arrow3(6));
label("$x$", (1.5,0,0), align=E);
label("$y$", (0,1.5,0), align=N);
label("$z$", (0,0,1.5), align=W);
|