楕円座標系をasymptoteで描いてみる.
どうもxiのラベル付けがうまくない.
あと, point(real, real)の意味を理解していない.
import graph; size(0,200); defaultpen(fontsize(9)); real c=sqrt(1.0**2-0.5**2); // sqrt(a^2 - b^2) real x(real xi, real eta) { return c*cosh(xi)*cos(eta); } real y(real xi, real eta) { return c*sinh(xi)*sin(eta); } real xi_min = 0; real xi_max = 1.25; real [] xi_ary={xi_min, 0.1, 0.2, 0.5, 0.75, 1.0, xi_max }; for(int i=0; i < xi_ary.length; ++i) { draw(graph(new real(real eta) {return x(xi_ary[i], eta);}, new real(real eta) {return y(xi_ary[i], eta);}, 0,2pi)); } // sequence(n)は 0,1,2,..,n-1な配列を返す. int eta_size = 12; real [] eta_ary=sequence(eta_size)/eta_size*2pi; for(int i=0; i < eta_ary.length; ++i) { draw(graph(new real(real xi) {return x(xi, eta_ary[i]);}, new real(real xi) {return y(xi, eta_ary[i]);}, xi_min,xi_max+0.2)); } real xi0 = 0.8; label("$\eta=0$",point((x(xi0,0),y(xi0,0))),SE); label("$\displaystyle{\eta=\frac{\pi}{6}}$",point((x(xi0,pi/6),y(xi0,pi/6))),0.5E); label("$\displaystyle{\eta=\frac{\pi}{3}}$",point((x(xi0,pi/3),y(xi0,pi/3)))); label("$\displaystyle{\eta=\frac{\pi}{2}}$",point((x(xi0,pi/2),y(xi0,pi/2))),NE); label("$\displaystyle{\eta=\frac{2}{3}\pi}$",point((x(xi0,2pi/3),y(xi0,2pi/3)))); label("$\displaystyle{\eta=\frac{5}{6}\pi}$",point((x(xi0,5pi/6),y(xi0,5pi/6))),W); label("$\displaystyle{\eta=\pi}$",point((x(xi0,pi),y(xi0,pi))),SW); label("$\displaystyle{\eta=\frac{7}{6}\pi}$",point((x(xi0,7pi/6),y(xi0,7pi/6))),W); label("$\displaystyle{\eta=\frac{4}{3}\pi}$",point((x(xi0,8pi/6),y(xi0,8pi/6))),0.2W); label("$\displaystyle{\eta=\frac{3}{2}\pi}$",point((x(xi0,9pi/6),y(xi0,9pi/6))),SW); label("$\displaystyle{\eta=\frac{5}{3}\pi}$",point((x(xi0,10pi/6),y(xi0,10pi/6))),E); label("$\displaystyle{\eta=\frac{11}{6}\pi}$",point((x(xi0,11pi/6),y(xi0,11pi/6))),E); real eta0 = 0; label("$\xi=0.5$",point((x(0.5,eta0),y(0.5,eta0))),NW); label("$\xi=1$",point((x(1,eta0),y(1,eta0))),NE);