2012年4月14日土曜日

Asymptoteの練習 Log zのRiemann面的な何か

graph3モジュールを使って$\log z$のRiemann面っぽいものを作図してみました。
アイディアはMathematicaのチュートリアルを参考にしました。
配色はColor Scheme Designerを参考に色々試してみましたが、結局グッとくるものができませんでした。Tikz and PGF exampleには配色のセンスのよい図表が沢山あり、あんなふうにしてみたいのですがセンスはどうにもならなさそうです。TikzはTeXをゴリゴリ使える人が使っているという印象があります。以前にTikzを使って花火を打ち上げていた人もいたような。
Asymptoteの用例集も配色にこだわれば使用人口が増えると思うのですが…。
見た目って大切ですよね。

メッシュの数を減らしすぎると意図している曲面にならないようでした。
影を付けるとドス黒い色になったので却下しました。
欲を言えば、Mathematicaのチュートリアルのように矩形に切り取ったものを表示させたいのですが、今のところ方法がわからないのでとりあえず。




size(10cm);
import graph3;
currentprojection=orthographic(3,1,1);

triple R(pair z) {return ((z.x)*cos(z.y),(z.x)*sin(z.y),z.y);};

real a=12;
real b=6;
pen p=rgb("29467F");
pen q=rgb("4575D4");
surface s=surface(R,(0,0),(a,b*pi),6,30,Spline);

draw(s,q,meshpen=p,nolight);

graph3モジュールでは、$x$-$y$平面上の曲面$z=f(x, y)$の他に、$u, v$を独立変数とした$(x, y, z)=(x(u, v), y(u, v), z(u, v))$タイプの曲面を扱うことが出来ます。
今回は後者の方法で$z=(x,y)$を独立2変数として$(x\cos y, x\sin y, y)$を$(x,y)\in [0,12]\times [0,6\pi]$の領域で描画しています。独立変数$(x,y)$はsurfaceを定義する際に定義した、2点$(0,0)$, $(12,6\pi)$を頂点とする矩形上を動きます。

今度は$\sqrt{z}$のリーマン面に挑戦だ。