testplot.edp |
// testplot.edp --- plot() の使い方を試す // メッシュを描く int m=20; mesh Th=square(m,m,[-1+2*x,-1+2*y]); plot(Th,wait=1); // [return] で次のプロット // p で以前のプロット // 等高線を描く // N で本数を増やせる // n で本数を減らせる // f で塗りつぶしのOn/Off // 3 で2D/3Dの切り替え func real f(real x, real y) { // ここは色々複雑なことが書ける。 return 1.0; } func u=x*x-y*y; func v=2*x*y; // plot(f); // plot() は func を描画できない。範囲指定がないので当たり前。 fespace Vh(Th,P1); Vh fh,uh,vh; // fh=f; // f() は代入できない uh=u; vh=v; // 等高線 plot(uh,wait=1); // plot() は fespace のオブジェクトは描画できる plot(uh,vh,wait=1); // plot() は2つのオブジェクトを同時に描画できる // 鳥瞰図 real [int] levels =-1.0:0.01:1.0; plot(uh,dim=3,viso=levels,fill=true,wait=true); // ベクトル場を描く plot([uh,vh],wait=1); load "plotPDF" // without semicolon plotPDF( "foobar", Th, uh); |